在Debian上配置FTP自動備份可以通過以下步驟實現。我們將使用vsftpd作為FTP服務器,并使用cron來設置定時任務。
首先,確保你的系統是最新的:
sudo apt update
sudo apt upgrade
然后安裝vsftpd:
sudo apt install vsftpd
編輯vsftpd的配置文件:
sudo nano /etc/vsftpd.conf
確保以下配置項被正確設置:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
保存并退出編輯器。
創建一個用于備份的用戶:
sudo adduser ftpuser
sudo passwd ftpuser
按照提示設置密碼。
確保FTP用戶有足夠的權限訪問和寫入備份目錄:
sudo chown -R ftpuser:ftpuser /path/to/backup/directory
sudo chmod -R 755 /path/to/backup/directory
編輯當前用戶的crontab文件:
crontab -e
添加一行來設置定時備份任務。例如,每天凌晨2點執行備份:
0 2 * * * /path/to/backup/script.sh >> /var/log/ftp_backup.log 2>&1
保存并退出編輯器。
創建一個備份腳本/path/to/backup/script.sh:
sudo nano /path/to/backup/script.sh
添加以下內容:
#!/bin/bash
# 設置FTP服務器信息
FTP_SERVER="ftp.example.com"
FTP_USER="ftpuser"
FTP_PASS="password"
FTP_DIR="/path/to/backup/directory"
# 設置本地備份目錄
LOCAL_DIR="/local/backup/directory"
# 使用lftp進行備份
lftp -e 'mirror --reverse --delete --verbose $LOCAL_DIR $FTP_USER@$FTP_SERVER:$FTP_DIR; quit' -u $FTP_USER,$FTP_PASS ftp://$FTP_SERVER
保存并退出編輯器。
sudo chmod +x /path/to/backup/script.sh
手動運行備份腳本以確保一切正常:
/path/to/backup/script.sh
檢查日志文件/var/log/ftp_backup.log以確認備份成功。
確保vsftpd服務正在運行:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
現在,你的Debian系統將每天自動執行FTP備份任務。如果有任何問題,請檢查日志文件以獲取更多信息。