十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
5、Nginx日志切割和日志定期删除
站在用户的角度思考问题,与客户深入沟通,找到来安网站设计与来安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟主机、企业邮箱。业务覆盖来安地区。
LogDir=/data/logs/nginx #日志存放目录
LogDate=`date +%Y%m%d` #日志名称后缀
KeepLogDays=30 #保留的天数(看自己的需求)
DelDate=`date -d "-${KeepLogDays} days" +%Y%m%d` #当前时间的前三十天时间戳(是一个具体的日期)
(-d参数是删除 语法:date -d 3days 双引号引用的话中间可以有空格 否则会报错)
(+%Y%m%d参数是打印日期的格式 语法:date +%Y%m%d )
Logs=`ls -l /data/logs/nginx/*.log|awk -F'/' '{print $NF}'` #日志存放目录下以.log结尾的日志名称
[ -d $LogDir/$LogDate ] || mkdir $LogDir/$LogDate #判断日志存放目录下当前时间戳的是否为目录 没有的话新建目录
for i in $Logs;
do
if [ -f $LogDir/$i ];then
touch $LogDir/$LogDate/$i
ln -sf $LogDir/$LogDate/$i $LogDir/$i
fi
done
#把所有的Logs都新建在当前时间戳的目录里面,并且在上层目录下建立软链文件
kill -USR1 `cat /DIR/nginx.pid`#你的nginx.pid存放路径 看配置文件
if [ x$KeepLogDays != x0 ];then
rm -rf $LogDir/$DelDate
fi
#变量KeepLogDays不为零的时候删除DelDate变量代表
PS:把这个脚本写成定时任务,每天00:00执行一次即可