我必须将一些文件(100 kbs /文件)从一个文件夹X复制到文件夹Y和B,之后我必须删除文件而不是文件夹。容易到现在为止,但文件夹X几乎会不断地接收文件,我可能认为可能存在这样的情况:脚本首先将5个文件复制到X然后将8个复制到Y并删除10,因为有文件不断出现。
我已经测试了2000个文件,一切都运行良好。但我必须100%确定我不会丢失任何档案。
这是我的剧本:
cp -R -v /$RootPath/MAPADMIN/$Client/Inbox/* /$RootPath/$Client/Inbox/ >> log.txt
cp -R -v /$RootPath/MAPADMIN/$Client/Inbox/* /$RootPath/Backup/$Client/Inbox >> log.txt
find /$RootPath/MAPADMIN/$Client/Inbox/ -maxdepth 2 -type f -delete >> log.txt
这个脚本对于我的情况来说是完美的,但我必须100%确定我有0%的文件丢失。 是否有人测试了类似这样的东西,所以需要更长的时间,或者有人可以帮助我改进它。
谢谢!
答案 0 :(得分:0)
我建议在这种情况下使用rsync,它更可靠。
rsync -arv /$RootPath/MAPADMIN/$Client/Inbox/ $RootPath/$Client/Inbox 2>&1 >> log.txt
rsync -arv /$RootPath/MAPADMIN/$Client/Inbox/ /$RootPath/Backup/$Client/Inbox 2>&1 >> log.txt
find /$RootPath/MAPADMIN/$Client/Inbox/ -maxdepth 2 -type f -delete >> log.txt
答案 1 :(得分:0)
我这样更新了:
files=(*.*)
if [ "$files" != "*.*" ]
then
for file in "${files[@]}"; do
cp "/$RootPath/$1/Outbox/$folder$file" /$RootPath/MAPADMIN/$1/Outbox/$folder
mv "/$RootPath/$1/Outbox/$folder$file" /$RootPath/Backup/$1/Outbox/$folder
done
fi
我正在搜索该目录中的每个文件夹,然后在我搜索每个文件的每个文件夹中,我将逐个查找。 还剩3个月,使用上面的脚本移动了近50,000个文件,丢失了0%。
我希望这会对其他人有所帮助。