Bash |将文件复制到多个文件夹并删除它们脚本
Bash | Copy files to multiple folders and delete them script
我必须将一些文件 (100 kbs/file) 从一个文件夹 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% 丢失的文件。
有没有人测试过这样的东西这么长时间或者有人可以帮助我改进它。
谢谢!
我建议在这种情况下使用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
我是这样更新的:
files=(*.*)
if [ "$files" != "*.*" ]
then
for file in "${files[@]}"; do
cp "/$RootPath//Outbox/$folder$file" /$RootPath/MAPADMIN//Outbox/$folder
mv "/$RootPath//Outbox/$folder$file" /$RootPath/Backup//Outbox/$folder
done
fi
我正在搜索该目录中的每个文件夹,然后在每个文件夹中搜索每个文件,然后一个一个地搜索。
还剩 3 个月,使用上面的脚本移动了近 50,000 个文件,损失为 0%。
希望对其他人有所帮助。
我必须将一些文件 (100 kbs/file) 从一个文件夹 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% 丢失的文件。 有没有人测试过这样的东西这么长时间或者有人可以帮助我改进它。
谢谢!
我建议在这种情况下使用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
我是这样更新的:
files=(*.*)
if [ "$files" != "*.*" ]
then
for file in "${files[@]}"; do
cp "/$RootPath//Outbox/$folder$file" /$RootPath/MAPADMIN//Outbox/$folder
mv "/$RootPath//Outbox/$folder$file" /$RootPath/Backup//Outbox/$folder
done
fi
我正在搜索该目录中的每个文件夹,然后在每个文件夹中搜索每个文件,然后一个一个地搜索。 还剩 3 个月,使用上面的脚本移动了近 50,000 个文件,损失为 0%。
希望对其他人有所帮助。