?
今天同事問我一個問題,在 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 ???? -- 顯示當前本地的路徑,我們能夠將這個路徑下的這個 文件上傳 到 FTP server的相關位置
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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
