在Linux使用FileZilla进行FTP备份
一 准备与安装
二 图形界面手动备份步骤
三 自动化备份方案
#!/usr/bin/env bash
set -e
BACKUP_SRC="/data/backup"
REMOTE_USER="backup"
REMOTE_HOST="192.0.2.10"
REMOTE_DIR="/backup"
SSH_KEY="/home/backup/.ssh/id_rsa"
TIMESTAMP=$(date +%F_%H-%M-%S)
LOG="/var/log/backup_ftp_${TIMESTAMP}.log"
echo "[$(date)] 开始备份 ${BACKUP_SRC} → ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}" >> "$LOG"
# 执行同步(保留目录结构、删除远端多余文件;可按需增减参数)
rsync -avz --delete -e "ssh -i ${SSH_KEY} -p 22" \
"${BACKUP_SRC}/" "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}/" >> "$LOG" 2>&1
echo "[$(date)] 备份完成,详情见 ${LOG}" >> "$LOG"
chmod +x /usr/local/bin/backup.sh
# 每天 02:00 执行
echo "0 2 * * * root /usr/local/bin/backup.sh" | sudo tee /etc/cron.d/backup_ftp
#!/usr/bin/env bash
set -e
HOST="192.0.2.10"
USER="backup"
PASS="YourPassword"
LOCAL_DIR="/data/backup"
REMOTE_DIR="/backup"
LOG="/var/log/ftp_backup.log"
lftp -u "$USER","$PASS" -e "
set ftp:ssl-allow no;
mirror -R --delete --verbose '$LOCAL_DIR' '$REMOTE_DIR';
bye
" "$HOST" >> "$LOG" 2>&1
四 安全与排错要点