shell脚本:备份和清理日志

最近项目要上线,于是整个项目组的小伙伴都在疯狂的补文档,补运维文档的时候发现关于各种日志的清理备份脚本没有,于是,我朝linux命令下手了。由于我要写的脚本其实很简单所以只涉及到一小部分基础的命令,在此主要做个自己小总结。
首先,备份。
	整理一下思路:
		1、我需要把A目录下的log文件夹下的所有文件备份到B目录(因为是七天一备所以不考虑筛选日期):cp、cpio
		2、每次备份到B目录下时生成一个以日期命名(如:20190826)的文件夹,log都在个20190826这个文件夹下,便于管理和查阅。:$(date +%Y%m%d)、mkdir -p多级目录创建
		3、对于备份的数据,需要打个压缩包,以便节约空间。:zip、gzip、tar、bzip2
		大的步骤有了,如下:
		![在这里插入图片描述](https://img-blog.csdnimg.cn/2019082611031933.png)
		然后再细一点考虑一下,如果同一天我要备份多次呢?那么需要加一个判断
		![在这里插入图片描述](https://img-blog.csdnimg.cn/2019082611074147.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTM5Mjc3OQ==,size_16,color_FFFFFF,t_70)第二,清理
		1、假如源目录log下有三天的日志,我不能用rm -rf  log,这样会把log文件夹也删掉,但是可以先cd进log,再rm -rf *,就会删掉下的所有文件夹及文件,但是保留log文件夹。
		2、但是这样仍有一个问题,那就是假如今天我做了一半业务,然后备份完了要清理,那么把今天的日志删了,再做业务,就会导致不打印日志。所以清理时要保留今天的日志不被清理。
		大体思路呢,有两个,(1)反向删除(2)遍历,判断
		我用的遍历判断,遇到各种问题,代码如下:
		![在这里插入图片描述](https://img-blog.csdnimg.cn/20190826112808247.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTM5Mjc3OQ==,size_16,color_FFFFFF,t_70)
		报错一:syntax error near unexpected token `elif',因为我之前在then和elif中没有任何语句,考虑到可能是这个引起的,所以在中间加了打印语句,该报错解决
		报错二:syntax error near unexpected token `done',这个我就百思不得其解了,怎么的呢,for循环还能关键字有问题?查视图,看符号,查看文档格式,均没有问题,后来一百度以通明白可能是直接复制粘贴的原因,解决。
		报错三:integer expression expected,我之前的判断代码写的是if [ "$a" -ne "$b" ],后来一查发现,-ne时判断证书是否相等,于是换了 = ,解决。
		这里值得说的是多层判断的写法:
	![在这里插入图片描述](https://img-blog.csdnimg.cn/2019082611384681.png)
	虽然写的简单,但是每一个点都可以铺开,比如压缩的几种方法异同及解压缩,潜逃循化及集中循环方式等等,路漫漫其修远兮
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值