我正在试图在FreeBSD 8.1虚拟机上运行logrotate。 我用pkg_add安装了logrotate,我创build了logrotate.config文件并运行: mkdir /var/lib/ touch /var/lib/logrotate.status 现在当我这样做时: /usr/local/sbin/logrotate -d /usr/local/etc/logrotate.conf 我得到这个错误: ELF interpreter /libexec/ld-elf-so.1 not found Abort 文件ld-elf-so.1存在: locate ld-elf.so.1 /libexec/ld-elf.so.1 /usr/libexec/ld-elf.so.1 /usr/share/man/man1/ld-elf.so.1.1.gz
我有一个日志目录,我的应用程序写入。 它创build一个这样的日志文件: 2015-01-22-10-full-activity.log 2015-01-22-11-full-activity.log 2015-01-22-12-full-activity.log 2015-01-22-13-full-activity.log 我想压缩除最新文件以外的每个文件,并删除超过3天的任何文件。 我以为logrotate能够为我做这件事,但我无法理解它,可能是因为我用名字命名我的活动日志。 有任何想法吗?
是否有任何关于以root身份运行的logrotate的安全问题? 有人问不能恶意用户颠覆configuration覆盖任何东西? 是可以从另一个用户的cron运行logrotate吗?
我有一个服务,坚持把它的日志文件保存在可怕的位置。 经过所有的努力,改变它们让它们失败的地方,我的下一个想法是创build一个更干净的文件的硬链接。 这让我担心: 如果我configurationlogrotate来pipe理这些日志文件,它会按预期工作(旋转日志,保持我的链接工作)? 或者会发生logrotate意外中断链接,并将日志积累在原生位置,但不在我的中心位置? 我相信我可以configurationlogrotate重新创build硬链接后,如果有必要的旋转。 但是,有必要吗?
我的日志正在旋转正常,但是,我没有通过电子邮件发送旋转的日志。 我究竟做错了什么? 我的主要logrotate.conf是: include /etc/logrotate.d 这里是我的/etc/logrotate.d/php-errors: /var/log/php-errors.log { rotate 7 daily missingok notifempty mail [email protected] }
我有一个生产系统,有多个nginx应用程序托pipe。 那些是nginx应用程序服务器。 现在,为每个这些nginx应用程序服务器在/etc/logrotate.d/文件夹中configuration一个logrotateconfiguration文件。 下面给出了logrotateconfiguration文件的一个例子。 /var/www/example/current/log/example.log { daily missingok rotate 1 delaycompress compress notifempty copytruncate } 我检查了以下Logrotate不工作,并检查我的configuration,并没有发现应用程序服务器或nginx的任何重复项。 下面是我的nginx logrotate文件的定义。 /var/log/nginx/*.log { daily missingok rotate 3 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate if [ -s /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript } 我的日志仍然被写入*.log.1而不是*.log任何人都可以帮忙吗? 我想知道这里有什么问题。 以下是debugging模式下的logrotate命令输出。 logrotate –force -d /etc/logrotate.d/nginx reading config […]
我有以下的logrotateconfiguration文件 /home/application/*/shared/log/*.log { daily rotate 10 missingok nocompress notifempty copytruncate sharedscripts postrotate echo "Hi….." /home/application/test.sh > /home/application/test_bash.log 2>&1 echo "By….." endscript } /home/application/test.sh目前内容如下(我尝试在shell脚本中创build虚拟文件,但是没有成功) #!/bin/sh echo "==============================================" 当我运行logrotate所有文件都成功旋转,但test.sh脚本不执行 Logrotate potput看起来如下: 使用arg / home / application / / shared / log / .log运行postrotate脚本运行脚本:“echo”Hi …..“/home/application/test.sh> /home/application/test_bash.log 2>&1回声“通过…..”“ /home/application/test_bash.log日志文件没有创build。 我甚至尝试简单的这样的例子 /home/application/*/shared/log/*.log { daily rotate 10 missingok nocompress notifempty copytruncate […]
我有一个长时间运行的进程,它的日志文件写入stdout 。 我想将这个输出保存到不同的文件,自动维护这些文件(如删除/归档旧文件),而不重新启动主进程。 解决的办法是将输出发送到一个文件( process > log.txt ),并使用logrotate ,但是logrotate需要重启程序,这是不可能的。 另一个是输出到cronolog ( process | cronolog ),但在这种情况下,旧的文件不会被删除/存档,这意味着我必须做一个程序,将为我做的维护。 最好的办法是能够使用这两个实用程序,因为使用cronolog我不需要重新启动进程,并且logrotate将完全按照我的意愿维护旧的日志文件。 有没有办法让这两个程序相互合作? 如果不是,这个问题有什么好的解决办法?
我目前通过每日执行mysqldump并使用logrotate保留mysqldump的最后7天来保持数据库的每日备份。 我想改进这个备份过程,以保持7日备份,3每周备份和12每月备份。 我发现这篇文章解释了如何使用logrotate进行修改: https ://web.archive.org/web/20070625054821/http: //hotcoding.com/os/sysadmin/35751.html 但是我使用dateext logrotate选项来命名我的备份文件,所以我不能使用这个解决scheme。 我如何使用logrotate和dateext选项来进行每日,每周和每月的备份?
我在“logrotate.d”目录中添加了两个脚本,以便旋转我的应用程序日志。 这是其中之一的configuration: <myLogFilePath> { compress copytruncate delaycompress dateext missingok notifempty daily rotate 30 } 在“cron.daily”目录中有一个“logrotate”脚本(它似乎每日按照cron日志运行): #!/bin/sh echo "logrotate_test" >>/tmp/logrotate_test #/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1 /usr/sbin/logrotate -v /etc/logrotate.conf &>>/root/logrotate_error EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 第一个回声声明正在工作。 但我发现我的应用程序日志本身并没有得到旋转,而像httpd其他日志正在旋转** **我也看不到在所提到的“logrotate_error”文件中的任何输出 (对所有用户都有写入权限)。 但系统日志说: “logrotate:ALERTexception退出与[1]” 但是当我手动运行“cron.daily”脚本中的相同的“logrotate”,一切似乎工作正常。 为什么在日常计划中不旋转? 我在这里做错了什么? […]