需求:
压缩日志并删除压缩过的文件
很日常的运维需求!!!
好,来看代码
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'
这样就能避免了
不要坑队友 !!!