温馨提示×

在Ubuntu上如何备份vsftp

小樊
39
2025-10-14 00:57:14
栏目: 智能运维

在Ubuntu上备份vsftpd的完整步骤

一、准备工作

备份vsftpd前,需确认以下关键路径(根据实际配置调整):

  • 配置文件目录/etc/vsftpd/(主配置文件为vsftpd.conf,若有用户列表文件vsftpd.userlist也需备份);
  • 用户数据目录:通常为/home/ftpuser/ftpuser为FTP用户名,可通过grep "^ftpuser:" /etc/passwd命令查询);
  • 日志文件目录/var/log/vsftpd/(默认日志文件为vsftpd.log,若未开启日志则无需备份)。

二、手动备份操作(单次执行)

1. 备份配置文件

使用tar命令打包/etc/vsftpd/目录(包含所有配置文件),生成压缩包便于存储:

sudo tar -czvf /path/to/backup/location/vsftpd_config_backup_$(date +%F).tar.gz /etc/vsftpd/ 
  • -c:创建新压缩包;
  • -z:使用gzip压缩;
  • -v:显示详细过程;
  • -f:指定压缩包路径(含当前日期,如vsftpd_config_backup_2025-10-14.tar.gz)。

2. 备份用户数据

使用rsync命令同步FTP用户目录到备份位置(保留文件属性且支持增量备份):

sudo rsync -av --delete /home/ftpuser/ /path/to/backup/location/ftpuser_data_backup/ 
  • -a:归档模式(保留权限、时间戳等);
  • -v:显示详细过程;
  • --delete:删除备份目录中源目录不存在的文件(保持完全一致)。

3. 备份日志文件(可选)

若需保留FTP访问日志,复制日志文件到备份位置:

sudo cp /var/log/vsftpd.log /path/to/backup/location/vsftpd_log_backup_$(date +%F).log 

三、自动化备份(定期执行)

通过cron作业实现每日自动备份,避免手动操作遗漏。

1. 创建备份脚本

新建脚本文件(如/usr/local/bin/backup_vsftpd.sh),内容如下:

#!/bin/bash # 定义备份目录 BACKUP_DIR="/path/to/backup/location" # 创建备份目录(若不存在) mkdir -p "$BACKUP_DIR" # 备份配置文件(带日期) sudo tar -czvf "$BACKUP_DIR/vsftpd_config_backup_$(date +%F).tar.gz" /etc/vsftpd/ # 备份用户数据(带日期) sudo rsync -av --delete /home/ftpuser/ "$BACKUP_DIR/ftpuser_data_backup_$(date +%F)/" # 备份日志文件(带日期,若存在) if [ -f /var/log/vsftpd.log ]; then sudo cp /var/log/vsftpd.log "$BACKUP_DIR/vsftpd_log_backup_$(date +%F).log" fi # 删除7天前的旧备份(可选,节省空间) find "$BACKUP_DIR" -type d -name "ftpuser_data_backup_*" -mtime +7 -exec rm -rf {} \; find "$BACKUP_DIR" -type f -name "vsftpd_*.tar.gz" -mtime +7 -exec rm -rf {} \; find "$BACKUP_DIR" -type f -name "vsftpd_*.log" -mtime +7 -exec rm -rf {} \; echo "vsftpd backup completed on $(date)" >> "$BACKUP_DIR/backup_log.txt" 
  • 脚本功能:备份配置文件、用户数据、日志文件,并自动清理7天前的旧备份;
  • 赋予执行权限:
    sudo chmod +x /usr/local/bin/backup_vsftpd.sh 

2. 添加cron任务

编辑当前用户的crontab文件:

crontab -e 

添加以下行(每日凌晨2点执行备份):

0 2 * * * /usr/local/bin/backup_vsftpd.sh 
  • 保存并退出(Ctrl+XYEnter),cron会自动加载任务。

四、验证备份有效性

  1. 检查备份文件:确认备份目录下生成了对应日期的压缩包和目录;
  2. 测试恢复流程:将备份文件复制到测试环境,解压配置文件并还原用户数据,启动vsftpd服务验证是否能正常访问。

注意事项

  • 备份位置:建议将备份文件存储到外部设备(如U盘、NAS)或远程服务器(如SFTP、云存储),避免本地磁盘故障导致数据丢失;
  • 权限问题:备份过程中需使用sudo获取root权限,确保能访问所有目标文件;
  • 增量备份rsync命令支持增量备份,仅同步变化的文件,节省时间和存储空间;
  • 日志监控:定期检查backup_log.txt(脚本生成的日志),确认备份是否成功执行。

0