鸡蛋不能都放在一个篮子里,数据备份的重要性不言而喻。把数据库文件、视频、图片文件同步备份到其他机器上是不可缺少的重要环节,没有备份机制的系统都是耍流氓。
远程服务器端安装 rsync
debian | ubuntu 系统
复制sudo apt install rsync
centos系统
复制sudo yum install rsync
创建rsync用户和组
复制sudo adduser --system --group rsync
创建 /etc/rsyncd.conf 文件
复制sudo nano /etc/rsyncd.conf
写入以下内容
复制uid = rsync
gid = rsync
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
[mysql]
path = /root/edu-docker/mysql/data/backup
read only = true
auth users = rsync
secrets file = /etc/rsyncd.secrets
[upload]
path = /data/upload
read only = true
auth users = rsync
secrets file = /etc/rsyncd.secrets
[record]
path = /data/record
read only = true
auth users = rsync
secrets file = /etc/rsyncd.secrets
创建 /etc/rsyncd.sercets 文件
复制sudo nano /etc/rsyncd.secrets
指定用户和密码,使用 : 分隔
复制rsync:1qaz2wsx3edc
修改 /etc/rsyncd.serects 权限
复制sudo chown root:rsync /etc/rsyncd.secrets
sudo chmod 0640 /etc/rsyncd.secrets
启用并启动 rsync
复制sudo systemctl enable rsync
sudo systemctl start rsync
本地备份端安装 rsync
本地用来做备份的机器上也需要安装 rsync 客户端,windows 和 linux 系统都支持。
windows 系统下安装
前往 https://itefix.net/cwrsync 下载 cwrsync 客户端,最新版下载地址如下:
复制https://itefix.net/dl/free-software/cwrsync_6.3.0_x64_free.zip
(1)解压文件,并重名目录为 cwrsync,假设最终目录为:C:\koogua\cwrsync
(2)在 cwrsync 目录中创建 rsync_password.txt 文件,写入前面远程服务器端 /etc/rsyncd.sercets 中同样的密码。注意: 此处不需要用户名,只需要密码。
(3)设置 rsync_password.txt 的文件权限,右键属性 -> 安全 -> 用户或组,把除当前用户以外的用户或组权限都删除。
(4)在 cwrsync 目录下创建 rsync.bat 文件,写入内容如下,根据实际情况调整参数。
复制@echo off
set RSYNC_DIR=C:\koogua\cwrsync
set RSYNC_EXE=%RSYNC_DIR%\bin\rsync.exe
set PASSWORD_FILE=%RSYNC_DIR%\rsync_password.txt
set REMOTE_USER=rsync
set REMOTE_HOST=192.168.100.111
set LOCAL_DIR= /cygdrive/C/koogua/backup
%RSYNC_EXE% -avz --delete --password-file="%PASSWORD_FILE%" rsync://%REMOTE_USER%@%REMOTE_HOST%/mysql %LOCAL_DIR%/mysql
%RSYNC_EXE% -avz --delete --password-file="%PASSWORD_FILE%" rsync://%REMOTE_USER%@%REMOTE_HOST%/upload %LOCAL_DIR%/upload
%RSYNC_EXE% -avz --delete --password-file="%PASSWORD_FILE%" rsync://%REMOTE_USER%@%REMOTE_HOST%/record %LOCAL_DIR%/record
pause
注意: LOCAL_DIR=/cygdrive/C/koogua/backup 是转换后的路径,不然 rsync 不能识别, 实际的路径是:C:\koogua\backup,请模仿自行转换路径。
(5)设置计划任务
Win + R
快捷键打开运行,输入 taskschd.msc,回车打开计划任务面板,创建一个任务,设置执行频率为每小时执行一次,程序执行路径为:C:\koogua\cwrsync\rsync.bat
linux 系统下安装
(1)安装 rsync
debian | ubuntu 系统
复制sudo apt install rsync
centos系统
复制sudo yum install rsync
(2)在 /root 目录下创建一个 rsync.sh 文件,写入内容如下:
复制#!/usr/bin/env bash
PASSWORD_FILE=/root/rsync_password.txt
REMOTE_USER=rsync
REMOTE_HOST=192.168.100.111
LOCAL_DIR=/root/backup
rsync -avz --delete --password-file=${PASSWORD_FILE} rsync://${REMOTE_USER}@${REMOTE_HOST}/mysql ${LOCAL_DIR}/mysql
rsync -avz --delete --password-file=${PASSWORD_FILE} rsync://${REMOTE_USER}@${REMOTE_HOST}/upload ${LOCAL_DIR}/upload
rsync -avz --delete --password-file=${PASSWORD_FILE} rsync://${REMOTE_USER}@${REMOTE_HOST}/record ${LOCAL_DIR}/record
(3)在 /root 目录下创建一个 rsync_password.txt 文件,写入前面远程服务器端 /etc/rsyncd.sercets 中同样的密码。注意: 此处不需要用户名,只需要密码。
(4)修改 rsync_password.txt 文件权限
复制chmod 0600 rsync_password.txt
(5)打开命令行,输入 crontab -e
编辑计划任务,添加如下内容:
复制0 * * * * /usr/bin/bash /root/rsync.sh > /dev/null 2>&1 &