1、创建文件
vim /usr/local/nginx/sbin/cut_nginx_log.sh
2、复制脚本内容
1、Nginx循环日志,然后进行切割,并压缩成tar.gz,删除压缩后的原日志 删除100天前的文件
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
log_path='/usr/local/nginx/logs'
pid_path="/usr/local/nginx/logs/nginx.pid"
logs_names=$(ls -f $log_path |grep log|awk -F ".log" '{print $1}')
time_date=$(date -d "yesterday" +"%Y%m%d")
cd ${log_path}
for log_name in $logs_names
do
mv ${log_name}.log ${log_name}.$time_date.log
tar -czf ${log_name}.$time_date.tar.gz ${log_name}.$time_date.log
rm -rf ${log_name}.$time_date.log
done
kill -USR1 `cat ${pid_path}`
find $log_path -mtime +100 -type f -name "*.log" | xargs rm -f
find $log_path -mtime +100 -type f -name "*.tar.gz" | xargs rm -f
2、普通日志切割
#!/bin/bash
LOG_PATH=/usr/local/nginx/logs/
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
PID=/usr/local/nginx/logs/nginx.pid
mv ${LOG_PATH}access.log ${LOG_PATH}access-${YESTERDAY}.log
mv ${LOG_PATH}error.log ${LOG_PATH}error-${YESTERDAY}.log
kill -USR1 `cat ${PID}`
3、修改文件权限
chmod +x /usr/local/nginx/sbin/cut_nginx_log.sh
4、添加定时任务
crontab -e
00 00 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh
5、测试脚本
cd /usr/local/nginx/sbin
bash cut_nginx_log.sh
6、crontab的一些命令
crontab -u
crontab -e
crontab -l
crontab -r
rpm -q crontabs
systemctl status crond
7、cron权限相关
/etc/cron.allow
/etc/cron.deny