如何在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
保存并关闭文件。