
运维服务
docker离线安装
一、准备工作:确认架构并下载安装包 1.1 确认目标服务器架构 在目标服务器上执行以下命令,确认系统架构: 输出 x8664:对应 amd64 架构(Intel/AMD 64位服务
#!/bin/bash logspath=/home/wwwlogs/ #定义日志路径 logdate=`date -d "1 day ago" +"%Y%m%d"` #定义前一天的日期 rmlogdate=`date -d "15 day ago" +"%Y%m%d"` #定义15天前的日期 cd $logspath #切换目录 mv access.log access-$logdate.log #文件重命名 mv access_json.log access_json-$logdate.log #文件重命名 /etc/init.d/nginx reload #reload热加载一下nginx rm -rf access-$rmlogdate.log #删除15天前的日志 rm -rf access_json-$rmlogdate.log #删除15天前的日志定义前一天的日期是为了,在第二天凌晨进行日志切割,可以针对当天的日志文件命名当天的时间。定义15天前的日期是我这里只保留15天的日志,但是有些环境需要保留半年的日志,这个时候我们需要创建一个备份日志目录,然后把15天前的日志移动到备份目录即可,后面可以在加一个半年之前的日志进行删除操作。
#!/bin/bash path=/home/wwwlogs/ move_name =`date -d "7 days ago" +%Y%m%d` move_file =/home/wwwlogs/back cd $path rename .log `date +%Y%m%d`".json" *.log #把.log后缀的文件修改成"*日期.json"格式 /apps/work/service/openresty/nginx/sbin/nginx -s reload mv *$move_name.json $move_file #把七天前的文件移动到备份目录这里只是使用rename修改了文件后缀,这里log后缀的文件和json后缀的文件没有什么区别,所以可以忽略。查看上和log后缀的日志是一样的。
[root@wulaoer ~]# cd /etc/logrotate.d/
[root@wulaoer logrotate.d]# vim nginx
/apps/work/service/openresty/nginx/logs/*.log { #指的是目录下所有以.log结尾的文件
daily #按天切割
dateext
dateformat %Y%m%d.json #切割后文件后缀,不能使用log,否则会会就文件进行继续切割
extension .log #切割文件后缀
create
rotate 60 #保留天数
notifempty
create 0640 root root #切割后日志权限
sharedscripts
prerotate
if [ -d /etc/logrotate.d/nginx ]; then \ #判断切割文件
run-parts /etc/logrotate.d/nginx; \
fi \
endscript
postrotate
[ ! -f /var/nginx.pid ] || kill -USR1 `cat /var/nginx.pid`
endscript
}
强制执行logrotate,测试一下设置的logrotate是否正常,正常之后就可以添加到定时任务里了。
[root@wulaoer ~]# logrotate -vf /etc/logrotate.d/nginx使用定时任务执行
0 0 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginxnginx日志切割的三种方法已经都实现了,根据自己的喜好选择不同的方法,写完脚本之后一定要做定时任务,定时任务不执行,脚本不会执行。定时任务参考:https://www.wulaoer.org/?p=763 没有了,看些其他的吧!!!!!!!!!!!!!
评论 0