rsync
是一个强大的文件同步工具,但在同步过程中可能会遇到中断的情况
- 首先,找到同步任务的中断点。你可以通过查看
rsync
的日志文件来找到中断的任务。日志文件通常位于/var/log/rsyncd/
目录下,文件名类似于rsyncd.log
。你也可以使用以下命令查看最近的日志条目:
tail -n 50 /var/log/rsyncd/rsyncd.log
- 确定中断时的源文件和目标文件的路径。从日志中,你可以找到同步任务的相关信息,例如:
[2021/06/01 12:34:56] connecting to [source_host]:873 [2021/06/01 12:34:56] starting backup to [destination_host]:/path/to/destination
- 使用
cpio
或tar
工具从最近的备份中恢复中断的同步。假设你在日志中找到了最近的一次同步时间,例如[2021/06/01 12:34:56]
,你可以使用以下命令创建一个包含该时间点之后所有更改的归档文件:
find /path/to/source -newer "2021/06/01 12:34:56" | cpio -o > backup.cpio
或者,如果你使用的是 tar
:
find /path/to/source -newer "2021/06/01 12:34:56" | tar czvf backup.tar.gz -C /path/to/source .
- 将归档文件传输到目标主机,并使用
rsync
将其恢复到目标目录。首先,将归档文件传输到目标主机:
scp backup.cpio [destination_host]:/path/to/destination/
或者,如果你使用的是 tar
:
scp backup.tar.gz [destination_host]:/path/to/destination/
接下来,在目标主机上,使用 rsync
将归档文件中的更改应用到目标目录:
rsync -avz --delete /path/to/destination/backup.cpio /path/to/destination/
或者,如果你使用的是 tar
:
rsync -avz --delete /path/to/destination/backup.tar.gz /path/to/destination/
- 最后,删除归档文件。在目标主机上,执行以下命令:
rm /path/to/destination/backup.cpio
或者,如果你使用的是 tar
:
rm /path/to/destination/backup.tar.gz
现在,你已经成功恢复了中断的 rsync
同步。