如何备份远程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