Bash脚本:焦油不能正常工作
问题描述:
我刚刚放在一起下面显示的bash脚本,以便从集文件夹中进行连续备份。Bash脚本:焦油不能正常工作
然而,似乎find
调用似乎不仅包括备份中的/home/myfoldertobackup/
,而且还包括检查文件时间的tar。为什么地球上是这样的,我能做些什么才能确保前面提到的文件夹只被放入焦油中?
if [ -e $filename ];
then
# Tar exist. Check if tar is older than five days and if so, update it.
find $filename -mtime +5 -exec tar -czvf $filename /home/myfoldertobackup/ {} \;
else
#Tar doesn't exist. Force creation of tar!
tar -czvPf $filename /home/myfoldertobackup/
fi
答
如果“$文件名”最后的修改时间超过5天的,找到运行以下命令:
tar -cvfz $filename /home/myfoldertobackups/ $filename
这使/家/ myfoldertobackup 和 $文件名(可能已被截断,因为焦油是要写在它上面)$ filename;如果你不想$文件名只写
find $filename -mtime +5 -exec tar -cvz /home/myfoldertobackups -f {} \;
或更好(因为更具可读性)
if [ -n "$(find $filename -mtime +5)" ]; then
tar -cvzf "$filename" /home/myfoldertobackups;
fi
UPDATE
这里是你的代码我建议的变更:
if [ -e $filename ];
then
# Tar exist. Check if tar is older than five days and if so, update it.
# find $filename -mtime +5 -exec tar -czvf $filename /home/myfoldertobackup/ {} \;
if [ -n "$(find $filename -mtime +5)" ]; then
tar -cvzf "$filename" /home/myfoldertobackups;
fi
else
#Tar doesn't exist. Force creation of tar!
tar -czvPf $filename /home/myfoldertobackup/
fi
答
是因为find
为它找到的文件的名称替换{}
。 只需放下{}
即可完成。
请注意,您的备份策略确保如果新备份因任何原因失败,y我们之前的备份已经被破坏 - 所以你比以前更糟糕。在知道新的备份完成之前,不要销毁旧的备份。 – 2011-01-21 15:33:37
嗨乔纳森。绝对好点!你会说,将焦油放在临时位置,然后将它们移动到备份目标位置会更合适吗? – Industrial 2011-01-21 16:55:59