共计 2055 个字符,预计需要花费 6 分钟才能阅读完成。
备份往往可以为我们提供一种恢复的策略,因此在实际的生产应用中我们需要对系统的各个配置以及数据进行备份。然而普通的备份都是在本地磁盘或者相应的设备上进行,其实这样也存在一种缺陷,就是设备也出现问题怎么办,或者直接就是机房环境出现问题了。这个时候你就后悔莫及了吧,所以提前把系统上的文件数据在远程备份一份吧!这里我们简单介绍以下使用 rsync 脚本进行远程备份。
准备环境:
首先,想要使用远程备份,必须要让远程主机信任你,让你能够使 用 ssh 无验证登 陆。
ssh 无密码登陆原理:
首先在客户端上创建一对公私钥(公钥文件:~/.ssh/id_rsa.pub;私钥文件:~/.ssh/id_rsa)
然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
当 ssh 登录时,ssh 程序会发送私钥去和服务器上的公钥做匹配. 如果匹配成功就可以登录了
创建两个密钥哦
[root@node4 ~]# ssh-keygen
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:
d4:37:37:3b:7c:13:e8:15:77:f7:5c:88:b0:6b:f7:9e root@node4.example.com
The key’s randomart image is:
+–[RSA 2048]—-+
| .. . o=|
| . .. o.B|
| . o o.ooo|
| . o.+.o.|
| S o ..+..|
| . . . o.|
| . |
| . . |
| E |
+—————–+
1. 先生成秘钥吧!
[root@node4 ~]# ssh-copy-id localhost
[root@node4 ~]# ssh-copy-id 192.168.0.25
[root@node4 ~]# scp ~/.ssh/* 192.168.0.25:~/.ssh/ 其实让 25 主机能够无验证登陆 node4 主机就行
测试登陆:
[root@node4 ~]# ssh 192.168.0.25 node4 无验证登陆 node1(25 主机)
Last login: Sun Jul 20 03:20:14 2014 from 192.168.0.1
[root@node1 ~]# ssh 192.168.0.28 node1(25)主机无验证登陆 node4(28 主机)
Last login: Sun Jul 20 06:00:26 2014 from 192.168.0.1
[root@node4 ~]# logout
2. 本地备份主机编写备份脚本:
# vim rsync.sh
#!/bin/bash
remotedir=/home/backup 备份到远程主机的目录(必须存在哦)
basedir=/backup/ 本地需要备份的目录
host=192.168.0.28 备份到远程主机
id=root 使用 root 身份(当然也可以使用普通用户身份,记得无验证哦)
rsync -av -e ssh $basedir ${id}@${host}:${remotedir}
#chmod 700 rsync.sh
#./rsync.sh
back.sh
mk.sh
rsync.sh
sent 2288 bytes received 73 bytes 277.76 bytes/sec
total size is 2056 speedup is 0.87
看到这个你就可以确定备份成功了
远程主机查看一下:
[root@node4 backup]# ls
back.sh mk.sh rsync.sh weekly
成功备份咯!!!!
现在,你可以放心的将此脚本应用在你的环境了,为了保障系统的实时备份,此时,可以将脚本加入 crontab 中
[root@node1 backup]# crontab -e
*/5 * * * * /backup/rsync.sh > /dev/null
ok,现在就会每 5 分钟进行一次远程备份了!
利用 inotifywait 监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm
利用 inotify+rsync 实现 Linux 文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm
inotify-tools+rsync 实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm
rsync 同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm