有时候,我们需要定时备份日志,那么若我们不用log4j自动备份的话,我们也可以写一个shell脚本来备份,然后借助crontab来定时执行即可。
#!/bin/bash
logGetName="/home/esb/log/get/nohup.out"
time=$(date "+%Y%m%d%H%M%S")
eval "cp ${logGetName} ${logGetName}.${time}"
eval "echo "">${logGetName}"
其实就是先cp备份,然后把当前的日志内容清空而已,这种备份应该需要挑选在凌晨或者系统访问量比较少的时候,毕竟清空的步骤那一瞬间可能会导致日志的丢失的。
然后在linux的crontab加上如下内容。
打开crontab
crontab -e
输入如下内容
0 4 * * * /data/esb/domain/baklog.sh
表示每天凌晨四点会执行baklog.sh脚本一次。
crontab具体参考我的另一篇博文:crontab定时任务的基本使用