我正在尝试对一个巨大的目录 (大约 600GB) 进行 tar 处理,有时我的 SSH 连接会断开,我需要再次执行 tar 代码,然后我的 linux 会覆盖之前的文件并重新开始所有的 tar。
是否存在一些参数可以让我的 tar 文件在出现问题后恢复?
答案1
答案2
通过 ssh,我会使用 rsync。这会将所有内容以未压缩的形式传输过来,但只会传输已更改的文件,这可能也是您想要的。600GB 的传输可能会出现几次连接中断。这会自动恢复。
我已经使用过这个脚本的多个版本。我忘了它来自哪里,所以如果能找到作者,我想给予赞扬。
#!/bin/bash
### ABOUT
### Runs rsync, retrying on errors up to a maximum number of tries.
### Simply edit the rsync line in the script to whatever parameters you need.
# Trap interrupts and exit instead of continuing the loop
trap "echo Exited!; exit;" SIGINT SIGTERM
MAX_RETRIES=50
i=0
# Set the initial return value to failure false
while [ $? -ne 0 -a $i -lt $MAX_RETRIES ]
do
i=$(($i+1))
rsync -avz --progress --partial -e "ssh -i /home/youngian/my_ssh_key" /mnt/storage/duplicity_backups [email protected]:.
done
if [ $i -eq $MAX_RETRIES ]
then
echo "Hit maximum number of retries, giving up."
fi