我目前正在研究一個腳本,用於存儲/備份我們的舊文件,以便我們在服務器上擁有更多的空間。這個腳本將被用作cronjob來每週備份這些東西。我的劇本目前看起來是這樣的:查找腳本問題 - > tar/gzip
#!/bin/bash
currentDate=$(date '+%Y%m%d%T' | sed -e 's/://g')
find /Directory1/ -type f -mtime +90 | xargs tar cvf - | gzip > /Directory2/Backup$currentDate.tar.gz
find /Directory1/ -type f -mtime +90 -exec rm {} \;
的腳本是先保存當前日期+時間戳(沒有「:」)作爲變量。之後,它會搜索超過90天的文件,並對它們進行標記並最終生成一個名爲「Backup $ currentDate.tar.gz」的gzip。 然後它應該再次找到文件並將其刪除。
但我確實在這裏有一些問題:
Directory1由多個目錄組成。它確實找到了這些文件並創建了gz文件,但是當某些文件正確壓縮(例如/ DirName1/DirName2/DirName3/File)時,其他文件直接出現在「根」目錄中。這裏可能是什麼問題?
有沒有辦法告訴腳本,只創建gz文件,如果找到文件?因爲目前,我們得到gz文件,即使沒有發現任何東西,導致空目錄。
我可以以某種方式稍後使用查找輸出(存儲變量?),以便在最後的刪除實際上只針對那些在此之前的步驟中找到的文件?因爲如果第三步需要完成,比如說一個小時,最後一步在完成後執行,那麼它可能會刪除不超過90天之前的文件,但是現在,所以它們不會被備份,但是然後刪除(非常不重要,但不是不可能)。
如果有其他任何你需要知道的,隨便問^^
問候
你有GNU Tar嗎?它會爲你做的大部分。 https://www.gnu.org/software/tar/manual/ –
可悲的是,我沒有,也不允許安裝它。 – Dino
這是AIX嗎?什麼版本? uname -a –