Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 使用 SSH 通過 FTP 協議傳送文件至遠程空間備份

編輯:關於 Linux

在 Linux 服務器上,通過命令行 FTP 客戶端將本地目錄打包上傳至遠程 FTP 空間,是常見的異地備份手段。本文演示從打包壓縮、FTP 連接登錄、上傳驗證、腳本自動化、斷點續傳、安全加固的完整流程。

FTP 上傳示意

前置準備

  • 遠程 FTP 服務器 IP/域名、用戶名、密碼、端口(默認 21)、被動模式支持。
  • 本地安裝 FTP 客戶端:yum install -y ftp / apt install -y ftp(或 lftp、ncftp 功能更強)。
  • 本地備份目錄(如 /home/wwwroot/aaa/)讀取權限。

手動操作步驟

1. 進入備份父目錄並打包壓縮


cd /home/wwwroot
tar -czf aaa.tar.gz aaa/
# -c 創建 -z gzip壓縮 -f 指定文件名
# 大目錄建議排除緩存/日志:tar -czf aaa.tar.gz --exclude='*.log' --exclude='cache' aaa/

2. 連接 FTP 服務器


ftp 55.44.33.22
# 或指定端口
ftp 55.44.33.22 2121
# 輸入用戶名、密碼
# 連接成功顯示 ftp> 提示符

3. 設置二進制模式並上傳


ftp> binary          # 關鍵:二進制模式,防止文本轉換損壞壓縮包/圖片
ftp> put aaa.tar.gz
# 等待傳輸完成,顯示 226 Transfer complete

4. 驗證與退出


ftp> ls -l           # 確認遠程文件大小一致
ftp> quit

自動化備份腳本


#!/bin/bash
# /root/scripts/ftp_backup.sh
set -euo pipefail

# 配置區
SRC_DIR="/home/wwwroot/aaa"
BAK_DIR="/tmp/backup"
FTP_HOST="55.44.33.22"
FTP_USER="backup_user"
FTP_PASS="strong_password"
FTP_REMOTE_DIR="/backup/web"
KEEP_DAYS=7
DATE=$(date +%Y%m%d_%H%M%S)
FILENAME="aaa_${DATE}.tar.gz"

# 創建備份目錄
mkdir -p "${BAK_DIR}"

# 打包
tar -czf "${BAK_DIR}/${FILENAME}" -C "$(dirname "${SRC_DIR}")" "$(basename "${SRC_DIR}")"

# 上傳 (使用 lftp 支持腳本化、鏡像、斷點續傳)
lftp -u "${FTP_USER}","${FTP_PASS}" "${FTP_HOST}" <

加入 crontab 定時執行:


# 每天凌晨 2 點
0 2 * * * /root/scripts/ftp_backup.sh >> /var/log/ftp_backup.log 2>&1

進階:lftp 高級功能

功能命令/參數
斷點續傳put -c / get -c / mirror -c
鏡像同步 (增量)mirror -R --only-newer --parallel=4 local_dir remote_dir
限速set net:limit-rate 1024000 (1MB/s)
FTPS (隱式/顯式 SSL)set ftp:ssl-force true / set ftp:ssl-protect-data true
SFTP (SSH 文件傳輸)lftp sftp://user:pass@host

安全加固建議

  • 避免明文密碼:使用 .netrc (權限 600) 或 SSH 密鑰登錄 SFTP。
  • 啟用 FTPS/SFTP:FTP 明文傳輸極不安全,生產環境強制 FTPS (TLS) 或 SFTP。
  • 限制 FTP 用戶權限:chroot 限制在備份目錄,禁止 Shell 登錄 (/usr/sbin/nologin)。
  • 傳輸校驗:上傳後對比 md5sum / sha256sum。
  • 網絡隔離:備份網段專用 VLAN/安全組,僅允許服務器→備份存儲方向。

常見問題排查

現象原因解決
ftp: command not found未安裝 ftp 客戶端yum/apt install ftp 或用 lftp/ncftp
425 Failed to establish connection被動模式端口被防火牆阻擋FTP 服務器開啟被動端口範圍並放行;客戶端 passive on
上傳後文件損壞/大小不一致未設置 binary 模式上傳前必須 binary
腳本交互式卡住ftp 不支持批量腳本改用 lftp 或 expect 腳本
磁盤空間不足備份文件過大/未清理增量備份、壓縮等級調整、增加保留清理

掌握 FTP 備份腳本化、lftp 高級功能、安全加固,能構建可靠、低成本的異地備份體系。關鍵在於:自動化 + 校驗 + 異地 + 定期演練恢復。

Copyright © Windows教程網 All Rights Reserved