linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。不用你去每天惦记着是否需要清理日志,不用每天收到硬盘空间不足的报警短信,想好好休息的话,让我们把这个事情交给机器定时去执行吧。
提前说明:我的脚本文件放在/bin/sh /app_deploy/
我要备份的日志文件在/data/logs/nginx
我要把备份的日志文件放在/backup/logs
(1)脚本如下:
#!/bin/sh
BASE_DIR=/usr/local/openresty/nginx #根路径
BASE_FILE_NAME=access_nginx.log #要备份的日志名
CURRENT_PATH=/data/logs/nginx #要备份的日志的路径
BAK_PATH=/backup/logs #备份的地方
CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME
BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M` #时间形式为这种202201031535
BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME #要修改的文件名202201031535-access.log
echo $BAK_FILE
mv $CURRENT_FILE $BAK_FILE #将日志移动到备份的地方
#压缩备份的日志
cd /backup/logs
tar -zcvf `date -d yesterday +%Y%m%d%H%M`.tar.gz $BAK_FILE
#重载nginx 生成新的access.log
$BASE_DIR/sbin/nginx -s reload
#压缩完把原文件删除
rm -f $BAK_FILE
#删除七天前的日志
find /backup/logs/ -mtime +2 -name "*.tar.gz" -exec rm -rf {} \;
(2)命令行:corntab -e 去添加我们需要的定时任务
#我这里是每天晚上0点执行脚本哈 ,https://www.cnblogs.com/longjshz/p/5779215.html 这里有一篇详细介绍corn的,这里只简单说一下用法:
0 0 * * * /bin/sh /app_deploy/backup.sh