阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

198次阅读
没有评论

共计 2970 个字符,预计需要花费 8 分钟才能阅读完成。

实现目的: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] // backup@172.30.11.22::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 backup@172.30.11.22::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 实现文件备份同步详解   http://www.linuxidc.com/Linux/2014-09/106967.htm

利用 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

CentOS 6.5 下 Rsync 远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm

Linux 文件夹对比并提取的差分文件技巧 -rsync 的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm

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

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-02/140117.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2970字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中