shell小技巧(七十九)答复网友脚本错误一例
如图是网友发的QQ截图。问题是,运行脚本目的是打包/var/log下所有的后缀log的文件,成功后删除源文件。
实际运行结果是,得到的压缩包都是错误的。
分析:
从脚本看,其过程是通过find获得全部/var/log下后缀log的文件名,以备份目录名、字符串、时间组合备份那文件目标,使用for in读取已经找到的目标文件数组进行打包,使用tar --remove-files实现删除源文件
貌似没有什么问题,但是...结果不对那么一定有问题。
问题在哪里呢?
第一个问题,循环执行打包,那么每次循环都创建打包文件,是不是就覆盖前面的?
那么解决方案就是第一个文件归档要进行创建,第二个之后应该是追加。
修改后 tar rvPfz ...
修改后出现新问题,提示追加模式无法压缩
可以采用先打包后压缩的方式。即先tar rvfP ...,完成后再使用gzip压缩(其他压缩软件也可以)