Rsync是一个强大的文件同步工具,非常适合用于创建异地备份站点。下面是在CentOS系统上配置Rsync异地备份的详细步骤:
在源服务器和目标服务器上都安装rsync:
sudo yum install rsync -y
编辑或创建/etc/rsyncd.conf
文件:
# /etc/rsyncd.conf
uid = root
gid = root
use chroot = yes
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /data/backups
comment = Backup Directory
read only = no
auth users = backupuser
secrets file = /etc/rsyncd.secrets
创建/etc/rsyncd.secrets
文件:
echo "backupuser:yourpassword" | sudo tee /etc/rsyncd.secrets
sudo chmod 600 /etc/rsyncd.secrets
sudo mkdir -p /data/backups
sudo chown -R root:root /data/backups
sudo systemctl enable rsyncd
sudo systemctl start rsyncd
创建/etc/rsync.pass
文件:
echo "yourpassword" | sudo tee /etc/rsync.pass
sudo chmod 600 /etc/rsync.pass
rsync -avz --password-file=/etc/rsync.pass /path/to/source backupuser@backup-server-ip::backup
创建/usr/local/bin/backup.sh
:
#!/bin/bash
SOURCE_DIR="/path/to/source"
BACKUP_SERVER="backup-server-ip"
BACKUP_USER="backupuser"
PASS_FILE="/etc/rsync.pass"
LOG_FILE="/var/log/backup.log"
echo "Backup started at $(date)" >> $LOG_FILE
rsync -avz --delete --password-file=$PASS_FILE $SOURCE_DIR $BACKUP_USER@$BACKUP_SERVER::backup >> $LOG_FILE 2>&1
echo "Backup completed at $(date)" >> $LOG_FILE
sudo chmod +x /usr/local/bin/backup.sh
sudo crontab -e
添加以下内容(例如每天凌晨2点执行):
0 2 * * * /usr/local/bin/backup.sh
使用SSH隧道:更安全的方式是使用SSH作为传输层
rsync -avz -e ssh /path/to/source user@backup-server:/path/to/backup
防火墙配置:只允许源服务器IP访问备份服务器的873端口
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="source-server-ip" port protocol="tcp" port="873" accept'
sudo firewall-cmd --reload
使用VPN:在两地服务器间建立VPN通道
/var/log/rsyncd.log
和/var/log/backup.log
--link-dest
参数创建硬链接增量备份--bwlimit
限制带宽使用--exclude
排除不需要备份的文件-z
选项减少传输数据量通过以上步骤,您可以在CentOS系统上建立一个可靠的异地备份解决方案。根据实际需求调整配置参数,并定期测试恢复流程以确保备份的有效性。