如何备份远程Linux/UNIX服务器中的文件

时间:2019-11-20 08:53:54  来源:igfitidea点击:

问题

如何在Linux下进行远程备份?
CentOS 5 Linux服务器在数据中心的机房中,如何将数据备份到本地或者其他服务器?

解决方法

Linux/UNIX都附带了便捷的工具用于进行安全的远程备份。

我们可以使用rsync工具来对Linux,UNIX,Windows服务器,Mac OS X和BSD等系统进行自动化远程备份。

rsync是一个具有更多选项的程序,使用其更新协议,可以极大地加快了文件传输速度。

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

将远程服务器server.theitroad.com目录/home/Hyman中的文件备份到本地目录/backup:

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

备份时排除某些文件

假设您不想备份所有cpp文件,执行:

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

自动备份Shell脚本

SSH连接服务器时,总是提示输入密码。

所以这里要使用SSH密钥,而不是密码,即生成无密码密钥:

$ ssh-keygen -t dsa

当要求输入密码时,只需按两次回车键。

然后将公共密钥id_dsa.pub复制到远程服务器:

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

现在,您无需密码就可以登录。

现在创建一个简单的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