恢复已停止的 tar 命令

恢复已停止的 tar 命令

我正在尝试对一个巨大的目录 (大约 600GB) 进行 tar 处理,有时我的 SSH 连接会断开,我需要再次执行 tar 代码,然后我的 linux 会覆盖之前的文件并重新开始所有的 tar。

是否存在一些参数可以让我的 tar 文件在出现问题后恢复?

答案1

是否存在一些参数可以让我的 tar 文件在出现问题后恢复?

没有。

应该不过,要做的是从终端多路复用器中运行命令,例如screen或者tmux。这样,如果您的连接断开,该过程仍会继续运行。

答案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

相关内容