k8s,nginx备份日志脚本

15 篇文章 3 订阅
10 篇文章 1 订阅

要求:nginx容器日志保存,每天备份一次,每个月一个文件,然后删除六个月以前的文件

1.写一个脚本

#!/bin/bash
date=180                                 #定义删除天数
date1=`date -d "1 day ago" +"%d/%b/%Y"`  #定义前一天的时间,用作取日志
date2=`date -d "1 day ago" +"%Y/%m/%d"`  #定义前一天的时间,用作取报错日志
date3=`date +"%Y-%m"`                    #定义年月用作压缩后缀
date4=`date +"%Y-%m-%d"`                 #定义每天的日志文件
kubectl get pods -o wide |grep nginx|awk '{print $1}'|xargs -i kubectl exec -it {} -- grep $date1 /data/logs/nginx/access.log  >> /data/nginx/access-$date4.log
kubectl get pods -o wide |grep nginx|awk '{print $1}'|xargs -i kubectl exec -it {} -- grep $date2 /data/logs/nginx/error.log  >> /data/nginx/error-$date4.log
find /data/nginx/ -maxdepth 1 -type f -mtime +${date} -exec rm {} \; 

#压缩文件并删除源文件每天追加一次
zip -um access-$date3.log.zip access-$date4.log
zip -um error-$date3.log.zip error-$date4.log

 xargs:类似于for,把前一个命令执行的结果放的这执行,-i;指定位置{};

maxdepth 1:只在下一层目录找

2.给权限

chmod +x 脚本名

3.周期性计划任务

#每天凌晨三点执行该脚本
[root@ctl sh]# crontab -e
* 3 * * * 脚本
#执行的脚本尽量用绝对路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值