分享一个很多日志切割脚本。帮助切割和管理稍微负载的日志文件。
#!/bin/bash
#Jeson
#Email:chenjie@iaskjob.com
NGINX_LOG=(ap_iaskjob_cn asverify_iaskjob_cn demo_iaskjob_cn iaskjob-static flow_iaskjob_cn tools_iaskjob_cn asmng_iaskjob_cn auth_iaskjob_cn dev_iaskjob_cn iaskjob-web sp_iaskjob_cn verify_iaskjob_cn error)
NGINX_ACCESS_PATH=/opt/logs/nginx/access
NGINX_ERROR_PATH=/opt/logs/nginx/error
Ydate=`date -d yesterday +%Y%m%d`
Adate=`date -d "2 days ago" +%Y%m%d`
Nginxpid=/opt/app/nginx/logs/nginx.pid
# rename log
for logname in${NGINX_LOG[@]}
do
if [${logname}=='error'];then
ERROR_FILE=${NGINX_ERROR_PATH}/${logname}.log
mv-f${ERROR_FILE}${ERROR_FILE}-${Ydate}
touch${ERROR_FILE}
rm${NGINX_ERROR_PATH}/${logname}.log-${Adate}
else
ACCESS_FILE=${NGINX_ACCESS_PATH}/${logname}.log
BACK_ACCESS_FILE=${NGINX_ACCESS_PATH}/${logname}
if [!-d${BACK_ACCESS_FILE}];then
mkdir${BACK_ACCESS_FILE}
fi
mv-f ${ACCESS_FILE}${BACK_ACCESS_FILE}/${Ydate}.log
touch${ACCESS_FILE}
rm${BACK_ACCESS_FILE}/${Adate}.log
fi
done
## restart nginx
[!-f$Nginxpid] || kill-USR1$(cat $Nginxpid)