Cool
Cool
Published on 2024-10-24 / 29 Visits
0
0

nohup定时日志分割每天生成一个日志文件

        使用nohup启动java后台程序时,默认生成的日志文件保存在nohup.out中,随着时间的推移日志文件会越来越大,非常不方便查。所以如果一天生成一个日志文件,则每个日志文件户小很多,方便打开查看。下边介绍如何定时每天生成一个日志文件

1、创建shell脚本

首先创建一个log.sh的shell脚本,内容如下:

log_dir="/root/knight/java/admin"

cp $log_dir/nohup.out $log_dir/nohup`date -d yesterday +%Y%m%d`.log

cat /dev/null > $log_dir/nohup.out

find $log_dir -mtime +14 -name 'nohup*.log' -exec rm -rf {} \;

其中:log_dir="/root/knight/java/admin"用于指定每天日志文件的存放位置。

 2、手动执行shell脚本

在脚本所在文件夹下运行以下命令执行脚本:

./log.sh

如果提示权限不足,执行以下命令增加权限:

chmod 777 ./log.sh

验证脚本执行没有问题后,进行下一步操作。

3、设置定时任务

执行以下命令打算定时任务配置:

crontab -e

 按如下内容添加定时任务:

0 6 6 8 * /opt/gitblit/service-centos.sh start
0 9 * * 1,5 echo 3 > /proc/sys/vm/drop_caches
0 0 * * * /root/knight/java/admin/log.sh

其中  0 0 * * * /root/knight/java/admin/log.sh  为新添加的定时任务,每天0点执行指定的shell脚本,用户可以根据自己的实际需要调整时间。

执行以下命令重启定时任务配置以使新增加的定时任务配置生效:

service crond restart

在 CentOS 中修改定时任务后,通常不需要额外的步骤来使更改生效。只要你已经正确编辑了 crontab 文件(使用 crontab -e 命令),系统会自动识别新的任务设置。

如果你在 /etc/crontab 或者 /etc/cron.d/ 目录下手动修改了定时任务,确保文件的格式和权限正确。具体步骤如下:

  1. 保存更改:确保你保存了对 crontab 文件的更改。

  2. 检查语法:可以使用 crontab -l 来列出当前的定时任务,确认修改是否生效。

  3. 重启 cron 服务(如果需要):虽然通常不需要,但如果你遇到问题,可以重启 cron 服务:

    sudo systemctl restart crond
    
  4. 查看日志:检查 /var/log/cron/var/log/messages 中的日志,确认任务是否按预期执行。


Comment