ftp預設的檔案傳輸方式是基於
ascii
碼的,如果要以二進位制格式傳輸檔案,那麼要先輸入
bin
命令,然後再用
put
或get
命令。 1、
如果需要傳輸乙個目錄裡的所有檔案,那麼可以使用
mput
或mget
命令來替代
put
或get
命令。 注意:需要使用prompt off命令,來關閉互動模式,避免每次輸y確認。
2、如果需要定時傳輸檔案,可以通過指令碼來實現。
#!/bin/sh
ftp -nuser username password
binary
prompt off
cd /yourpath
mput *.archive
close
bye
! 將這個指令碼加入到crontab中即可實現定時ftp自動傳輸!
0 23 * * 6 /usr/local/chuanshu.sh
上面的這句,表示每星期六的23 : 00 執行ftp自動傳輸。
3、如果在乙個目錄下,檔案數量過多,
不建議你批量上傳整個目錄下的檔案,首先是上傳速度會慢,另外還有可能造成檔案損壞。建議是先tar打包後直接上傳這個檔案壓縮包,然後再解壓比較穩妥。
ftp> help (回車)
檢視命令集:
ascii: 設定以ascii方式傳送檔案(預設值)
bell: 每完成一次檔案傳送,報警提示
binary: 設定以二進位制方式傳送檔案
bye: 終止主機ftp程序,並退出ftp管理方式
case: 當為on時,用mget命令拷貝的檔名到本地機器中,全部轉換為小寫字母
cd: 同unix的cd命令
cdup: 返回上一級目錄
chmod: 改變遠端主機的檔案許可權
close: 終止遠端的ftp程序,返回到ftp命令狀態,所有的巨集定義都被刪除
delete: 刪除遠端主機中的檔案
dir [remote-directory] [local-file]: 列出當前遠端主機目錄中的檔案.如果有本地檔案,就將結果寫至本地檔案
get [remote-file] [local-file]: 從遠端主機中傳送至本地主機中
help [command]: 輸出命令的解釋
lcd: 改變當前本地主機的工作目錄,如果預設,就轉到當前使用者的home目錄
ls [remote-directory] [local-file]: 同dir
macdef: 定義巨集命令
mdelete [remote-files]: 刪除一批檔案
mget [remote-files]: 從遠端主機接收一批檔案至本地主機
mkdir directory-name: 在遠端主機中建立目錄
mput local-files: 將本地主機中一批檔案傳送至遠端主機
open host [port]: 重新建立乙個新的連線
prompt: 互動提示模式 off on
put local-file [remote-file]: 將本地乙個檔案傳送至遠端主機中
pwd: 列出當前遠端主機目錄
quit: 同bye
recv remote-file [local-file]: 同get
rename [from] [to]: 改變遠端主機中的檔名
rmdir directory-name: 刪除遠端主機中的目錄
send local-file [remote-file]: 同put
status: 顯示當前ftp的狀態
system: 顯示遠端主機系統型別
user user-name [password] [account]: 重新以別的使用者名稱登入遠端主機
shell中通過ftp批量上傳檔案
為了在shell中上傳檔案,需要避免在控制台中通過互動的方式輸入ftp的登入密碼,這時要安裝乙個強大的ftp命令列工具 lftp,通過lftp登入ftp伺服器的格式如下 lftp u username,password p port sftp ip各個引數的含義如下 成功登入後,就可以通過lftp的...
FTP檔案批量上傳失敗問題總結
ftputils類成員變數 public static ftpclient ftpclient null private transient static logger log logge ctory.getlogger ftputils.class 獲取ftp連線方法 public static ...
FTP檔案上傳
是網上找的例子,原文找不到了。public class ftputils2 return 判斷是否登入成功 public boolean ftplogin else ftp伺服器連線回答 int reply this.ftpclient.getreplycode if ftpreply.isposi...