我正在使用 Ubuntu/Debian 机器。
我想将我们的专用网络服务器备份到内部本地位置。这有很多原因 - 我知道我们的网络主机会正确备份,但是有时我们将发布一个新网站,而我们的客户希望访问旧数据,而我们希望回滚到较早的版本网站的版本,以及其他类似的情况。
我知道要做到这一点我需要使用 rsync 和 cron,但我不知道更多。目的是将最新的备份获取到我们的内部服务器上,然后将该备份推送到我们的网络附加存储设备,其中也存储了以前的备份。
那么通过 rsync 我将始终在内部服务器上拥有最新版本,对吗? Rsync 只会传输已更新的文件。然后我可以从那里运行一个 cron,它将通过 rsync 或 SMB 推送到 NAS 盒子?
所以我的问题是,假设我的方法是正确的,我将如何使用 rsync 来拉取远程服务器上的 /home 目录?这是一个简单的过程吗?有 rsync 的初学者指南吗?
我可以从本地计算机进行 rsync 吗?我们没有静态 IP 地址,我想定期执行此操作,以便它每晚(或每周,具体取决于需要多长时间和占用多少空间)自动进行备份。
答案1
一般来说,你的想法都是朝着正确的方向的。针对您的问题具体解答:
“我可以运行一个 cron 来通过 rsync 或 SMB 推送到 NAS 盒子吗?”
是的,一点没错。
“我如何使用 rsync 来拉取
/home
远程服务器上的目录?容易吗?是的,这是我使用的命令。查看rsync 文档解释:
rsync -vrltpz --force --delete -e ssh [email protected]:/home/ /backups/myserver
有初学者指南吗?
许多,这是一本很好的食谱
我可以从本地计算机进行 rsync 吗?
是的。您可以从本地计算机运行上面的命令。
(你如何让 cron 来做这件事)?
也不难。用于
crontab
编辑您的 cron 表:$ crontab -e
编辑器将会出现。输入类似这样的内容每天备份一次:
[email protected] @daily rsync -vrltpz --force --delete ...
Cron 对它的运行时间有着极其强大的控制能力,谷歌搜索一下就能找到很多例子,crontab 文档。