一、备份需求
一台Web服务器,其内部存储的数据至关重要。
然而,一旦硬盘发生故障,这些数据将面临丢失的风险。
因此,将数据在其他机器上进行周期性定时备份。具体需求如下:
- 每天晚上00点整,在Web服务器A上打包备份重要目录,并通过rsync命令推送到服务器B上进行保存。
- 需要备份的文件目录包括运维人员写入或更改的所有数据,如/var/spool/cron/root、/etc/rc.local、/etc/sysconfig/iptables、/var/www/html(Web服务器站点目录)、/app/logs等。
- 为了规范化管理,每台Web服务器在进行本地备份时,都将数据备份到/backup/目录下,并且该目录以本机IP地址命名。
- 打包的文件名中需要包含执行当天的日期,以便进行时间追溯和版本管理。
- 在每台Web服务器上检查备份是否成功,同时在存储备份数据的服务器上再次检查备份数据是否成功,并发送邮件至管理员邮箱,以确保备份的完整性和可靠性。
二、备份步骤及配置过程
- 配置rsync备份服务器(服务器B)
(1)查看安装环境及rsync安装包:
- 使用命令
cat /etc/redhat-release
查看操作系统版本。 - 使用命令
uname -r
查看内核版本。 - 使用命令
rpm -qa rsync
查看rsync安装包是否存在。
(2)添加rsync用户,用于管理本地目录:
- 使用命令
useradd rsync -s /sbin/nologin -M
添加rsync用户,并设置其不登录、不创建家目录。
(3)配置rsyncd.conf文件:
- 创建或编辑/etc/rsyncd.conf文件,设置rsync服务的相关参数,如startuid、gid、use chroot、max connections、timeout、pid file、lock file、log file等。
- 定义备份模块[backup],设置其path为/backup/,并设置相关权限和访问控制参数,如ignore errors、read only、list、hosts allow、hosts deny、auth users、secrets file等。
(4)建立共享目录并赋予权限:
- 使用命令
mkdir /backup/
创建共享目录。 - 使用命令
chown -R rsync.rsync /backup/
将共享目录的属主和属组更改为rsync。
(5)创建密码文件并编辑:
- 在/etc/目录下创建rsync.password文件,并写入rsync_backup用户的密码。
- 设置密码文件的权限为600,以确保其安全性。
(6)启动rsync服务并检查是否启动成功:
-
使用命令
rsync --daemon
启动rsync服务。 -
使用命令
ps -ef |grep rsync|grep -v grep
检查rsync服务是否启动成功。
(7)查看rsync服务的端口并设置开机自启动: -
使用命令
lsof -i :873
或netstat -tunlp|grep 873
查看rsync服务的端口号。 -
将rsync服务加入开机自启动,以确保在系统重启后rsync服务能够自动启动。
- 配置Web服务器(服务器A)作为客户端
(1)建立密码文件并设置权限:
-
在/etc/目录下创建rsync.password文件,并写入与备份服务器上相同的密码(但只需密码部分,无需用户名)。
-
设置密码文件的权限为600。
(2)建立打包目录并编写备份脚本: -
在/backup/目录下以本机IP地址命名创建子目录。
-
编写备份脚本,用于每天晚上00点整打包备份指定目录,并通过rsync命令推送到备份服务器上。脚本中应包含打包命令、rsync推送命令以及删除过期备份数据的命令。
(3)设置定时任务: -
使用crontab命令设置定时任务,将备份脚本添加到crontab中,并设置其每天晚上00点整执行。