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
進行增量備份,減少備份時間和存儲空間占用。