CentOS SFTP备份策略
/home/[用户名]/目录)、SFTP服务器配置文件(/etc/ssh/sshd_config)、SFTP用户权限相关文件(/etc/passwd、/etc/group)及SELinux策略(若启用,/etc/selinux/config、/var/lib/selinux)。/backup/sftp)、外部存储设备或远程服务器(通过SFTP/SCP传输),优先考虑异地备份以防范本地灾难。rsync -av --delete /source/dir/ user@destination:/backup/dir/(-a归档模式、--delete同步删除目标目录中源目录不存在的文件)。tar -czvf backup.tar.gz /source/dir/(-z压缩、-v详细模式)。scp backup.tar.gz user@remote_host:/remote/backup/dir/。backup_sftp.sh):#!/bin/bash
SOURCE_DIR="/home/sftp_user"
BACKUP_DIR="/backup/sftp"
LOG_FILE="$BACKUP_DIR/backup_$(date +%Y%m%d).log"
mkdir -p "$BACKUP_DIR"
rsync -av --delete "$SOURCE_DIR" "$BACKUP_DIR" >> "$LOG_FILE" 2>&1
if [ $? -eq 0 ]; then
echo "$(date): Backup succeeded." >> "$LOG_FILE"
else
echo "$(date): Backup failed." >> "$LOG_FILE"
fi
crontab -e添加定时任务,如每日凌晨2点执行备份:0 2 * * * /path/to/backup_sftp.sh。>> "$LOG_FILE" 2>&1),记录备份时间、成功/失败状态及错误信息,便于后续排查问题。tail -f /backup/sftp/backup.log),确认备份任务是否按时执行;可通过邮件通知(结合mail命令)或监控工具(如Nagios)实时监控备份状态。du -sh /source/dir/与du -sh /backup/dir/对比)。rsync -av /backup/dir/ /source/dir/或tar -xzvf backup.tar.gz -C /source/dir/),确认恢复后的数据完整可用。700(仅所有者可读写执行),避免未授权访问:chmod 700 /backup/sftp。gpg)加密,防止数据泄露:gpg -c backup.tar.gz(生成backup.tar.gz.gpg加密文件)。chroot jail),修改/etc/ssh/sshd_config配置:Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
并重启SSH服务:systemctl restart sshd。