在CentOS上配置SFTP备份策略,可以通过以下步骤实现:
首先,确保你的CentOS系统上已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:
sudo yum install openssh-server
编辑SSH配置文件 /etc/ssh/sshd_config,确保以下配置项存在并正确设置:
# 允许SFTP子系统
Subsystem sftp /usr/libexec/openssh/sftp-server
# 限制用户只能使用SFTP
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
创建一个专门用于SFTP的用户组,并将需要使用SFTP的用户添加到该组中:
sudo groupadd sftpusers
创建一个新用户并将其添加到SFTP用户组中。例如,创建一个名为 backupuser 的用户:
sudo useradd -m -G sftpusers backupuser
sudo passwd backupuser
按照提示设置密码。
为了安全起见,可以将用户的根目录限制在其主目录中。编辑 /etc/ssh/sshd_config 文件,确保 ChrootDirectory 指向用户的主目录:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
在用户的主目录下创建一个用于存放备份文件的目录:
sudo mkdir /home/backupuser/backup
sudo chown backupuser:sftpusers /home/backupuser/backup
使用 cron 设置定时任务来执行备份脚本。编辑当前用户的crontab文件:
crontab -e
添加一行来设置定时任务,例如每天凌晨2点执行备份:
0 2 * * * /path/to/backup_script.sh
创建一个备份脚本 /path/to/backup_script.sh,并确保其具有可执行权限:
#!/bin/bash
# 备份源目录
SOURCE_DIR="/path/to/source"
# 备份目标目录
BACKUP_DIR="/home/backupuser/backup"
# 当前日期
DATE=$(date +%Y%m%d)
# 创建备份文件名
BACKUP_FILE="$BACKUP_DIR/backup_$DATE.tar.gz"
# 执行备份
tar -czvf $BACKUP_FILE $SOURCE_DIR
# 可选:删除超过30天的备份文件
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +30 -exec rm {} \;
确保脚本具有可执行权限:
chmod +x /path/to/backup_script.sh
手动运行备份脚本以确保其正常工作:
/path/to/backup_script.sh
检查备份文件是否成功创建在 /home/backupuser/backup 目录中。
通过以上步骤,你就可以在CentOS上配置一个基本的SFTP备份策略。根据实际需求,你可以进一步调整和优化备份脚本和定时任务。