vsftpd的核心配置文件位于/etc/vsftpd/目录(主配置文件为vsftpd.conf),相关用户列表文件(如user_list、chroot_list)也需一并备份。
手动备份:使用cp命令复制文件到安全目录(如/etc/backup),并在文件名中添加时间戳以便区分版本。
sudo mkdir -p /etc/backup # 创建备份目录(若不存在)
sudo cp /etc/vsftpd.conf /etc/backup/vsftpd.conf-$(date +%Y%m%d%H%M%S).bak
sudo cp /etc/vsftpd.user_list /etc/backup/vsftpd.user_list-$(date +%Y%m%d%H%M%S).bak
sudo cp /etc/vsftpd.chroot_list /etc/backup/vsftpd.chroot_list-$(date +%Y%m%d%H%M%S).bak
自动化备份:通过crontab设置定时任务,每天凌晨2点执行备份脚本(脚本内容见下文“自动化备份”部分)。
FTP用户数据通常存储在用户家目录(如/home/ftpuser,ftpuser为用户名)或/var/lib/vsftpd/目录(若配置了local_root指向该目录)。
手动备份:使用tar命令打包用户家目录(保留目录结构),或使用rsync进行增量备份(仅同步变化文件)。
# 打包用户家目录(如ftpuser)
sudo tar -czvf /backup/ftpuser_backup.tar.gz /home/ftpuser
# 增量备份(保留删除文件)
sudo rsync -av --delete /home/ftpuser /backup/ftpuser_backup/
自动化备份:将备份命令写入脚本(如/usr/local/bin/backup_vsftpd.sh),并通过crontab定期执行。
vsftpd的日志文件默认位于/var/log/vsftpd.log(若启用了日志功能),记录了FTP连接、传输等关键信息,需定期备份。
手动备份:使用cp命令复制日志文件。
sudo cp /var/log/vsftpd.log /backup/vsftpd.log.bak
自动化备份:将日志备份纳入定时任务,避免日志文件过大占用空间。
创建备份脚本(如/usr/local/bin/backup_vsftpd.sh),整合配置文件、用户数据、日志的备份逻辑,并添加时间戳:
#!/bin/bash
BACKUP_DIR="/backup/vsftpd"
mkdir -p "$BACKUP_DIR"
# 备份配置文件
sudo tar -czvf "$BACKUP_DIR/vsftpd_config_$(date +%Y%m%d).tar.gz" /etc/vsftpd/
# 备份用户数据
sudo tar -czvf "$BACKUP_DIR/vsftpd_user_data_$(date +%Y%m%d).tar.gz" /home/ftpuser
# 备份日志文件
sudo cp /var/log/vsftpd.log "$BACKUP_DIR/vsftpd_log_$(date +%Y%m%d).bak"
echo "vsftpd backup completed on $(date)" >> "$BACKUP_DIR/backup.log"
赋予执行权限:
sudo chmod +x /usr/local/bin/backup_vsftpd.sh
设置定时任务:编辑crontab(sudo crontab -e),添加以下行(每天凌晨2点执行):
0 2 * * * /usr/local/bin/backup_vsftpd.sh
若配置文件损坏或需要回滚到之前的版本,将备份文件复制回原位置并重启vsftpd服务:
# 恢复配置文件(以最新备份为例)
sudo cp /etc/backup/vsftpd.conf-latest.bak /etc/vsftpd.conf
sudo cp /etc/backup/vsftpd.user_list-latest.bak /etc/vsftpd.user_list
# 重启vsftpd服务使配置生效
sudo systemctl restart vsftpd
注意:恢复前需停止vsftpd服务(sudo systemctl stop vsftpd),避免配置文件被占用导致恢复失败。
若用户数据丢失或损坏,将备份文件解压到原目录(需停止vsftpd服务以保证数据一致性):
# 停止vsftpd服务
sudo systemctl stop vsftpd
# 恢复用户数据(以最新备份为例)
sudo tar -xzvf /backup/vsftpd_user_data-latest.tar.gz -C /
# 启动vsftpd服务
sudo systemctl start vsftpd
注意:若用户家目录路径有变更(如从/home/ftpuser改为/var/ftp/ftpuser),需调整备份文件的解压路径。
若日志文件丢失,将备份的日志文件复制回原位置即可(无需重启服务):
sudo cp /backup/vsftpd.log-latest.bak /var/log/vsftpd.log
注意:恢复日志文件不会影响当前FTP服务,仅用于查看历史记录。
root权限(通过sudo执行),确保能访问所有目标文件和目录。tar命令备份时,可添加-W选项验证备份文件的完整性(如tar -czWvf backup.tar.gz /path/to/dir)。rsync进行增量备份,减少备份时间和存储空间占用。