使用cron压缩并从linux上的JBoss删除日志

我需要从serwer一段时间后压缩和删除日志文件。 我从来没有写脚本。 到目前为止,我有脚本logs.sh

 #!/bin/bash LOGS=/usr/local/jboss/server/default/log/ INFOLOG="server.log" ERRORLOG="error.log" BOOTLOG="boot.log" # gzip files last modify at least 7 days ago, and not files that are identified above and that have already been compressed find $LOGS -mtime +7 -not -name "$INFOLOG" -not -name "$ERRORLOG" -not -name "$BOOTLOG" -not -name '*.gz' -exec gzip "{}" \; # remove all logs older than 90 days find $LOGS -mtime +90 -not -name "$INFOLOG" -not -name "$ERRORLOG" -not -name "$BOOTLOG" -print0 | xargs -0 -I xxx rm xxx 

我使用cron来从jboss-logs.sh上午1点之后5分钟进行jboss-logs.sh

 5 1 * * * /usr/local/jboss/server/default/logs.sh 

并用crontab /root/jboss-logs.sh添加cron

这是对的吗? 它会压缩超过7天的文件,并删除超过90的文件? 它会起作用吗? 这是安全的 – 尤其是删除?

使用logrotate旋转日志。

/etc/logrotate.d/你会发现一些已经安装的旋转模式。

你基本上定义了一个文件模式来处理日常的基础。

Logrotate正在被cron.daily触发。

使用man logrotate来学习更简单的,基于行的语法。

newsyslog.conf包含你所需要的。

newsyslog定期检查文件并旋转/压缩/删除文件。 另外newsyslog可以发送信号给启动重新打开日志文件的进程。