使用rsync自动将文件备份到远程服务器

使用rsync备份是自我管理本地文件的一种强大方法。这是你需要知道的一切。...

是否担心丢失数据,或者厌倦了每天或每周执行手动备份?使用rsync命令,无需手动干预即可根据需要将本地文件自动同步到远程服务器。请注意,本指南确实需要访问远程Linux服务器(如AWS),并且是在Ubuntu20.04下编写的,尽管任何Linux发行版都可以正常工作。

Network Box

安装rsync

在进行任何操作之前,请检查是否安装了rsync。在本地PC和web服务器上运行以下命令:

rsync --version

如果您得到当前rsync版本作为回报,那么您就可以进入下一节了。否则,如果收到“未找到命令”错误,可以使用以下命令安装rsync:

sudo apt-get -y install rsync

生成ssh密钥

我们将使用SSH密钥来验证本地PC和远程服务器之间的连接。要在终端内的本地PC上生成新的SSH密钥,请运行以下命令:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsync.key

当提示输入密码时,将其留空并按两次Enter键。这将在~/.ssh/目录中生成两个名为同步密钥哪个是私钥rsync.key.pub,公钥。

安装远程服务器

尽管不是必需的,但对于本指南,我们将在远程服务器上创建一个新用户,用于rsync连接和存储所有备份文件。通过SSH登录到远程服务器并运行以下命令:

sudo useradd -m rsync

上面的示例使用用户名rsync,但是您可以将其更改为任何您想要的内容。m选项只是告诉Linux为新用户创建一个主目录。

要允许本地PC进行身份验证,需要将上一节中生成的公共SSH密钥复制到远程服务器。打开/~.ssh/rsync.key.pub在一个文本编辑器文件,你会看到一个大行,看起来像。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDNhyYKsjcGGdXmzOM3742+c+TzMLFdZtrMPj1q6JWNWzgY/gTGVy1C72kw6BcTYSG8B8kLQlaBRl16m2Gm8Ra/U1wl0TYSufOnRKjGq2glnBPysWNzR6i9qd4h/byKa4ptNH/ieYkT+BnSJVo8fT0iboYwEaL9D0jPtYxFzZes2ctsGZ/zi78VlX9N224YBtoZcrxK6gzKtcIVrplsXt4MbMCPc0hfr9f2VMt0HignLphTDLQWKwF3sGi4OHDPzNTRkjyHazsIOFIKDLQgdsIJv7b2VMs028YDqPnXHZZl4Ix5vg8ssqE+s/J+rzS0B6gwj2b/f6vJMI9DmTk8SO5LKWtSl4lXjLpQ1eP+xjf3SeMFWWkk2tPpGBo6d+8VJT6htj9Ga927qx3bYJ3FDdqjoE/28yBzMsg3wKI8lobiQGIbF0B0jZmSeq42ds7dh76iU/LOraWJWJhKPIjCYHdaVqj5rgxSulUW6oqr/LOxMNwsj5NLpyKygr5/RVjCUpxQLw5G7AClmW5nOZDFUgtI1CAOzhG8oYQes7jE7ZbQKmMf9IGquNV1BCRGX2mbcYad77UE2IjzPqSG8pFGb7ekZA6ukUk61fqoheL4Zl2jmhhWoXQ09LZE9FNfr1UwIoZ+GwUcip8NPIZPSo+Z4yMB/5VNF7J0o76eTNwh0gZlEw== user@host

这条长线是公共SSH密钥。将其复制到剪贴板,然后在远程服务器中运行以下命令:

sudo su rsync mkdir -m 0700 $HOME/.ssh echo "ssh-rsa AAAAB... user@host" > $HOME/.ssh/authorized_keys chmod 0644 $HOME/.ssh/authorized_keys

在最后的第二个命令中,用长的公共SSH密钥行替换引号之间的文本。就这样,您的本地PC现在可以通过您的远程服务器进行身份验证。

配置ssh配置文件

为了简单起见,请在本地PC上的~/.ssh/config文件中添加一个条目,以便轻松连接到远程服务器。用命令打开本地PC上的文件。

nano $HOME/.ssh/config

在文件中为远程服务器添加一个条目,例如:

host backup_server hostname 192.168.0.24 user rsync IdentityFile ~/.ssh/rsync

将主机名更改为远程服务器的IP地址,如果您使用的用户名不是“rsync”,也可以更改该名称。您可以为主机使用任何您想要的东西,但是在本例中使用了“backup\u server”。按Ctrl+X,然后按“Y”和Enter键保存并关闭文件。

使用命令测试到远程服务器的SSH连接。

ssh backup_server

假设所有设置都正确,现在应该通过SSH登录到远程服务器。关闭与命令的连接。

exit

同步你的文件

现在测试rsync功能,例如,要同步本地PC上的文档目录,请运行以下命令:

rsync -avz --progress ~/Documents/ backup_server:~/Documents

第一个出现的~/Documents/指定要同步的本地文件或目录,backup\u server与添加到~/.ssh/config文件的条目相对应,结尾:~/Documents只是指定将所有内容上载到相对于主目录的远程服务器的/Documents目录中。

登录到远程服务器,您将看到一个与本地PC同步的新文档目录。每次运行上述命令时,将只上载自上次以来修改过的文件,因此您不会不断上载该目录的全部内容。

通过crontab自动化

现在一切都已测试并正常工作,我们可以通过向本地PC添加crontab作业轻松地自动化整个过程。要每15分钟自动将本地文件夹同步到远程服务器,请在终端内运行命令。

(crontab -l; echo "*/15 * * * * rsync -avz --progress ~/Documents/ backup_server:~/Documents > /dev/null 2>&1";) | crontab

您可能会收到一条“no crontab for user”消息,您可以忽略它。将Documents目录更改为要备份的任何目录,但请确保为目录留下一个斜杠,否则它们将无**确备份。

检查以确保crontab作业已通过命令成功添加。

crontab -l

如果您看到刚刚添加的crontab作业,那么一切都准备就绪。等待15分钟,检查您的远程服务器,所有必要的文件都应该在那里。从现在开始,对文件所做的所有更改将每隔15分钟自动上载到远程服务器。

从远程服务器下载

您也可以使用rsync从远程服务器下载文件并将其同步到本地PC。使用上面的/Documents目录示例,在终端中运行以下命令:

rsync -chavzP backup_server:~/Documents/ ~/Documents

本地PC上的~./Documents目录现在应该是远程服务器的镜像。

包含和排除模式

如果您只需要同步与特定模式匹配的文件,例如end with.html,您可以使用--include模式。在终端中运行命令。

rsync -avz --include "*.html" --progress ~/mysite/ backup_server:~/public_html

检查远程服务器,您将看到只有本地/mysite/目录中扩展名为.html的文件已上载到/public\u html/remote目录中。同样,您还可以使用--exclude选项同步除某些文件以外的所有文件。例如,以下命令将同步除扩展名为.txt的文件以外的所有文件。

rsync -avz --exclude "*.txt" --progress ~/mysite/ backup_server:~/public_html

同步两个本地目录

如果需要,还可以使用命令同步两个本地目录。

rsync -zvr ~/source/directory ~/destination/directory

此命令的工作原理与同步到远程服务器时完全相同,唯一的区别是它有两个本地目录。

放松

您现在可以松一口气了,因为您知道数据丢失的几率现在大大降低了。在本文中,您了解了rsync是什么,如何生成和安装SSH密钥,如何在~./.SSH/config文件中定义服务器,如何同步本地和远程目录,以及如何通过crontab自动化整个过程。今后,所有必需的文件将始终与远程服务器同步,只需15分钟的延迟。

  • 发表于 2021-03-28 09:36
  • 阅读 ( 232 )
  • 分类:IT

你可能感兴趣的文章

使用rsync备份数据(无需桌面)

...来说,这意味着rsync消除了手动备份带来的许多不便。与使用Linux终端固有的文件操作命令相比,这将导致更无缝的备份过程。 ...

  • 发布于 2021-03-16 12:17
  • 阅读 ( 167 )

如何使用crontab自动化linux中的重复任务

... crontab的许多优秀用途之一是能够自动将文件备份到远程服务器。通过这个优秀的rsync教程,您可以大大降低再次丢失重要数据的风险。 ...

  • 发布于 2021-03-28 04:45
  • 阅读 ( 207 )

如何备份linux系统

...据丢失的风险。从Linux命令行备份有价值的数据。我们将使用rsync命令来实现这一点,我们甚至为它找到了一些不错的可选图形界面。 有很多方法可以实现备份文件。我们想向您展示一种健壮、灵活、可靠的方法来保护您的数据...

  • 发布于 2021-04-03 09:19
  • 阅读 ( 202 )

除非有异地备份,否则无法正确备份

...器,将其刻录到光盘,甚至备份到家庭或办公室中的文件服务器,都会出现单点故障。任何损坏或盗窃发生在您的家或办公室可能会摧毁您的重要文件的所有副本。 异地备份策略 相关:不要只是将照片移动到外部驱动器:这不...

  • 发布于 2021-04-10 11:04
  • 阅读 ( 169 )

用rsync同步数据的非初学者指南

...rsync到底是什么?”?“或者“我只在非常简单的任务中使用rsync”,您可能想查看我们上一篇关于如何在Linux上使用rsync备份数据的文章,这篇文章介绍了rsync,指导您完成安装,并展示了它的更基本的功能。一旦您牢牢掌握了...

  • 发布于 2021-04-11 11:39
  • 阅读 ( 162 )

如何从rsync中排除文件

Rsync是对服务器管理员最有用的实用程序之一,但是它在默认情况下会同步所有内容,如果您的应用程序创建大量临时文件,这可能会很烦人。下面介绍如何在使用rsync时排除文件。 从文件的列表中排除 这是排除文件和文件夹...

  • 发布于 2021-04-11 12:27
  • 阅读 ( 106 )

如何在计算机之间同步文件而不将其存储在云中

...台电脑,你想保持你的文件同步,但你不想存储在别人的服务器上。您将需要一个直接在您的计算机之间同步文件的服务。 有了这样一个服务,你可以同步无限数量的文件,而人们仅仅通过访问服务器上的帐户并通过web界面查...

  • 发布于 2021-04-11 18:38
  • 阅读 ( 186 )

如何把树莓pi变成低功耗网络存储设备

...是为了方便而消耗了相当多的能量。 例如,我们的办公服务器全天候运行,每年耗电近200美元。另一方面,一个基于Raspberry-Pi的网络存储设备每年耗电约5美元。 我们将第一个授予您一个成熟的服务器将有更多的存储空间和做更...

  • 发布于 2021-04-12 01:20
  • 阅读 ( 156 )

如何使用rsync在linux上备份数据

...道rsync的最实用(也是最简单和最安全的)方法。大多数服务器甚至许多客户机都已经有了SSH,它可以用于rsync备份。我们将向您展示让一台Linux机器在本地网络上备份到另一台机器的过程。如果有一台主机在internet上的某个地方...

  • 发布于 2021-04-12 02:34
  • 阅读 ( 144 )

如何用déjádup轻松备份ubuntu

...松地恢复你的个人数据。您还可以备份到其他类型的远程服务器,包括FTP、SSH、WebDAV和Windows共享文件夹。DéjáDup的加密使用您提供的密码保护您的数据。 “本地文件夹”选项可以将数据备份到外部驱动器或其他本地存储设备。...

  • 发布于 2021-04-12 13:14
  • 阅读 ( 168 )
yoy42660
yoy42660

0 篇文章

相关推荐