?使用nohup启动java后台程序时,默认生成的日志文件保存在nohup.out中,随着时间的推移日志文件会越来越大,非常不方便查。所以如果一天生成一个日志文件,则每个日志文件户小很多,方便打开查看。下边介绍如何定时每天生成一个日志文件
1、创建shell脚本
首先创建一个log.sh的shell脚本,内容如下:
log_dir="/root/knight/java/admin"
# 拷贝日志文件到昨天的log中
cp $log_dir/nohup.out $log_dir/nohup`date -d yesterday +%Y%m%d`.log
# 清空nohup.out日志
cat /dev/null > $log_dir/nohup.out
# 删除14天以前的日志
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?保存同vi 命令
输入i编写内容?
esc? : wq保存并且退出
?按如下内容添加定时任务:
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
unix
service cron restart
查看定时job设定
crontab -l