Nginx Access日志越来越多,磁盘堆积的也越来越多。
前面写过脚本备份过日志,这里写一个自动删除过期日志的脚本。
#!/bin/bash
#扫描的base路径
p_prefix='/opt/deploy/'
#日志后缀路径
p_suffix='/logdir/suffix/'
#查找需要自动删除的项目根地址,存在多个目录时使用
log_sites=(`ls $p_prefix | grep 'app_base'`)
log_time=`date +%F`
#log过期时间
expireday=30
for p in ${log_sites[@]}
do
echo $p
#具体的路径
dir=$p_prefix$p$p_suffix
if [ -d $dir ];then
echo "`hostname`: $dir found"
find $dir -name "*.log" -mtime +$expireday | xargs rm -f
fi
done
保存并使用chmod +x 命令指定可执行权限.
加入cront即可,每天三点执行。
[root@localhost ~]# crontab -e
00 03 * * * /bin/bash /root/shell/autodelelelogs.sh
原文链接:自动删除Linux过期日志,转载请注明来源!