需求:
壓縮日誌並刪除壓縮過的檔案
很日常的運維需求!!!
好,來看程式碼
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'
這樣就能避免了
不要坑隊友 !!!