1.完整脚本
hww@tts-0001:~$ mkdir -p bin/
hww@tts-0001:~$ cd bin/
hww@tts-0001:~/bin$ sudo vim cut_nginx.sh
脚本:
#!/bin/sh
mv /data/logs/nginx/hww_log.log /data/logs/nginx/hww_log_$(date -d "0 day" +"%Y%m%d").log
mv /data/logs/nginx/hww_error.log /data/logs/nginx/hww_error_$(date -d "0 day" +"%Y%m%d").log
kill -USR1 $(cat /var/run/nginx.pid)
bzip2 -z /data/logs/nginx/hww_log_$(date -d "0 day" +"%Y%m%d").log
bzip2 -z /data/logs/nginx/hww_error_$(date -d "0 day" +"%Y%m%d").log
rm -f /data/logs/nginx/hww_log_$(date -d "-30 day" +"%Y%m%d").log.bz2
rm -f /data/logs/nginx/hww_error_$(date -d "-30 day" +"%Y%m%d").log.bz2
exit 0
2.简化脚本
#!/bin/sh
hww_log=/data/logs/nginx/hww_log.log
hww_error=/data/logs/nginx/hww_error.log
dd_0=$(date -d "0 day" +"%Y-%m-%d")
dd_30=$(date -d "-30 day" +"%Y-%m-%d")
mv $hww_log $hww_log.$dd_0
mv $hww_error $hww_error.$dd_0
kill -USR1 $(cat /var/run/nginx.pid)
bzip2 -z $hww_log.$dd_0
bzip2 -z $hww_error.$dd_0
rm -f $hww_log.$dd_30.bz2
rm -f $hww_error.$dd_30.bz2
exit 0
该脚本把错误日志也打包了,同时自动删除30天前的打包日志
别忘了赋权限
sudo chmod 755 cut_nginx.sh
3.定时执行命令
crontab命令
crontab命令的功能是在一定的时间间隔调度一些命令的执行
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
定时执行
hww@tts-0001:~/bin$ sudo crontab -e
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
0 0 * * * /home/hww/bin/cut_nginx.sh
注:1.分 时 日 月 周 sh脚本路径
2.上面的含义是每天晚上0点执行cut_nginx.sh脚本
分享到:
相关推荐
nginx按天进行日志切割脚本,同样适合其它很多服务日志的切割,压缩包包含shell切割脚本和使用说明,该脚本适合nginx同时也适合其他类似服务的日志切割,只要简单修改shell脚本即可,灵活多变,实用。
nginx日志自动定时切割及清除脚本
本篇文章主要介绍了Crontab+Shell做Nginx日志切割脚本实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
nginx日志太大怎么办,只有分割一下了,这篇文章就介绍了一下nginx日志切割脚本,需要的朋友可以参考下
利用crontab定时机制触发shell脚本,自动切割nginx的日志文件,并实现自动清理,可直接在服务器上上传使用
1、添加nginx日志切割脚本 cd /etc/logrotate.d #进入目录 vi /etc/logrotate.d/nginx #编辑脚本 /usr/local/nginx/logs/*.log /usr/local/nginx/logs/nginx_logs/*.log{ missingok dateext notifem
本解本实现了使用shell脚本实现nginx日志分割,大家如果没资源分下载,可以转至:https://mp.csdn.net/mdeditor/85233117# 去查看源代码。谢谢大家
: 为限制 Nginx日志文件大小增加,文件过大,导致无法收缩日志,在配置好的nginx的安装目录下,可以采用批处理文件对日志,根据实际需要的时间进行自动切割,本脚本以天为单位进行保存。对于日志备份功能,因存储...
nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件
主要介绍了nginx日志切割脚本、nginx日志分析脚本等,需要的朋友可以参考下
windows nginx 按天切割日志
nginx日志按时间切割脚本 (bat文件)
Nginx日志切割-按小时序言原理Shell脚本验证脚本定时配置 序言 最近调试接口,做ip授权,涉及到了查看nginx日志,但是由于每日数据量太大,导致从现场导出日志过于费劲,时间过于漫长,所以想到了给日志做时间切割! ...
本文实现的功能是在吗每天凌晨00:00把前一天的Nginx日志access.log重命名为access-xxxx-xx-xx.log格式,例如:access-2016-10-01.log,下面话不多说了,来看看详细的实现方法吧。 实现方法 脚本 vim /opt/nginx/...