Linux 终端訪问 FTP 及 上传下载 文件
?
今天同事問我一個問題,在Linux 下訪問FTP,并將文件上傳上去。 我之前一直是用WinSCP工具的。 先將文件從linux copy到windows下,然后在傳到ftp上。 google 一下。 方法也比較簡單。 這里僅僅討論通過終端來連接,由于也能夠通過IE 或者其它工具。
?
?
1.????? Linux 終端連接FTP
[oracle@Dave ~]$ ftp 10.85.7.97
Connected to 10.85.7.97.
220 Serv-U FTP Server v6.4 for WinSock ready...
500 'AUTH': command not understood.
500 'AUTH': command not understood.
KERBEROS_V4 rejected as an authentication type
Name (10.85.7.97:oracle): super
331 User name okay, need password.
Password:?? -- Linux 的password是不回顯的
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
?
假設FTP 同意匿名用戶,那么username要輸入anonymous,password隨意。 不能直接敲回車。
?
?
2.????? 查看FTP 命令
ftp> ?
Commands may be abbreviated.? Commands are:
!?????????????? cr????????????? mdir??????????? proxy?????????? send
$?????????????? delete????????? mget??????????? sendport??????? site
account???????? debug?????????? mkdir?????????? put???????????? size
append?? ???????dir???????????? mls???????????? pwd???????????? status
ascii?????????? disconnect????? mode??????????? quit??????????? struct
bell??????????? form??????????? modtime???????? quote?????????? system
binary????????? get???????????? mput??????????? recv??????????? sunique
bye???????????? glob??????????? newer?????????? reget?????????? tenex
case??????????? hash??????????? nmap??????????? rstatus???????? trace
ccc???????????? help??????????? nlist?????????? rhelp?????????? type
cd????????????? idle?????? ?????ntrans????????? rename????????? user
cdup??????????? image?????????? open??????????? reset?????????? umask
chmod?????????? lcd???????????? passive???????? restart???????? verbose
clear?????????? ls????????????? private???????? rmdir?????????? ?
close?????????? macdef????????? prompt????????? runique
cprotect??????? mdelete???????? protect???????? safe
?
能夠通過help command 查看每一個命令的說明
ftp> help put
put???????????? send one file
ftp> help mput
mput??????????? send multiple files
?
3.????? 上傳文件
?
Put命令:格式:put local-file [remote-file] 將一個文件上傳到ftp
Mput命令:格式:mput local-files 將本地主機中一批文件傳送至遠端主機.
???????? ???????? 注意:mput命令僅僅能將當前本地文件夾下的文件上傳到FTP上的當前文件夾。比方,在 /root/dave下執行的ftp命令,則僅僅有在/root/dave下的文件linux才會上傳到server上的當前文件夾下。
?
Put 代碼演示樣例:
ftp> pwd??? -- 顯示FTP上當前路徑
257 "/" is current directory.
ftp> ls?? -- 顯示當前文件夾下的文件
227 Entering Passive Mode (10,85,7,97,16,141)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw-?? 1 user???? group?????????? 0 Aug 17 16:11 .
drw-rw-rw-?? 1 user???? group?????????? 0 Aug 17 16:11 ..
-rw-rw-rw-?? 1 user???? group???? 1433088 Feb? 5 ?2010 ASPAJAXExtSetup_PConline_PConline.msi
-rw-rw-rw-?? 1 user???? group??? 197626837 Mar? 8 10:00 DelphiV7.0.zip
drw-rw-rw-?? 1 user???? group?????????? 0 Jul? 9 10:17 HHT
-rw-rw-rw-?? 1 user???? group???? 9235148 Dec 24? 2009 Install_HSKey_V1.3.exe
-rw-rw-rw-?? 1 user???? group??? 47316992 May 27 16:38 Release_4.rar
ftp> mkdir Dave??? -- 創建目錄Dave
257 "/Dave" directory created.
ftp> cd Dave????? -- 進入目錄Dave
250 Directory changed to /Dave
ftp> pwd??????? -- 顯示當前文件夾
257 "/Dave" is current directory.
ftp> lcd???? -- 顯示當前本地的路徑,我們能夠將這個路徑下的這個文件上傳到FTPserver的相關位置
Local directory now /home/oracle
ftp> !????? -- 退出當前的窗體,返回Linux 終端,當我們退出終端的時候,又會返回到FTP上。
[oracle@Dave ~]$ ls? -- 顯示當前文件夾下的文件
dead.letter? scripts? sqlnet.log
[oracle@Dave ~]$ vi Dave? -- 創建文件 Dave
[oracle@Dave ~]$ vi DBA?? -- 創建文件 DBA
[oracle@Dave ~]$ ls?????? -- 顯示目錄里的內容,等會我們將這些文件copy到FTP上
Dave? DBA? dead.letter? scripts? sqlnet.log
[oracle@Dave ~]$ exit? -- 退出終端,返回FTP命令行
exit
ftp> lcd
Local directory now /home/oracle
ftp> put DBA DBA??? -- 將剛才創建的文件DBA 上傳到ftp的當前文件夾上并命名為DBA。
local: DBA remote: DBA
227 Entering Passive Mode (10,85,7,97,16,156)
150 Opening BINARY mode data connection for DBA.
226 Transfer complete.
5 bytes sent in 3.3e-05 seconds (1.5e+02 Kbytes/s)
ftp> put DBA /Dave/SFDBA -- 將剛才創建的文件DBA 上傳到ftp的當前文件夾上并重命名為SFDBA。
local: DBA remote: /Dave/SFDBA
227 Entering Passive Mode (10,85,7,97,16,158)
150 Opening BINARY mode data connection for SFDBA.
226 Transfer complete.
5 bytes sent in 1.8e-05 seconds (2.7e+02 Kbytes/s)
ftp> put /home/oracle/DBA /test/SFDBA?
local: /home/oracle/DBA remote: /test/SFDBA
227 Entering Passive Mode (10,85,7,97,16,163)
150 Opening BINARY mode data connection for SFDBA.
226 Transfer complete.
5 bytes sent in 2.2e-05 seconds (2.2e+02 Kbytes/s)
ftp> cd test
250 Directory changed to /test
ftp> ls
227 Entering Passive Mode (10,85,7,97,16,169)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw-?? 1 user???? group?????????? 0 Aug 17 17:11 .
drw-rw-rw-?? 1 user???? group?????????? 0 Aug 17 17:11 ..
-rw-rw-rw-?? 1 user???? group?????????? 5 Aug 17 17:11 SFDBA
-rw-rw-rw-?? 1 user???? group??????? 5508 Aug 17 16:21 sqlnet.log
226 Transfer complete.
?
Mput 演示樣例代碼:
ftp> cd Dave
250 Directory changed to /Dave
ftp> mput *
mput alert_log.txt???? -- 這里每一個文件都要確認,按回車鍵就能夠了
227 Entering Passive Mode (10,85,7,97,16,196)
150 Opening BINARY mode data connection for alert_log.txt.
226 Transfer complete.
712 bytes sent in 2.9e-05 seconds (2.4e+04 Kbytes/s)
mput alert_newccs.hist?
227 Entering Passive Mode (10,85,7,97,16,197)
150 Opening BINARY mode data connection for alert_newccs.hist.
226 Transfer complete.
9321666 bytes sent in 0.78 seconds (1.2e+04 Kbytes/s)
mput alert_newccs.log?
227 Entering Passive Mode (10,85,7,97,16,198)
150 Opening BINARY mode data connection for alert_newccs.log.
226 Transfer complete.
21707 bytes sent in 0.0014 seconds (1.5e+04 Kbytes/s)
ftp> ls?????? -- 顯示文件夾下的文件
227 Entering Passive Mode (10,85,7,97,16,217)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw-?? 1 user???? group?????????? 0 Aug 17 17:22 .
drw-rw-rw-?? 1 user???? group?????????? 0 Aug 17 17:22 ..
-rw-rw-rw-?? 1 user???? group?????????? 5 Aug 17 17:09 SFDBA
-rw-rw-rw-?? 1 user???? group???????? 712 Aug 17 17:21 alert_log.txt
-rw-rw-rw-?? 1 user???? group???? 9321666 Aug 17 17:21 alert_newccs.hist
-rw-rw-rw-?? 1 user???? group?????? 21707 Aug 17 17:21 alert_newccs.log
226 Transfer complete.
ftp> delete SFDBA?? --刪除SFDBA 文件
250 DELE command successful.
ftp> mdelete a*?? -- 批量刪除文件
mdelete alert_log.txt?? -- 每一個文件都要確認
250 DELE command successful.
mdelete alert_newccs.hist?
250 DELE command successful.
mdelete alert_newccs.log?
250 DELE command successful.
?
?
4.?????? 下載文件
相同也有2個命令: get 和 mget。 Mget 用戶批量下載。
?????????????????? 格式:get [remote-file] [local-file]
???????? ?????????????????? ? mget [remote-files]
???????? ???????? 相同,mget 是將文件下載到本地的當前文件夾下。
?
Get 演示樣例:
ftp> get /test/SFDBA /home/SFDBA
local: /home/SFDBA remote: /test/SFDBA
local: /home/SFDBA: Permission denied? --Linux對權限控制的非常嚴格,下載的時候是否有相應目錄的寫權限
ftp>? get /test/SFDBA /home/oracle/SFDBA
local: /home/oracle/SFDBA remote: /test/SFDBA
227 Entering Passive Mode (10,85,7,97,17,0)
150 Opening BINARY mode data connection for SFDBA (5 Bytes).
226 Transfer complete.
5 bytes received in 6.2e-05 seconds (79 Kbytes/s)
ftp> !
[oracle@Dave bdump]$ cd /home/oracle/
[oracle@Dave ~]$ ls
Dave? DBA? dead.letter? scripts? SFDBA? sqlnet.log
?
Mget 演示樣例:
???????? ftp> ls
227 Entering Passive Mode (10,85,7,97,17,10)
150 Opening ASCII mode data connection for /bin/ls.
drw-rw-rw-? ?1 user???? group?????????? 0 Aug 17 17:38 .
drw-rw-rw-?? 1 user???? group?????????? 0 Aug 17 17:38 ..
-rw-rw-rw-?? 1 user???? group?????????? 5 Aug 17 17:38 DBA
-rw-rw-rw-?? 1 user???? group????????? 12 Aug 17 17:38 Dave
-rw-rw-rw-?? 1 user???? group???? ??????5 Aug 17 17:11 SFDBA
226 Transfer complete.
ftp> mget *
mget DBA?? -- 每一個文件都要確認, 按回車就可以
227 Entering Passive Mode (10,85,7,97,17,12)
150 Opening BINARY mode data connection for DBA (5 Bytes).
226 Transfer complete.
5 bytes received in 8.1e-05 seconds (60 Kbytes/s)
mget Dave?
227 Entering Passive Mode (10,85,7,97,17,13)
150 Opening BINARY mode data connection for Dave (12 Bytes).
226 Transfer complete.
12 bytes received in 8.3e-05 seconds (1.4e+02 Kbytes/s)
mget SFDBA?
227 Entering Passive Mode (10,85,7,97,17,14)
150 Opening BINARY mode data connection for SFDBA (5 Bytes).
226 Transfer complete.
5 bytes received in 9e-05 seconds (54 Kbytes/s)
???????? ftp> !
[oracle@Dave ~]$ ls
Dave? DBA? dead.letter? scripts? SFDBA? sqlnet.log
?
說明的地方:FTP 當前文件夾下的文件下載到本地的當前文件夾。
?
?
5.?? 斷開FTP 連接
Bye命令或者quit命令:中斷與server的連接。
ftp> bye
221 Goodbye!
?
?
以上僅僅是Linux 終端訪問ftp及上傳下載的幾個簡單演示樣例。 只是一般這幾個應該夠用了。其它功能感興趣的自己研究。
?
?
?
?
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
網上資源: http://tianlesoftware.download.csdn.net
相關視頻:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(滿); DBA2 群:62697977(滿)
DBA3 群:63306533;???? 聊天 群:40132017
總結
以上是生活随笔為你收集整理的Linux 终端訪问 FTP 及 上传下载 文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MRuby 编译笔记
- 下一篇: Java抓取网页数据(原网页+Javas