因為有個資料夾內, 有備份sql 的資料, 但是又擔心, 若是一直砍, 哪天資料備份故障, 這樣檔案還是會被砍光.
因此加了個判斷.
該資料夾內檔案若是高於5筆 , 才進行刪除動作.
程式如下:
------------------------------------------------------------------------
#!/bin/sh
file_num=$(find /home/xxx/secret/*.bak |wc -l);
if [ $file_num -gt 5 ]; then
find /home/xxx/secret/*.bak -type f -mtime +6 |xargs --no-run-if-empty rm -rf
fi
------------------------------------------------------------------------
存成 rm_sqlback.sh (權限要改成可以執行的)
加入到 crontab 中
0 1 * * * /bin/sh /root/rm_sqlback.sh
------------------------------------------------------------------------
補充 xargs :
find -iname "*.bak" | xargs -i cp {} ~/bakdir
使用 -i 和 {} 就可以把前面所得到的輸出列表,不是一整串,而是一個一個地傳給後面的指令
上述的指令的效果就像是這樣…
cp ./VERSION.bak ~/bakdir
cp ./inc/main.h.bak ~/bakdir
cp ./src/fork.c.bak ~/bakdir
cp ./src/common_lib/dl_string.c.bak ~/bakdir
cp ./src/common_lib/dl_math.c.bak ~/bakdir
參考:
鳥哥的Linux 私房菜-- 學習Shell Scripts
ddy 狡兔三窟之一: xargs 應用介紹(例)
沒有留言:
張貼留言