rsync远程备份

系统环境:CentOS 5.6 64位:
服务器如下:
主服务器IP:192.168.10.69
另一服务器ip:192.168.10.84

一、在主服务器(IP:192.168.10.69)上安装ssh-keygen ,如下:

[root@localhost /]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
7a:4d:68:c5:e3:71:b5:b1:df:50:1a:89:6d:94:b8:b1 root@localhost
[root@localhost /]#
 
如上可示已经安装完毕。
 
二、在主服务器(IP:192.168.10.69)进入目录: /root/.ssh/  发现多了2个文档(id_rsa 与id_rsa.pub ,是安装ssh-keygen 生成的)

[root@localhost /]# cd /root/.ssh/
[root@localhost .ssh]# ls
id_rsa id_rsa.pub known_hosts
 
三、把主服务器(IP:192.168.10.69)目录:/root/.ssh/ 下的文档 id_rsa.pub 放到另一服务器(ip:192.168.10.84)目录/root/.ssh/下,命名为:authorized_keys
可以在主服务器上进入如下操作:
[root@localhost .ssh]# scp id_rsa.pub 192.168.10.84:/root/.ssh/authorized_keys

接着在主服务器ssh另一服务器,进行无须输入密码登录验证:

[root@localhost /]# ssh 192.168.10.84
Last login: Fri Jul 6 09:41:59 2012 from 192.168.10.69
[root@web ~]#

可见,不用输入192.168.10.84机器的密码,在主机上已经可以远程登录192.168.10.84服务器上,验证OK。
 
四、在各机安装rsync如下:
yum -y install rsync
在各机开启rsync服务,如:
[root@localhost ~]# chkconfig --list rsync
rsync off
[root@localhost ~]# chkconfig rsync on
[root@localhost ~]# chkconfig --list rsync
rsync on
 
(注:四、在各机安装rsync如下:这步没进行操作,也是可以,已经验证过)
 
五、在主服务器编写脚本
1、创建目录/home/script/,并创建文件:exclude.list(过滤掉文件/目录名列表)与include.list(保留文件/目录名列表)
文件:exclude.list(过滤掉文件/目录名列表)内容如下:(这个要根据自己的要求来定义)
*bak*
*.tar*
*.zip*
*.rar*
*log*
*logs*
文件:include.list(保留文件/目录名列表)内容如下:(这个要根据自己的要求来定义)
*jar*
*class*
2、在目录/home/script/下创建备份脚本文件rsync.sh内容如下:
#!/bin/bash
rq=`date +%Y%m%d`
#需要备份机器IP(另一服务器目录)
ip=192.168.10.84
#需要备份的目录(另一服务器目录)
web_d=/home/web
#脚本目录(主服务器目录)
script_d=/home/script
#脚本日志目录(主服务器目录)
log_d=/home/script/rsynclog
#存放备份文件总目录(主服务器目录)
bak_d=/home/script/84_bak
 
ping $ip -c 5 >/dev/null
if [ $? == 0 ]; then
   #根据文件known_hosts 的路径给目录,用户不同的话,目录是不一样的。
   rm -rf /root/.ssh/known_hosts
   #如果不是root用户,下面的root要改为其它用户名
   ssh -o StrictHostKeyChecking=no root@$ip 'sleep 5 >/dev/null &'
   if [ $? == 0 ]; then
        rsync -av -e ssh --delete --include-from=$script_d/include.list --exclude-from=$script_d/exclude.list $ip:$web_d/ $bak_d/ >$log_d/rsync.log.$rq
   else
      echo "KeyCheck is fail!" >$log_d/rsync_error.log.$rq
   fi
else
    echo "IP is down, backup is fail!" >$log_d/rsync_error.log.$rq
fi
 
3、给脚本rsync.sh执行权限:
chmod +x rsync.sh
 
4、执行定时备份脚本
vi /etc/crontab
输入:
0 1 * * * root /home/script/rsync.sh
即每天晚上:1时执行脚本。
 
六、验证
执行脚本:rsync.sh后,可以观察日志文件。
在主服务器目录:/home/script/84_bak下,可以看到另一台服务器需要备份的文件,说明备份成功。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值