1.上傳文件到ftp
創建一個shell文件:touch upload.sh
修改爲可執行文件:chmod +x upload.sh
編輯:vim upload.sh
,腳本內容如下
cd /user/directory/target
export putfile=yyy.jar
ftp -v -n ftp.xxx.com<<EOF
user huyikang psswd #用戶名和密碼
passive on
binary
delete $putfile #先把刪除的
put $putfile
passive off
bye
EOF
echo "send success"
首先進入target文件夾下,然後連接ftp,進入passive模式,打開二進制上傳,上傳文件,關閉passive模式,退出
這裏需要注意的倆個鍋:
a.這裏的有一個export變量,如果export變量設置爲
export putfile=/user/directory/target/yyy.jar
將會報錯,上傳文件自然就失敗啦:
553 Could not create file.
是因爲如果帶有文件夾路徑的話,put到ftp上之後也帶有文件夾,所以在ftp會有一步創建文件夾的操作,這當然是不允許的,所以這裏不能帶有路徑,解決辦法,就是先cd到對應的文件夾,然後再put文件
b.如果沒有打開passive,這裏會有一個warning
200 PORT command successful. Consider using PASV.
所以在進入到ftp之後,打開passive,操作結束之後,關閉passive即可。
2.FTP文件下載
export filename=yyy.jar
rm $filename
ftp -v -n ftp.xxx.com<<EOF
user huyikang ******(密碼)
get $filename
EOF
echo "get success"