分类: 系统运维
2014-03-19 10:59:02
linux下文件备份的方法很多 rsync tar包全备 sersync实时同步 下面讲解了两个比较简单的办法 都是最简化的配置。给大家提供一个思路。
1.rsync的搭建过程
实验环境为
192.168.1.111
为服务器端 需要编辑 /etc/rsyncd.conf
192.168.1.115
为客户端 不需要编辑 /etc/rsyncd.conf
rsync 分为 服务器端 和客户端
比如我想备份 1.115 服务器上的/wwwroot 目录 到另一台服务器1.111
所以 1.111为服务器端 需要编辑/etc/rsyncd.conf 1.115 就是数据推送端
为客户端
先操作服务器端:
1.rsync是centos的默认服务,先检查下有没有rsync这个命令
[root@localhost ~]# which rsync
/usr/bin/rsync
默认是有的
2.编辑/etc/rsyncd.conf 目录 (默认是没有这个文件的需要自己添加)
[root@localhost ~]# vim /etc/rsyncd.conf ()
-----
uid = root #rsync运行用户
gid = root #rsync运行用户组
use chroot = no
address = 192.168.1.1 #rsync服务器端IP,也就是本机IP
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.1.115,192.168.1.116 #rsync允许IP 有些不写这个 用password控制安全性,我偏向于用IP地址控制权限,多个IP用,号隔开
hosts deny = * #rsync拒绝IP 一般全部拒绝。防止探嗅
incoming chmod = Du=rwx,Dg=rwx,Do=rx,Fu=rwx,Fg=rwx,Fo=rx #这个是权限控制 可以不加,也可以研究下incoming chmod 自己控制权限
[wwwroot] #rsync同步模块名字
path = /www/wwwroot #rsync接收数据目录,填本机存在目录
comment = wwwroot_file #描述
read only = no
以上是最简答的rsync配置。
3.启动rsync
以端口监听方式启动
[root@localhost ~]# /usr/bin/rsync --daemon
[root@localhost ~]# netstat -ntpl
tcp 0 0 192.168.1.111:873 0.0.0.0:* LISTEN 2695/rsync
查看下rsync端口有没有在监听状态
这样服务器端就已经配置完成了
-----------------
客户端配置
客户端其实不用配置什么东西
只需要执行rsync -avz 推送文件或目录 rsync://root@192.168.1.111/wwwroot wwwroot 为rysncd.conf配置文件钟的同步模块名字
例子
[root@localhost rsync]# rsync -avz /root/rsync/* rsync://root@192.168.1.111/wwwroot
building file list ... done
1
2
3
4
5
sent 263 bytes received 126 bytes 778.00 bytes/sec
total size is 0 speedup is 0.00
如果要自动备份
只需要把命令写成脚本 让crontab 自动执行就可以了
2.tar + scp 备份的过程
实验环境为
192.168.1.111
为被推送端
192.168.1.115
为推送端
这个备份其实没啥好说的 就是 tar打包整个目录 然后用scp推送过去
有个难点就是 scp的时候需要密码 这个有两种解决办法
1. ssh 密钥对解决
2. expect 实现交互式登陆
1.ssh 密钥对解决
先做ssh密钥对
[root@localhost ~]# ssh-keygen
[root@localhost ~]# cd .ssh/
[root@localhost .ssh]# ls
id_rsa id_rsa.pub
发送 id_rsa.pub 公钥给对方
[root@localhost .ssh]# scp /root/.ssh/id_rsa.pub
id_rsa.pub
登陆另一台服务器修改公钥名,修改为 authorized_keys 并且放在 /root目录下的.ssh目录下
[root@localhost .ssh]# pwd
/root/.ssh
[root@localhost .ssh]# ls
authorized_keys
验证是不是可以无密码登陆
......
2.用tar命令对目录进行打包
[root@localhost ~]# tar cvzf backup.tar.gz /root/rsync/
[root@localhost ~]# ls
anaconda-ks.cfg backup.tar.gz Desktop install.log install.log.syslog rsync
3.然后用scp把压缩包传过去
[root@localhost ~]# scp /root/backup.tar.gz
备份最好写成脚本 然后和 crontab 结合进行自动备份
[root@localhost ~]# vim backup.sh
#!/bin/bash
date=`(date +"%Y-%m-%d")`
tar cvzf backup_${date}.tar.gz /root/rsync/
scp /root/backup_${date}.tar.gz
[root@localhost ~]# chmod +x backup.sh
[root@localhost ~]#./backup.sh
[root@localhost ~]#ls
backup_2013-05-10.tar.gz