Chinaunix首页 | 论坛 | 博客
  • 博客访问: 121133
  • 博文数量: 27
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 280
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-15 19:04
文章分类

全部博文(27)

文章存档

2015年(1)

2014年(26)

分类: 系统运维

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

阅读(1834) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~