如何在Linux/UNIX中备份远程文件

时间:2020-01-09 10:37:18  来源:igfitidea点击:

问题:如何在Linux下进行远程备份?

我有 CentOS 5 Linux服务器位于远程数据中心,是否想将其备份到本地或其他服务器?

答:两种Linux/UNIX都附带方便的工具,可以进行安全的远程备份。
您可以使用称为rsync的工具来自动化Linux,UNIX,Windows服务器,Mac OS X和BSD系统的远程备份。

rsync是一个具有更多选项的程序,并在更新目标文件时使用rsync远程更新协议极大地加快了文件传输速度。

从远程Linux服务器复制文件/备份文件

假设您要从远程服务器server.theitroad.com和目录/home/Hyman备份文件到本地目录/backup,在本地系统上键入以下命令:

$ rsync -avz -e ssh [email protected]:/home/Hyman/ /backup

您需要为Hyman用户提供密码。

从备份中排除文件

您也可以从备份中跳过一些文件。
假设您不想备份所有C源代码文件,请输入:

$ rsync --exclude '*.cpp' -avz -e ssh [email protected]:/home/Hyman/ /backup

使用Shell脚本自动备份

SSH总是提示输入密码。
要通过Shell脚本自动执行过程,您需要使用SSH密钥删除密码,即生成无密码密钥,请输入(在本地系统上键入):

$ ssh-keygen -t dsa

当要求输入密码时,只需按两次[ENTER]键。
现在将公共密钥复制到远程服务器:

$ scp ~/.ssh/id_dsa.pub [email protected]:.ssh/authorized_keys

现在,您无需密码即可登录。
有关更多信息,请参见如何使用DSA公钥身份验证和RSA密钥身份验证来设置SSH,以减少密码登录。

现在创建一个简单的shell脚本,如下所示:

$ vi backup.sh

附加代码:

#!/bin/bash
rsync --exclude '*.cpp' --exclude '*.log' -avz -e ssh [email protected]:/home/Hyman/ /backup

使用chmod命令设置可执行权限:

$ chmod +x backup.sh

使用cron命令备份远程服务器:

$ crontab -e

每天进行一次备份:

@daily /path/to/backup.sh

保存并关闭文件。