rsync + crontab + 配置文件自动定时备份同步

实现目的:A_Server的目录文件备份到B_Server

服务器基本信息:

A_Server:

目录: /rsync_master/

IP地址:172.30.11.22

B_Server:

目录:/rsync_slave/

IP地址:192.168.99.60

配置服务器部分:

一. A_Server_Config

备注:

1. 首先需要创建 “rsyncd.conf”的主要配置文件和备份时需要的密码文件 rsync_a.pass。默认无此文件需要手动创建需要放在/etc/

2. rsync 使用 --daemon 方式启动,服务端口为 TCP: 873.并且 /etc/xinetd.d/rsync 里的 disable设置为no

2.1 daemon为守护进程

根据守护进程的启动和管理方式,可以分为独立启动守护进程和超级守护进程两类

2.1.1 独立启动(stand_alone):该类进程启动后就常驻内存,所以会一直占用系统资源。其最大的优点就是它会一直启动,  当外界 有要求时相应速度较快,像httpd等进程;

2.1.2 超级守护进程:系统启动时由一个统一的守护进程xinet来负责管理一些进程,当相应请求到来时需要通过xinet的转接才可以唤醒被xinet管理的进程。这种进程的优点时最初只有xinet这一守护进程占有系统资源,其他的内部服务并不一直占有系统资源,只有数据包到来时才会被xinet管理员来唤醒。并且我们还可以通过xinet来对它所管理的进程设置一些访问权限,相当于多了一层管理机制。

编写:

1. 创建编写 rsyncd.conf 文件 和 备份需要的密码文件 rsync_a.pass

# vim /etc/rsyncd.conf

uid=nobody

gid=nobody

use chroot=no

max connections=4

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

log file=/var/log/rsyncd.log

[rsync_master_backup] // [email protected]::rsync_master_backup 名称需要一致,此语句是寻找此名称模块

path=/rsync_master/

ignore errors

read only=true

list=false

hosts allow=192.168.99.60

hosts deny=0.0.0.0/32

auth users=backup

secrets file=/etc/rsync_a.pass

:x

#vim /etc/rsync_a.pass

backup:passw0rd

:x

2. rsync 使用 --daemon 方式启动,服务端口为 TCP: 873.并且 /etc/xinetd.d/rsync 里的 disable设置为no

# rsync --daemon //启动 rsync --daemon

# vim /etc/sysconfig/iptables // 服务端防火墙添加TCP:873端口通信

-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT

:x

# /etc/init.d/iptables restart // 防火墙重启

# vim /etc/xinetd.d/rsync

disable=no // disable=yes 修改为 no

:x

二. B_Server_Config

备注:

1. 首先要创建密码文件rsync_b.pass 默认无此文件需要创建在/etc/

2. 其次需要创建脚本文件 rsync_bak.sh 默认无此文件创建在 /rsync_sh/

3. 最后修改crontab文件设置定期执行rsync_bak.sh文件并创建日志文件rsync_bak.log默认无此文件创建在 /rsync_sh/

编写:

1. 首先要创建密码文件rsync_b.pass 默认无此文件需要创建在/etc/

# vim /etc/rsync_b.pass

passw0rd // 此文件只写密码还有密码需要与 A_Server里的/etc/rsync_a.pass密码一致

2. 其次需要创建脚本文件 rsync_bak.sh 默认无此文件创建在 /rsync_sh/

# vim /rsync_sh/rsync_bak.sh

#!/bin/sh

echo $(date +"%Y-%m-%d-%H:%M:%S")

rsync -azvP --delete --exclude="*.txt" --password-file=/etc/rsync_b.pass [email protected]::rsync_master_backup /rsync_slave/

:x

#chmod 744 /rsync_sh/rsync_bak.sh // chmod 授可执行权限

3. 最后修改crontab文件设置定期执行rsync_bak.sh文件并创建日志文件rsync_bak.log默认无此文件创建在 /rsync_sh/

# crontab -e

30 5 */1 * * /bin/sh /rsync_sh/rsync_bak.sh >> /rsync_sh/rsync_bak.log 2>&1 // 2>&1 对错信息都录入

:x

rsync参数部分:

-a : --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-r : 递归

-l : 链接文件,拷贝链接文件的意思

-p: 保持文件原有权限

-t : 保持文件原有时间

-g: 保持文件原有用户组

-o: 保持文件原有属主

-D: 相当于块设备文件

-z : 传输时压缩

-v : 详细模式输出 -P结合使用

-P : 显示备份过程 传输进度 -v 结合使用

--delete : slave端删除多余的文件

--exclude: master端排除不想同步的文件

--exclude-from: master端排除不想同步的目录

--password-file: 指定密码文件路径

Rsync 的详细介绍请点这里
Rsync 的下载地址请点这里

猜你喜欢

转载自www.linuxidc.com/Linux/2017-02/140117.htm