1. 程式人生 > >linux下使用ftp命令

linux下使用ftp命令

ans 外殼 自動 selinux create 就是 圖形 多文件 修改

有一臺ftp服務器,需要從linux上傳送文件過去,查詢了下使用方法

安裝ftp
yum -y instsall ftp

命令行使用
$ ftp
ftp>open 52.79.137.222 2121 #### IP port
Connected to 52.79.137.222 (52.79.137.222).
220 Welcome to blah FTP service.
Name (52.79.137.222:tgcbt): bgladmin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.

Using binary mode to transfer files.
提示輸入賬號密碼
230 Login successful.為成功登陸

ftp>ls
227 Entering Passive Mode (172,26,4,10,39,92).
說明客戶端使用的是被動模式(pasv方式),ls/dir等命令用不了,需要改為主動模式(port方式)

ftp>passive
Passive mode off.
被動模式關閉
再次
ftp>ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.

drwx------ 2 1005 1005 6 Jan 04 20:14 1G
drwx------ 2 1005 1005 6 Apr 29 09:21 20g
drwx------ 2 1005 1005 6 Jan 04 20:14 5G
drwx------ 2 1005 1005 6 Apr 29 12:32 ebao
226 Directory send OK.

常用命令::
ftp>mkdir ebao 創建目錄
257 "/ebao" created
ftp>cd 切換目錄

250 Directory successfully changed.
ftp> status 連接狀態
ftp> close 關閉連接
221 Goodbye.
ftp> passive 模式切換
Passive mode off.
或者
Passive mode on.
ftp> exit 退出ftp
ftp> pwd???????????????顯示自己的所在位置
ftp> dir 查看目錄
ftp>put 復制本地文件到遠程
ftp> put /home/backup/ebaobak/ebao20190426.sql.zip ebao/ebao20190426.sql.zip
local: /home/backup/ebaobak/ebao20190426.sql.zip remote: ebao/ebao20190426.sql.zip
200 PORT command successful. Consider using PASV.
553 Could not create file.
復制失敗,因為遠程目錄的問題

ftp> put /home/backup/ebaobak/ebao20190426.sql.zip /ebao/ebao20190426.sql.zip
local: /home/backup/ebaobak/ebao20190426.sql.zip remote: /ebao/ebao20190426.sql.zip
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
1588889981 bytes sent in 506 secs (3137.44 Kbytes/sec)
復制成功,遠程目錄寫的絕對路徑

ftp> cd ebao
ftp> put /data/tool/ebao-yhb/yhbao20190304154101.sql.zip ./yhbao20190304154101.sql.zip
local:/data/tool/ebao-yhb/yhbao20190304154101.sql.zip remote: ./yhbao20190304154101.sql.zip
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
65351760 bytes sent in 13.7 secs (4754.09 Kbytes/sec)

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw------- 1 1005 1005 1588889981 Apr 29 13:10 ebao20190426.sql.zip
-rw------- 1 1005 1005 65351760 Apr 29 13:20 yhbao20190304154101.sql.zip
226 Directory send OK.

備註:
登陸進去後看不到遠程服務器的根目錄下的目錄,報錯200 port command successful. consider using pasv 425 failed to establish connection。網上查了下
有人說,客戶端的ftp要設置成主動; 有人說,服務器端ftp配置要修改允許的端口號; 有人說是linux的防火墻~~~ ;有人說是Selinux在搗鬼...
後來關閉linux客戶端的防火墻,再ftp>ls就能看到目錄

狀態碼::
200 PORT command successful. Consider using PASV. 連接成功,模式為PASV
230 Login successful. 登陸成功
221 Goodbye. 關閉連接,退出登陸
425 Failed to establish connection. 無法建立連接
227 Entering Passive Mode (172,26,4,10,39,94). 模式為被動
150 Here comes the directory listing. 查看目錄
226 Directory send OK. 傳送成功
553 Could not create file. 不能創建文件
250 Directory successfully changed. 目錄切換成功
550 Failed to change directory. 目錄切換失敗
331 Please specify the password. 輸入密碼
220 Welcome to blah FTP service. 登陸提示
421 Timeout. 超時
530 Login incorrect. 登陸失敗,賬號密碼不正確

擴展::
FTP連接時出現“227 Entering Passive Mode”解決辦法也很簡單,只需要關閉客戶端的PASV方式,強制其用PORT方式訪問服務器即可

FTP服務的兩種工作模式:?

?port方式(主動模式), 連接過程:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時, 客戶端在命令鏈路上用PORT命令告訴服務器:“我打開了X端口,你過來連接我”。於是服務器從20端口向客戶端的X端口發送連接請求,建立一條數據鏈路來傳送數據。?

?pasv方式 ( 被動模式 ), 連接過程:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時, 服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了X端口,你過來連接我”。於是客戶端向服務器的X端口發送連接請求,建立一條數據鏈 路來傳送數據。?

由於服務器上的FTP進行TCP/IP篩選,僅允許特定的端口可以被客戶端連接,所以無法使用PASV方式。找到了原因,解決辦法也很簡單,只需要關閉客戶端的PASV方式,強制其用PORT方式訪問服務器即可。?

客戶端登錄FTP服務器後,用passive命令關閉客戶端的PASV方式,如下:?

代碼如下?
復制代碼代碼如下:

ftp> passive?
Passive mode off.?

再次執行該命令就可以啟用PASV模式。

###############################以下為轉載#########################################
來源:CSDN
原文:https://blog.csdn.net/sinat_38163598/article/details/72812146

FTP> !?從?ftp?子系統退出到外殼。

FTP> ??顯示?ftp?命令說明。??與?help?相同。

格式:? [command]

說明:[command]指定需要幫助的命令名稱。如果沒有指定?command,ftp?將顯示全部命令的列表。?

FTP> append?使用當前文件類型設置將本地文件附加到遠程計算機上的文件。

格式:append local-file [remote-file]

說明:local-file?指定要添加的本地文件。

remote-file?指定要添加?local-file?的遠程計算機上的文件。如果省略了?remote-file,本地文件名將被用作遠程文件名。

FTP> ascii?將文件傳送類型設置為默認的?ASCII。

說明:FTP?支持兩種文件傳送類型,ASCII?碼和二進制圖像。在傳送文本文件時應該使用ASCII。

FTP> bell?切換響鈴以在每個文件傳送命令完成後響鈴。默認情況下,鈴聲是關閉的。

FTP> binary(或bi) 將文件傳送類型設置為二進制。

FTP> bye(或by) 結束與遠程計算機的?FTP?會話並退出?ftp。

FTP> cd?更改遠程計算機上的工作目錄。

格式:cd remote-directory

說明:remote-directory?指定要更改的遠程計算機上的目錄。

FTP> close?結束與遠程服務器的?FTP?會話並返回命令解釋程序。

FTP> debug?切換調試。當調試打開時,發送到遠程計算機的每個命令都打印,前面是字符串“>”。默認情況下,調試是關閉的。

FTP> delete?刪除遠程計算機上的文件。

格式:delete remote-file

說明:remote-file?指定要刪除的文件。

FTP> dir?顯示遠程目錄文件和子目錄列表。

格式:dir [remote-directory] [local-file]

說明:remote-directory?指定要查看其列表的目錄。如果沒有指定目錄,將使用遠程計算機中的當前工作目錄。Local-file?指定要存儲列表的本地文件。如果沒有指定,輸出將顯示在屏幕上。

FTP> disconnect?從遠程計算機斷開,保留?ftp?提示。

FTP> get?使用當前文件轉換類型將遠程文件復制到本地計算機。

格式:get remote-file [local-file]

說明:remote-file?指定要復制的遠程文件。

Local-file?指定要在本地計算機上使用的名稱。如果沒有指定,文件將命名為?remote-file。

FTP >glob?切換文件名組合。組合允許在內部文件或路徑名中使用通配符(*和?)。默認情況下,組合是打開的。

FTP >hash?切換已傳輸的每個數據塊的數字簽名?(#)?打印。數據塊的大小是2048?字節。默認情況下,散列符號打印是關閉的。

FTP >help?顯示?ftp?命令說明。

格式:help [command]

說明:command?指定需要有關說明的命令的名稱。如果沒有指定?command,ftp?將顯示全部命令的列表。

FTP >lcd?更改本地計算機上的工作目錄。默認情況下,工作目錄是啟動?ftp?的目錄。

格式:lcd [directory]

說明:directory?指定要更改的本地計算機上的目錄。如果沒有指定directory,將顯示本地計算機中當前的工作目錄。

FTP >literal?將參數逐字發送到遠程?FTP?服務器。將返回單個的?FTP?回復代碼。

格式:literal argument [ ...]

說明:argument?指定要發送到?FTP?服務器的參數。

FTP >ls?顯示遠程目錄文件和子目錄的縮寫列表。

格式:ls [remote-directory] [local-file]

說明:remote-directory?指定要查看其列表的目錄。如果沒有指定目錄,將使用遠程計算機中的當前工作目錄。?local-file?指定要存儲列表的本地文件。如果沒有指定,輸出將顯示在屏幕上。

FTP >mdelete?刪除遠程計算機上的文件。

格式:mdelete remote-files [ ...]

說明:remote-files?指定要刪除的遠程文件。

FTP >mdir?顯示遠程目錄文件和子目錄列表。可以使用?mdir?指定多個文件。

格式:mdir remote-files [ ...] local-file

說明:remote-files?指定要查看列表的目錄。必須指定?remote-files。請鍵入?-?使用遠程計算機上的當前工作目錄。

local-file?指定要還原列表的本地文件。請鍵入-?在屏幕上顯示列表。

FTP >mget?使用當前文件傳送類型將遠程文件復制到本地計算機。

格式:mget remote-files [ ...]

說明:remote-files?指定要復制到本地計算機的遠程文件。

FTP >mkdir?創建遠程目錄。

格式:mkdir directory

說明:directory?指定新的遠程目錄的名稱。

FTP >mls?顯示遠程目錄文件和子目錄的縮寫列表。

格式:mls remote-files [ ...] local-file

說明:remote-files?指定要查看列表的文件。必須指定?remote-files;

請鍵入-?使用遠程計算機上的當前工作目錄。

local-file?指定要存儲列表的本地文件。請鍵入?-?以在屏幕上顯示列表。

FTP >mput?使用當前文件傳送類型將本地文件復制到遠程計算機上。

格式:mput local-files [ ...]

說明:local-files?指定要復制到遠程計算機的本地文件

FTP >open?與指定的?FTP?服務器連接。

格式:open computer [port]

說明:computer?指定要連接的遠程計算機。可以通過?IP?地址或計算機名稱指定計算機(DNS或主機文件必須可用)。如果自動登錄打開(默認),ftp?還將嘗試自動將用戶登錄到?FTP?服務器port?指定用來聯系?FTP?服務器的端口號。

FTP >prompt?切換提示。如果關閉提示時?mget?及?mput?傳送所有文件,Ftp在多文件傳送過程中將提示允許您有選擇地檢索或存儲文件。默認情況下,提示是

打開的。

FTP >put?使用當前文件傳送類型將本地文件復制到遠程計算機上。

格式:put local-file [remote-file]

說明:local-file?指定要復制的本地文件。

remote-file?指定要在遠程計算機上使用的名稱。如果沒有指定,文件將命名為?local-file。

FTP >pwd?顯示遠程計算機上的當前目錄。

FTP >quit?結束與遠程計算機的?FTP?會話並退出?ftp。

FTP >quote?將參數逐字發送到遠程?FTP?服務器。將返回單個的?FTP?回復代碼。

Quote?與?literal?相同。

格式:quote argument [ ...]

說明:argument?指定要發送到?FTP?服務器的參數。

FTP >recv?使用當前文件傳送類型將遠程文件復制到本地計算機。Recv?與?get相同。

格式:recv remote-file [local-file]

說明:remote-file?指定要復制的遠程文件。

local-file?指定要在本地計算機上使用的名稱。如果沒有指定,文件將命名為?remote-file。

FTP >remotehelp?顯示遠程命令幫助。

格式:remotehelp [command]

說明:command?指定需要幫助的命令的名稱。如果沒有指定?command,ftp將顯示全部遠程命令的列表。

FTP >rename?重命名遠程文件。

格式:rename filename newfilename

說明:filename?指定要重命名的文件。?newfilename?指定新的文件名。

FTP >rmdir?刪除遠程目錄。

格式:rmdir directory

說明:directory?指定要刪除的遠程目錄的名稱。

FTP >send?使用當前文件傳送類型將本地文件復制到遠程計算機上。Send?與put?相同。

格式:send local-file [remote-file]

說明:local-file?指定要復制的本地文件。?remote-file?指定要在遠程計算機上使用的名稱。如果沒有指定,文件將命名為?local-file。

FTP >status?顯示?FTP?連接和切換的當前狀態。

FTP >trace?切換數據包跟蹤。Trace?在運行?ftp?命令時顯示每個數據包的路由。

FTP >type?設置或顯示文件傳送類型。

格式:type [type-name]

說明:type-name?指定文件傳送類型。默認設置為?ascii。如果沒有指定type-name,將顯示當前的類型。

FTP >user?指定遠程計算機的用戶。

格式:user username [password] [account]

說明:user-name?指定登錄到遠程計算機所使用的用戶名。password?指定?user-name?的密碼。如果沒有指定,但必須指定,ftp?會提示輸入密碼。

account?指定登錄到遠程計算機所使用的帳戶。如果沒有指定account,但是需要指定,ftp?會提示您輸入帳戶。

FTP >verbose?切換?verbose?模式。

如果打開,將顯示所有?ftp?響應。在文件傳送完成後,將同時顯示與傳送效率有關的統計信息。默認情況下,verbose?是打開的。

sftp?是一個交互式文件傳輸程式。它類似於?ftp,?但它進行加密傳輸,比FTP有更高的安全性。下邊就簡單介紹一下如何遠程連接主機,進行文件的上傳和下載,以及一些相關操作。

舉例,如遠程主機的?IP?是?202.206.64.33或者是域名www.hebust.edu.cn,用戶名是??fyt ,在命令行模式下:sftp [email protected]或者[email protected]。回車提示輸入密碼。進入提示符

sftp>

如果登陸遠程機器不是為了上傳下載文件,而是要修改遠程主機上的某些文件。可以

ssh? [email protected]?(其實sftp就是ssh?的一個程式。)

sftp> get /var/www/fuyatao/index.php? /home/fuyatao/

這條語句將從遠程主機的??/var/www/fuyatao/目錄下將?index.php?下載到本地??/home/fuyatao/目錄下。

sftp> put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/

這條語句將把本地?/home/fuyatao/downloads/目錄下的?linuxgl.pdf文件上傳至遠程主機/var/www/fuyatao/?目錄下。

你如果不知道遠程主機的目錄是什麽樣,?pwd命令可以幫您查詢遠程主機的當前路徑。查詢本機當前工作目錄?lpwd.

改變路徑可以用cd?,改變本機路徑可以用?lcd;

ls rm rmdir mkdir?這些命令都可以使用。同理調用本機都是加?l ,?即?lls lrm.

要離開sftp,用exit?或quit、?bye?均可。詳細情況可以查閱?man? sftp.

如果覺得在命令行模式下不太方便,可以?sudo apt-get install gftp。在圖形界面下操作就簡便多了

linux下使用ftp命令