linux中使用shell腳本自動登陸ftp服務器下載上傳文件。linux
#/bin/bash sql
DATE=`date -d '1 days ago' +%Y%m%d` shell
GAMEDIR=/home/log/ bash
/usr/kerberos/bin/ftp -n -u <<! 服務器
open IP ide
user 用戶名 密碼 spa
binary.net
lcd $GAMEDIR get
prompt string
get access_$DATE.tar.gz
close
bye
!
exit 0
以上代碼中DATE=`date -d '1 days ago' +%Y%m%d`聲明變量DATE爲前一天的日期格式爲20100919,GAMEDIR=/home/log/聲明一個目錄的變量,/usr/kerberos/bin/ftp爲ftp命令的目錄,加入通常的shell中最好寫上目錄,不然命令可能沒法執行的,linux系統能夠使用#which 命令名稱 查看命令程序的目錄是哪裏。
/usr/kerberos/bin/ftp -n -u <<!
-n意思是不讀取默認.netrc文件中的設定
-u參數能夠解決如下報錯
'AUTH GSSAPI': command not understood
'AUTH KERBEROS_V4': command not understood
<<重定向文件的導入
!是即時文件的標誌它通常都是成對的出現,用來標識即時文件的開始和結尾
open
鏈接ftp服務器的IP。
user 用戶名 密碼
ftp服務器登陸用戶、密碼。
binary
使用二進制傳輸模式
lcd $GAMEDIR
切換本地所在目錄
prompt
打開prompt模式,通常prompt模式在使用多文件傳輸中才用到,默認爲打開狀態。若是prompt模式未打開,命令mput和mget將會傳輸目錄中的全部文件。
get
下載文件
close
關閉與ftp服務器的鏈接
bye斷開與ftp服務器的鏈接