在我们的Centos盒子上,我们有一些日志旋转的问题。 我们已经将服务器configuration为每天执行一次日志logging,并将日志保留30天。 在我们的日志文件夹中,每天都会更新文件名access_log.processed并将所有日志都推送到该文件中。 由于大部分数据已经传输到access_log.process文件,真正的旋转文件无法捕捉大部分数据。 我以为这个文件必须由webalizer或awstats创build。 所以我编辑了webalizer和awstats的每日cron作业。 在这些cron工作中注释了所有的行为。 我们根本不使用webalizer或awstats。 但今天,我发现昨天的数据被追加到access_log.processed文件。 什么是创build/更新这个文件的过程? 我怎样才能禁用它。 我想另一种方法可能是旋转.processed文件。 但首先我想着重于消除一个毫不含糊的过程。 UPDATE-1 事实certificate“psa / admin / sbin / statistics”正在更新access_log.processed。 根据这个链接http://kb.parallels.com/832我应该能够find“/etc/cron.daily/50plesk-daily”命令。 不过,每天50片的内容如下: #!/bin/sh # install_statistics /usr/local/psa/bin/sw-engine-pleskrun /usr/local/psa/admin/plib/DailyMaintainance/script.php >/dev/null 2>&1 # install_mysqldump /usr/local/psa/bin/mysqldump.sh >/dev/null 2>&1 # install_autoreport daily /usr/local/psa/admin/bin/php /usr/local/psa/admin/plib/report/autoreport.php –auto daily >/dev/null 2>&1 我尝试使用“nano”在autoreport.php和script.php中读取内容,但是它们都显示“ Plesk 9发行版的一部分,它不能在Plesk 9环境以外运行 ”,其余部分是乱码。 所以我注意到了下面这行: / usr / local / […]
我已经为目录中的每个站点设置了单独的日志文件 /var/log/nginx-hosts/ 我必须为这些文件configuration日志轮换。 我开始的基地是 /var/log/nginx-hosts/*.log { rotate 7 daily missingok notifempty sharedscripts copytruncate compress } 然而,就像apache似乎nginx必须closures预旋转,以实际截断它们。 当前的nginx logrotateconfiguration是: /var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 0640 www-data adm sharedscripts prerotate if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ run-parts /etc/logrotate.d/httpd-prerotate; \ fi; \ endscript postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 […]
我正在做的事:使用multiloglogging旋转nginx访问和错误日志 我的方法是:将nginx的访问和错误logging到一个pipe道,这样我就可以有另一个运行multilog的进程来读取该pipe道,并让multilog进行日志轮换 nginx.conf access_log /var/log/nginx/access/pipe; error_log /var/log/nginx/access/pipe; 我确定我创build了pipe道,并给予足够的权限给任何人做任何事情 $ sudo mkfifo /var/log/nginx/access/pipe /var/log/nginx/error/pipe $ sudo chmod a+rwx /var/log/nginx/access/pipe /var/log/nginx/error/pipe 但是,当我启动nginx时,它会挂起,就像它正在等待stdin或其他东西。 我可能在这里错过了一些东西。 我尝试简单的回声pipe道 $ echo a > /var/log/nginx/access/pipe 它也挂起,好像它正在等待更多的input。 也许吧
如果在postrotate脚本块中有错误,他们在Ubuntu中login到哪里?
我正在托pipe多个Apache虚拟主机,具有相似的结构: – /var/www/ – domain – documentroot – logs 我已经修改了logrotate.d/apache2规则 /var/log/apache2/*.log /var/www/*/logs/*.log { … rule details … } 现在的问题,logrotate不允许我轮stream的文件夹,因为他们是由用户和组拥有根据虚拟主机(组通常有多个用户,一个用户等于一个虚拟主机) 错误讯息是 错误:跳过“/var/www/default/logs/access.log”,因为父目录具有不安全的权限(它是世界上可写或不是“root”的组可写)在configuration文件中设置“su”指令告诉logrotate哪用户/组应该用于旋转。 我如何configurationlogrotate从父文件夹使用用户和组? VirtualHosts在MPM-ITK模块下运行,以分离基础apache / php-cgi进程的权限。 是否可以避免分别为每个虚拟主机创buildconfiguration规则?
我的/etc/logrotate.d/httpd文件的内容是 /var/log/httpd/access.log { size=50M dateext maxage 90 postrotate /usr/bin/killall -HUP httpd ls -ltr /var/log/httpd/ | mail -s "$HOSTNAME: Apache restarted and log files rotated" [email protected] endscript } 而我的/etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files […]
我正在尝试使用logrotate将审计日志保留一段时间,而不是使用auditd的特殊轮询(从/etc/audit/auditd.conf )。 我已经将该文件中的max_log_file_action更改为IGNORE 。 以下是我的logrotateconfiguration: /var/log/audit/audit.log { daily dateext rotate 180 postrotate /bin/kill -HUP `cat /var/run/auditd.pid 2> /dev/null` 2> /dev/null || true endscript } 日志成功旋转。 但是,审计守护进程不会再次开始logging。 /var/log/audit/audit.log保持为空,直到我重新启动审计服务。 我也试过/bin/kill -USR1和service auditd reload /bin/kill -USR1 service auditd reload ,但是这些选项也不能正常工作。 /bin/kill -USR1实际上保持了审计守护进程的运行,但它创build了一个空的audit.log.1文件。 有没有办法成功地发送信号到审计守护进程,以保持它在logrotate之后运行? 谢谢。
这是我的logrotateconfiguration /var/log/abc/*.log { missingok compress sharedscripts create 640 root root postrotate /etc/init.d/abc reload endscript } 当我手动运行这个logrotate /etc/logrotate.d/abc手动,而不是旋转日志文件为前xyz.log到xyz.log.1.gz删除该日志文件。 所以目前我有xyz.log ,然后是xyz.log.2.gz但没有xyz.log.1.gz 我无法理解logrotate的这种行为。
我有一个logrotate脚本,它被构造为轮转syslog收集的日志。 该脚本的一部分是重新加载syslog进程。 问题是系统日志重新加载运行每个匹配的日志文件它旋转,并有大约100个。 在所有单独的日志处理之后,如何设置logrotate脚本来重新加载syslog进程一次? /logs/* { daily rotate 7 compress postrotate /etc/init.d/syslog-ng reload 2>/dev/null endscript }
如果有我的日常cron lograte /etc/cron.daily/logrotate — assume cron.daily is run at 1.05am daily 如果我的logrotateconfiguration有一个 weekly 设置 这是否意味着我的logrotate将每天运行,但日志只能每周轮换? 和每周以来/什么时间? – (自日志文件创build时间或自上次运行logrotate以来)?