定时清理nohup.out的方法

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

1、创建shell脚本

touch log.sh
首先创建一个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

crontab运行日志查看
有时候发现定时任务没有按预期执行,可以能过查看日志发现执行相关的问题。

一般来说 ,crontab的运行日志可以在/var/log/cron.log文件中。

如果没有/var/log/cron.log文件,试一下/var/log/cron

crontab为什么有时候找不到日志?
需要通过配置打开crontab的日志记录功能。

通过以下方式开启crontab的日志记录功能。

sudo vim /etc/rsyslog.d/50-default.conf

cron.*  /var/log/cron.log #将cron前面的注释符去掉
#重启rsyslog
#sudo /etc/init.d/rsyslog restart
sudo service rsyslog restart   #重启rsyslog
sudo service cron restart     #重启cron程度


 
sudo service crond restart   #重启crond。 在有的系统中,定时任务程序名称是crond
打开日志记录功能后,就可以看到相应的crontab的执行日志了。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^止境^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值