Linux日志每日备份脚本

2018-5-28 10:59:07 星期一

原理是:

1. 每天0点0分crontab执行备份脚本

2. 先将当前日志文件copy一份作为备份, 备份文件名的后缀为前一天

3. 用当前日志的最后50行覆盖当前日志的内容

备份脚本:

 1 #!/bin/bash
 2 d=`date -d "1 day ago" +%F`
 3 log='/var/log/php-fpm/www-error.log'
 4 
 5 bakup=${log}'-'${d}
 6 
 7 cp $log $bakup
 8 
 9 tmp=`tail -50 $log`
10 echo $tmp > $log

注意: 如果日志写入速度很快, 担心备份过程中有丢失, 可以将第9行的值调大

2. crontab

0 0 * * * /usr/local/bin/bakup_log.sh

另外, 可能有些同学还不太熟悉crontab里边的几个时间, 可以记下"顺口溜 ": 分时日月周

原文地址:https://www.cnblogs.com/iLoveMyD/p/9099058.html