我剛纔寫的備份腳本:不可刪除文件,因爲備份腳本
#!/usr/bin/bash
# the number of days to do the backup for.
days=5;
# the files to backup.
location[0]='/opt/aDirectory/'
location[1]='/extra/anotherDirectory/'
# the location to copy the file to
copyLocation='/users/JoeBlow/Backup/backup-'$(date | tr ' ' '-')
# Log stuff
mkdir $copyLocation
echo "made backup for last $days">>$copyLocation/log
for loc in ${location[*]}
do
echo "made backup of $loc" >> $copyLocation/log
done
echo "Errors and Warnings from find and cp" >> $copyLocation/log
# preform the back up
for loc in ${location[*]}
do
for toBack in `find $loc \! -name '*.class' -mtime -$days \! -type d -print 2>> $copyLocation/log`
do
temp=${copyLocation}$(dirname $toBack)
mkdir -p $temp 2>> $copyLocation/log
cp $toBack $temp 2>> $copyLocation/log
done
done
但它引起了我的悲傷。
當我測試它時,我達到了我的磁盤配額。我以爲沒有問題,我只會rm -r
,我創建的目錄,明確了一些空間,然後再試一次。不。不起作用。我得到這個錯誤;
% rm -r backup-Wed-Feb-10-16\:58\:59-EST-2010/
rm: Unable to remove directory backup-Wed-Feb-10-16:58:59-EST-2010//direcotry/something: File exists
....
權限問題權限?錯誤。
我cd到該目錄中的最低位置,並且有一個非常大的隱藏文件。所以我rm
吧。它允許刪除它,但將一個新文件放在目錄中,名稱略有不同。什麼是鑼?
兩個問題:
1我的備份腳本有什麼問題嗎?
2爲什麼我不能刪除該文件?
是您的腳本仍在運行? –
...而且是非常大的文件,名爲.nfsXXXX? –
你應該做'find ... |同時讀取-r toBack而不是'for ... $(find ...)'以防在名稱中包含空格的文件。查看'date --rfc-3339 = date'(或= seconds)獲取可排序的日期格式。 –