我刚才写的备份脚本:不可删除文件,因为备份脚本
#!/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)获取可排序的日期格式。 –