为了数据安全或者网站同步镜像,不得不考虑一些实时备份的问题。介绍一下Linux下的异机备份(rsync)。
一、rsync服务端配置(异机备份服务器)
- 安装rsync
yum -y install rsync
- 编辑rsyncd.conf配置文件
vi /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
fake super = yes
#################以下为backup模块配置
[backup]
path = /backup/
ignore errors = yes
read only = false
hosts allow = x.x.x.x
hosts deny = x.x.x.x
auth users = rsync_backup
secrets file = /etc/rsync.password
参数解释:
-
uid 用户
-
gid 组 uid和gid这两个选项的作用是指定在运行rsync时以哪个用户来替代root
-
use chroot 程序安全设置
-
max connections 客户端连接数
-
timeout 超时时间
-
pid file 进程号文件位置
-
lock file 进程锁文件
-
file 日志文件位置
-
fake super 用于保障存储文件的完整属性
-
[backup] 模块名称
-
path 备份使用目录
-
ignore errors 是否忽略错误
-
read only 是否只读
-
hosts allow 允许IP列表,可以设置单个ip或ip段
-
hosts deny 禁止IP列表,可以设置单个ip或ip段 hosts allow和hosts deny同时出现,会先检查hosts allow,如果匹配就allow,否则,检查hosts deny 如果匹配则拒绝,如二者均无匹配,则使用默认的,即允许
-
auth users 虚拟用户(该用户无需真实创建)
-
secrets file 存放用户和密码的文件
-
创建rsync账户及共享目录
useradd -M -s /sbin/nologin rsync
mkdir /test
chown -R rsync /test
- 创建rsync虚拟账户名和密码(可自行修改)
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
- 启动rsync服务
/usr/local/bin/rsync --daemon
- 写入rc.local
echo "/usr/local/bin/rsync --daemon &" >> /etc/rc.local
二、rsync客户端配置
- 安装rsync
yum -y install rsync
- 安装inotify事件监控工具
yum -y install inotify-tools
- 创建密码文件
echo "123456" > /etc/rsync.password #此处的密码需要与服务端密码文件中一致。只需输入密码,不需要用户名。
chmod 600 /etc/rsync.password
- 客户端推送
rsync -avzP -b --suffix=".$(date +\%F_\%H_\%M_\%S)" /opt/ rsync_backup@服务端ip::backup --password-file=/etc/rsync.password
命令格式: rsync -avzP -b --suffix=“.$(date +%F*%H*%M_%S)” 需要备份的目录 虚拟用户@服务端ip::服务端配置模块名 --password-file=客户端密码文件位置。
注 :
在服务器端的rsyncd.conf文件中需预先配置好 备份目录的写法需要注意:路径以/结尾则只会备份路径中的文件,若不以/结尾,例如上例中的命令,则会连同epoint文件夹一起备份下来