1.ftp自動上傳文件腳本
#!/bin/bash ftp -n<<! open 192.168.220.129 user ls toor binary hash cd /path/to/backup lcd /path/to/need/backup prompt mkdir `date +"%Y%m%d"` cd `date +"%Y%m%d"` mput * close bye !
open行--要備份到的主機IP
user行--ls為要備份到的主機的用戶名,toor為前邊用戶對應的密碼
binary行--使用二進制模式進行傳輸
hash--每傳1k的大小輸出一個#號,可不用
cd行--備份文件要上傳到的目錄
lcd行--備份文件在本地的目錄
prompt行--使后邊mput上傳多個文件時不用每次都輸入“yes”進行確認
mkdir行--在備份主機按日期創建備份目錄,在這里主要是演示此模式中可和ssh一般使用mkdir和反引號
cd行--進入備份文件要上傳到的目錄
mput行--上傳本地目錄文件夾下的所有文件,也可以寫上具體文件名
close行--關閉ftp連接
bye行--退出ftp
2.sftp自動上傳文件腳本
自動上傳關鍵是自動輸入用戶名密碼,但使用ssh傳輸文件的工具scp、sftp和ssh一樣不能(聽說expect可以)自動輸入密碼,可以折中方案是使用lftp實現
HOST=192.168.220.129 USERNAME=ls PASSWORD=toor lftp -u $USERNAME,$PASSWORD sftp://$HOST << EOF cd /path/to/backup lcd /path/to/need/backup mkdir `date +"%Y%m%d"` cd `date +"%Y%m%d"` mput * bye EOF
lftp不是一個sftp自動登錄實現,其實為一個框架可以使用ftp等其他一些協議。
sftp登錄后其命令和ftp基本是一致的。
3.定時上傳
需要每日備份,再做一個定時任務即可
參考: