利用Linux SFTP(SSH File Transfer Protocol)進行遠程備份是一種安全且高效的方法。以下是詳細步驟:
安裝SFTP服務器:
sudo apt-get update
sudo apt-get install openssh-server
配置SFTP用戶:
/etc/passwd文件,添加新用戶:sudo adduser backupuser
sudo passwd backupuser
配置SSH和SFTP:
/etc/ssh/sshd_config文件,確保以下配置存在并正確:Subsystem sftp internal-sftp
Match User backupuser
ChrootDirectory /home/backupuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sudo mkdir /home/backupuser
sudo chown root:root /home/backupuser
sudo chmod 755 /home/backupuser
重啟SSH服務:
sudo systemctl restart sshd
連接到遠程服務器:
sftp backupuser@remote_host
上傳文件:
put命令上傳本地文件到遠程服務器:put /path/to/local/file /path/to/remote/directory
下載文件:
get命令從遠程服務器下載文件到本地:get /path/to/remote/file /path/to/local/directory
列出目錄內容:
ls命令列出遠程目錄的內容:ls /path/to/remote/directory
退出SFTP會話:
exit命令退出SFTP會話:exit
你可以編寫一個簡單的Shell腳本來自動化備份過程。以下是一個示例腳本:
#!/bin/bash
# 定義變量
LOCAL_DIR="/path/to/local/directory"
REMOTE_DIR="/path/to/remote/directory"
REMOTE_HOST="remote_host"
BACKUP_USER="backupuser"
# 創建備份目錄(如果不存在)
ssh ${BACKUP_USER}@${REMOTE_HOST} "mkdir -p ${REMOTE_DIR}"
# 上傳文件
rsync -avz --delete ${LOCAL_DIR}/ ${BACKUP_USER}@${REMOTE_HOST}:${REMOTE_DIR}
echo "Backup completed successfully."
將上述腳本保存為backup.sh,然后賦予執行權限并運行:
chmod +x backup.sh
./backup.sh
通過以上步驟,你可以利用Linux SFTP進行安全且高效的遠程備份。