rsync备份

http://www.boobooke.com/v/bbk1753/

http://v.ku6.com/show/tOVZLGPij8Vt2W-3JIZyrQ...html?nr=1&loc=tashangchuan

 

3.1 创建备份用户

因为备份用户的密码需要明文写在配置文件中,因此最好为该业务创建单独的用户,以保证安装和不影响其他业务;以下以创建用户backup,密码passwd为例;也可以直接用已有用户;

root登录主服务器,添加用户backup

# useradd –d /home/backup –m backup

设置其密码为passwd

# passwd backup

分别两次键入密码passwd

 

3.2 主服务器配置rsync

在主服务器上需要以守护进程方式来启动rsync服务器,需开启rsync守护进程;

#ps ef|grep rsync          查看是否rsync已开启

 

编辑/etc/services

#vi /etc/services

加入如下内容

rsync 873/tcp

【注】:指定rsync的服务端口是873(有的服务器已经默认配置了该项,不需要再次加入)。

 

编辑/etc/inetd.conf

#vi /etc/inetd.conf

加入rsync stream tcp nowait root /usr/bin/rsync rsync --daemon

【注】:/usr/bin/rsyncrsync的实际安装路径,可以通过#rpm –ql rsync查找到;

 

rsync服务器的配置文件为/etc/rsyncd.conf

# vi /etc/rsyncd.conf

编辑如下内容:

 

uid = backup                                      ——备份用户

read only = true                                            ——是否只读,只读的话,只将

务器备份到备份服务器

use chroot = true                                           ——设置成true,降低安全风险

transfer logging = true                                          ——传输日志是否打印

log format = %h %o %f %l %b                            ——日志格式,%h显示下面备份服务器的

hostname,需要将其ip/etc/hosts中配置iphost对应关系

log file = /var/log/rsyncd.log                          ——日志文件

pid file = /var/run/rsyncd.pid                         ——pid文件路径

hosts allow = 10.0.64.137                              ——备份服务器ip,只允许该服务器备份

slp refresh = 300

 

[testDir]                                                  ——模板名,可以配置多个模板,需包含其内

部配置

    path = /test                                              ——备份路径

    comment = testDir                                ——模板描述

    auth users = backup                         ——授权备份用户

    secrets file = /etc/rsyncd.secrets                   ——备份用户密码存储文件

 

编辑备份用户密码

vi /etc/rsyncd.secrets

加入如下内容

backup:passwd

【注】::前面为用户名,后面为其密码

3.3 主服务器配置启动rsync守护进程

3.3.1自动启动rsync

执行如下命令

# chkconfig -s rsyncd on

 

【注】:开机会自动启动。

 

3.3.2手动启动rsync

执行如下命令

启动

# service rsyncd start

停止

#service rsyncd stop

查看状态

#service rsyncd status

 

3.4 备份服务器配置rsync

如果/test目录不存在,需创建备份目录

# mkdir /test

      

编写一个同步备份脚本,存放在home目录下

# vi /home/backup.sh

rsync -vzrotpg --progress --delete --ignore-errors  [email protected]::testDir --password-file=/home/password.rsync   /test

 

--ignore-errors 即使出现 I/O 错误也进行删除

http://heylinux.com/archives/1618.html

解决rsync同步时报IO错误导致无法删除文件的问题

      

给脚本赋755权限

# cd /home

# chmod 755 backup.sh

 

创建密码文件存放于/home/password.rsync

# vi /home/password.rsync

输入如下密码内容

passwd

【注】:密码为服务器定义的backup用户的密码

 

密码文件赋600权限

# cd /home

#chmod 600 password.rsync

 

3.5 备份服务器配置定时备份任务

#crontab –e

* 18 * * * /bin/sh /home/backup.sh

 

【注】:crontab命令格式: * * * * * /command path

5个字段分别表示:

       分钟:0-59

       小时:1-23

       日期:1-31

       月份:1-12

       星期:0-60表示周日)

 

还可以用一些特殊符号:

       * 表示任何时刻

       ,: 表示分割

  -:表示一个段,如第二端里: 1-5,就表示15

       /n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

 $/usr/local/bin/rsync --daemon

failed to create pid file /var/run/rsyncd.pid: Permission denied

需要root权限

$ sudo /usr/local/bin/rsync –daemon

 

 

下面,顺便附上rsync的常用参数选项,方便大家参考:

选项 说明
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于 -rlptgoD (不包括 -H)
-r, --recursive 对子目录以递归模式处理
-l, --links 保持符号链接文件
-H, --hard-links 保持硬链接文件
-p, --perms 保持文件权限
-t, --times 保持文件时间信息
-g, --group 保持文件属组信息
-o, --owner 保持文件属主信息 (super-user only)
-D 保持设备文件和特殊文件 (super-user only)
-z, --compress 在传输文件时进行压缩处理
--exclude=PATTERN 指定排除一个不需要传输的文件匹配模式
--exclude-from=FILE 从 FILE 中读取排除规则
--include=PATTERN 指定需要传输的文件匹配模式
--include-from=FILE 从 FILE 中读取包含规则
--copy-unsafe-links 拷贝指向SRC路径目录树以外的链接文件
--safe-links 忽略指向SRC路径目录树以外的链接文件(默认)
--existing 仅仅更新那些已经存在于接收端的文件,而不备份那些新创建的文件
--ignore-existing 忽略那些已经存在于接收端的文件,仅备份那些新创建的文件
-b, --backup 当有变化时,对目标目录中的旧版文件进行备份
--backup-dir=DIR 与 -b 结合使用,将备份的文件存到 DIR 目录中
--link-dest=DIR 当文件未改变时基于 DIR 创建硬链接文件
--delete 删除那些接收端还有而发送端已经不存在的文件
--delete-before 接收者在传输之前进行删除操作 (默认)
--delete-during 接收者在传输过程中进行删除操作
--delete-after 接收者在传输之后进行删除操作
--delete-excluded 在接收方同时删除被排除的文件
-e, --rsh=COMMAND 指定替代 rsh 的 shell 程序
--ignore-errors 即使出现 I/O 错误也进行删除
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--progress 在传输时显示传输过程
-P 等价于 --partial --progress
--delay-updates 将正在更新的文件先保存到一个临时目录(默认为 “.~tmp~”),待传输完毕再更新目标文件
-v, --verbose 详细输出模式
-q, --quiet 精简输出模式
-h, --human-readable 输出文件大小使用易读的单位(如,K,M等)
-n, --dry-run 显示哪些文件将被传输
--list-only 仅仅列出文件而不进行复制
--rsyncpath=PROGRAM 指定远程服务器上的 rsync 命令所在路径
--password-file=FILE 从 FILE 中读取口令,以避免在终端上输入口令,通常在 cron 中连接 rsync 服务器时使用
-4, --ipv4 使用 IPv4
-6, --ipv6 使用 IPv6
--version 打印版本信息
--help 显示帮助信息

注意:
若使用普通用户身份运行 rsync 命令,同步后的文件的属主将改变为这个普通用户身份。
若使用超级用户身份运行 rsync 命令,同步后的文件的属主将保持原来的用户身份。

猜你喜欢

转载自lvmlvy.iteye.com/blog/1854975