我有两台机器,A
和B
。机器A
可以 ssh 进入B
. A
有很多可用空间。B
的数据处于一种危险的境地。 如何自动备份所有B
数据A
。它不必非常频繁,但它应该是免提的。每次A
启动都会足够频繁。我听说同步可以做到这一点。
Gra*_*eme 11
要在大多数 Linux 发行版中每天执行此操作,您应该能够将rsync
命令(根据@guido 的回答)放入脚本并将脚本放入/etc/cron.daily
目录中。只要anacron
安装了(可能不是默认情况下),任何错过的cron.daily
作业都会在下次机器启动时被赶上(如果机器切换,也会在午夜运行)。
对于脚本,您只需执行以下操作:
#!/bin/sh
rsync -a user@serverB:/source/folder/ /destination_folder
Run Code Online (Sandbox Code Playgroud)
-z
如果备份是通过慢速(ish)连接或者如果您想节省带宽,您可以添加(压缩)选项,但根据我的经验,它实际上会损害现代机器/网络的性能。
如果您想保留每个备份的日志,您可以执行以下操作:
#!/bin/sh
rsync -av user@serverB:/source/folder/ /destination_folder \
>/var/log/backup_log 2>&1
Run Code Online (Sandbox Code Playgroud)
请注意,要将其用作 cron 作业,您必须在 serverA上为root设置无密码 ssh才能登录到 serverB。它必须是 root 帐户(即键入),因为作业以 root 身份运行。/root/.ssh
cron.daily
小智 5
我建议使用rdiff-backup。我现在使用它每天晚上对我自己的数据(两台工作站、两台服务器和其他人服务器上的一个帐户)进行自动增量备份。
之前我用的是rsync,后来改用rdiff-backup,因为它更方便,而且可以对虚拟机磁盘镜像等大文件进行增量备份。rdiff-backup 很像我以前的 rsync 备份脚本,但做得对。
我在存储备份的机器上的/etc/cron.daily 中放置了一个脚本文件,它每天清晨启动一次 rdiff-backup,并从远程机器上获取数据。
您可以使用 rsync 来实现此目的(以一种相反的方式):
serverA# rsync -avz user@serverB:/path-to-backup.tar.gz /var/backup
Run Code Online (Sandbox Code Playgroud)
在哪里:
-avz archive, compress and be verbose
Run Code Online (Sandbox Code Playgroud)