【bash】今天你坑队友了吗

需求:

压缩日志并删除压缩过的文件

 

很日常的运维需求!!!

好,来看代码

1 echo 'start'
2 bzip2 -z -9 quke.log
3 rm -f quke.log
4 echo 'delete'

不管是初级运维还是高级运维,都可能会顺手写成这样,看似没毛病

问题来了

[user1@beijing-console ~]$ ls quke.
quke.py  quke.sh
[user1@beijing-console ~]$ dd if=/dev/zero of=./quke.log    #我生成一个2.1G的文件
^C4079929+0 records in
4079929+0 records out
2088923648 bytes (2.1 GB) copied, 9.81969 s, 213 MB/s

[user1@beijing-console ~]$ sh quke.sh
start
^C      #这是压缩过程中我ctrl+c终止了
bzip2: Control-C or similar caught, quitting.
bzip2: Deleting output file quke.log.bz2, if it exists.
delete    # WTF 原日志也给删除了
[user1@beijing-console ~]$ ls quke.
quke.py  quke.sh

所以如果以后碰到这种需求,还是要考虑周到一点

echo 'start'
bzip2 -z -9 quke.log && rm -f quke.log
echo 'delete'

这样就能避免了

不要坑队友 !!!

posted @ 2017-05-24 08:56  txwsqk  阅读(320)  评论(0编辑  收藏  举报