① 求高手解答這段shell腳本是什麼意思------關於FTP的
等於在命令行輸入ftp -i -n -v 回車
然後手動輸入這幾行命令
open 192.168.1.10 回車 這行打開ftp:///192.168.1.10
user *** *** 回車 這行輸入用戶名
bye 回車 這行退出ftp
就一個IP,不用for,而且這個for沒用,改成 for host in aaa 結果還是一樣的
除了登錄ftp,然後顯示ftp登錄後伺服器顯示的信息,然後直接退出,什麼都沒做
② shell中ftp -in
-n禁止第一次連接的時候自動登陸,即不使用.netrc文件;
-i 在多個文件傳輸期間關閉交互提示,相當於FTP中prompt命令關閉;
整個FTP過程中所有的命令都從文件$FTPFILE中獲取,並將過程追加記錄到$LOGFILE中
③ linux下用shell編程FTP上傳文件的問題
Linux下用shell編程實現ftp自動登錄上傳文件,代碼如下:
####把本地/home/databachup/a.shupftp/home/databackup下####
#!/bin/bash
ftp-n<<!
openFTP伺服器IP地址
userFTP賬戶FTP密碼
binary
cd/home/data
lcd/home/databackup
prompt
puta.sha.sh#要上傳的文件
close
bye
!
④ shell腳本中取ftp遠程伺服器文件的問題
ftp使用mget下載多個文件默認有提示,可以增加-i參數,表示不提示:
ftp-i-n<<!
...
一般如果在Windows下編輯的文件,傳到linux環境下,文件內容里會因為回車換行表示方式不一樣,會出現^M符號,可以在傳到linux環境後,可以使用dos2unix等工具轉換(該工具因linux版本不同可能並未默認安裝)。另外,要注意所傳文件是否是二進制還是一般文本文件,如果是二進制文件,最好在get前執行bin命令表示傳輸二進制文件。
⑤ shell連接ftp的腳本
區別在於排版不同
你使用<< FTPINI時, 下面的行都要在定格寫,即行開頭不能有空格,直至結束,如
ftp -i -n $ip << FTPINI
cd /pub
ls
FTPINI
而加了-後,下面的行可以加入tab排版,如
ftp -i -n $ip <<-FTPINI
cd /pub
ls
FTPINI
⑥ FTP命令是什麼
【分享】FTP命令大全及應用實例
QUOTE:
FTP命令是Internet用戶使用最頻繁的命令之一,不論是在DOS還是UNIX操作系統下使用FTP,都會遇到大量的FTP內部命令,熟悉並靈活應用FTP的內部命令,可以大大方便使用者,對於現在撥號上網的用戶,如果ISP提供了shell可以使用nohup,那麼ftp將是你最省錢的上 download方式,ftp的命令行格式為:ftp -v -d -i -n -g[主機名]
-v 顯示遠程伺服器的所有響應信息。
-d 使用調試方式。
-n 限制ftp的自動登錄,即不使用.netrc文件。
-g 取消全局文件名。
ftp使用的內部命令如下(其中括弧表示可選項):
1.![cmd[args]在本地機中執行交互shell、exit回到ftp環境,如!ls*.zip 。
2.¥ macro-ame[args]執行宏定義macro-name。
3.account[password]提供登錄遠程系統成功後訪問系統資源所需的補充口令 。
4.appendlocal-file[remote-file]將本地文件追加到遠程系統主機,若未指定遠程系統文件名,則使用本地文件名。
5.ascii 使用ascii類型傳輸方式。
6.bell每個命令執行完畢後計算機響鈴一次。
7.bin使用二進制文件傳輸方式。
8.bye退出ftp會話過程。
9.case在使用mget時,將遠程主機文件名中的大寫轉為小寫字母。
10.cd remote-dir 進入遠程主機目錄。
11.cp進入遠程主機目錄的父目錄。
12.chmod modefile-name將遠程主機文件file-name的存取方式設置為mode,如chmod 777 a.out。
13.close中斷與遠程伺服器的ftp會話(與open對應)。
14.cr使用asscii方式傳輸文件時,將回車換行轉換為回行。
15.delete remote-file刪除遠程主機文件。
16.debug[debug-value]設置調試方式,顯示發送至遠程主機的每條命令,如debup3,若 設為0,表示取消debug。
17.dir[remote-dir][local-file]顯示遠程主機目錄,並將結果存入local-file。
18.disconnection同close。
19.form format將文件傳輸方式設置為format,預設為file方式。
20.getremote-file[local-file]將遠程主機的文件remote-file傳至本地硬碟的local-file。
21.glob設置mdelete、mget、mput的文件名擴展,預設時不擴展文件名,同命令行的-g參數。
22.hash每傳輸1024位元組,顯示一個hash符號(#)。
23.help[cmd]顯示ftp內部命令cmd的幫助信息,如help get。
24.idle[seconds]將遠程伺服器的休眠計時器設為[seconds]秒。
25.image設置二進制傳輸方式(同binary)
26.lcd[dir]將本地工作目錄切換至dir。
27.ls[remote-dir][local-file]顯示遠程目錄remote-dir,並存入本地local-file。
28.macdef macro-name定義一個宏,遇到macdef下的空行時,宏定義結束。
29.mdelete[remote-file]刪除遠程主機文件。
30.mdir remote-files local-file與dir類似,但可指定多個遠程文件,如mdir*.o.*. zipoutfile。
31.mget remote-files傳輸多個遠程文件。
32.mkdir dir-name 在遠程主機中建一目錄。
33.mls remote-file local-file同nlist,但可指定多個文件名。
34.mode[mode-name]將文件傳輸方式設置為mode-name,預設為stream方式。
35.modtime file-name顯示遠程主機文件的最後修改時間。
36.mput local-file將多個文件傳輸至遠程主機。
37.newerfile-name如果遠程機中file-name的修改時間比本地硬碟同名文件的時間更近,則重傳該文件。
38.nlist[remote-dir][local-file]顯示遠程主機目錄的文件清單,並存入本地硬碟的local-file。
39.nmap[inpatternoutpattern]設置文件名映射機制,使得文件傳輸時,文件中的某些字元相互轉換,如nmap¥1.¥2. ¥3[¥1,¥2].[¥2,¥3],則傳輸文件a1 .a2.a3時,文件名變為a1、a2,該命令特別適用於遠程主機為非U-NIX機的情況。
40.ntrans[inchars[outchars]設置文件名字元的翻譯機制,如ntrans1R,則文件名LLL將變為RRR。
41.open host[port]建立指定ftp伺服器連接,可指定連接埠。
42.passive進入被動傳輸方式。
43.prompt設置多個文件傳輸時的交互提示。
44.proxyftp-cmd在次要控制連接中,執行一條ftp命令,該命令允許連接兩個ftp伺服器,以在兩個伺服器間傳輸文件。第一條ftp命令必須為open,以首先建立兩個伺服器間的連接。
45.put local-file[remote-file]將本地文件local-file傳送至遠程主機。
46.pwd顯示遠程主機的當前工作目錄。
47.quit同bye,退出ftp會話。
48.quote arg1,arg2……將參數逐字發至遠程ftp伺服器,如quote syst。
49.recv remote-file[local-file]同get。
50.regetremote-file[local-file]類似於get,但若local-file存在,則從上次傳輸中斷處續傳。
51.rhelp[cmd-name]請求獲得遠程主機的幫助。
52.rstatus[file-name]若未指定文件名,則顯示遠程主機的狀態,否則顯示文件狀態。
53.rename[from][to]更改遠程主機文件名。
54.reset清除回答隊列。
55.restart marker從指定的標志marker處,重新開始get或put,如restart 130。
56.rmdir dir-name刪除遠程主機目錄。
57.runique設置文件名唯一性存儲,若文件存在,則在原文件後加後綴。
58.send local-file[remote-file]同put。
59.sendport設置PORT命令的使用。
60.site arg1,arg2……將參數作為SITE命令逐字發送至遠程ftp主機。
61.size file-name顯示遠程主機文件大小,如site idle 7200。
62.status顯示當前ftp狀態。
63.struct[struct-name]將文件傳輸結構設置為struct-name,預設時使用stream結構。
64.sunique將遠程主機文件名存儲設置為唯一(與runique對應)。
65.system顯示遠程主機的操作系統類型。
66.tenex將文件傳輸類型設置為TENEX機所需的類型。
67.tick設置傳輸時的位元組計數器。
68.trace設置包跟蹤。
69.type[type-name]設置文件傳輸類型為type-name,預設為ascii,如typebinary,設置 二進制傳輸方式。
70.umask[newmask]將遠程伺服器的預設umask設置為newmask,如umask 3。
71.useruser-name[password][account]向遠程主機表明自己的身份,需要口令時,必須輸入口令,如user anonymous my@email。
72.verbose同命令行的-v參數,即設置詳盡報告方式,ftp伺服器的所有響應都將顯示給用戶,預設為on.
73.?[cmd]同help。
-----------------------------------------------------------------------------------------------------------
簡單上傳下載實例(/*....*/為注釋):
先假設有一FTP伺服器,FTP伺服器:qint.ithot.net,用戶名:username 密碼:user1234。在本地電腦D:盤創建一個文件夾"qint"。將要上傳的文件復制到d:\qint里。通過FTP命令將文件從本地上傳,從伺服器下載的步驟如下:
1.「開始」-「運行」-輸入「FTP」
2.open qint.ithot.net /*這一步可以與第一步合並,在「運行」里直接輸入"ftp qint.ithot.net"。如果你的FTP伺服器不是用的21默認埠,假如埠是2121,那麼此步的命令應在後面空格加2121,即「open qint.ithot.net 2121」*/
3.username /*提示你輸入用戶名*/
4.user1234 /*提示你輸入密碼,密碼不回顯,打完密碼後回車即可。如果你的密碼輸入錯誤,將不會提示你重新輸入,這時你要鍵入「user」命令,將會出現第三步,你可以重新輸入用戶名和密碼。*/
5.dir /*你成功登陸後就可以用dir查看命令查看FTP伺服器中的文件及目錄,用ls命令只可以查看文件。*/
6.mkdir qint /*在FTP伺服器上根目錄下建立qint目錄。*/
7.cd qint /*進入目錄qint,用「cd 你的目錄名」可以進入當前目錄的下一級目錄,這跟DOS一樣。*/
8.bin /*採用二進制傳輸。如果你要上傳下載,這一步很重要,不先執行這個命令,上傳下載會很慢。*/
9.lcd d:\qint /*定位本地默認文件夾,在前面我事先在D:盤創建的。*/
10.!dir /*查看本地文件夾中的文件及目錄*/
11.put i001.jpg /*將當前目錄(d:\qint)中的文件i001.jpg上傳到FTP伺服器默認目錄。可以用"mput *.*"將所有文件上傳到FTP伺服器上。*/
12.get d123.jpg /*將FTP伺服器默認目錄中的文件d123.jpg下載到當前目錄下(d:\qint)。可以用"mget *.*"將所有文件下載到d:\qint*/
13.delete *.* /*刪除目錄qint中的所有文件。*/
14.cd .. /*返回至上一級目錄,即根目錄。返回上一級目錄用「cd ..」要注意,中間有空格。返回根目錄用「cd \」。*/
15.mrdir qint /*刪除目錄qint。刪除目錄,在此目錄下不能有文件及目錄,不然將無法刪除。*/
16.bye /*退出FTP伺服器*/
上傳下載時特別要注意伺服器及本地電腦的當前目錄,文件是從哪裡到哪裡的問題。查看FTP伺服器的當前目錄命令為pwd,可以用cd命令定位伺服器的目錄。可以用lcd命令定位本地電腦的目錄。以上實例應用到了採用FTP命令行方式上傳下載的最常用命令,你還可以用命令「?」查看更多的命令。
這樣夠具體吧
⑦ shell腳本中ftp連接
對,$?僅表示上一個命令ftp成功與否。
無法判斷遠程文件是否存在,只能通過判斷本地文件大小來得知。
若遠程文件不存在,則FTP獲取到本地會產生一個0位元組大小的文件(用 wc -c 獲取文件位元組數,並與0比較即可),也可能就沒有產生文件(用test表達式 [ -e $save_name ] 來判斷)。
無法判斷具體是什麼問題,只能得知一個結果:FTP獲取文件失敗。
--------------------------------------------------------------------------------------------
根據你自己的情況來判斷。那就用 [ -e $save_name ] 判斷本地文件是否存在。
--------------------------------------------------------------------------------------------
-e 判斷文件是否存在(exist),-f 判斷這個「文件」是否為文件(file)
⑧ shell腳本的FTP程序有點看不懂,請教解釋
1. -i表示關閉互動式登陸方式,就是就不問你什麼帳號密碼了
-n表示不使用.netrc自動登陸。.netrc是ftp的初始化文件
2. open 10.1.128.112 3839,這3839表示埠
3. 沒錯,是用戶名密碼
4. 這個應該錯了在我這ftp下沒這個命令,我這是centos 5.4
ftp> put FTPPerformanceTest/2.sh
local: FTPPerformanceTest/2.sh remote: FTPPerformanceTest/2.sh
local: FTPPerformanceTest/2.sh: No such file or directory
執行shell腳本也出錯
local: FTPPerformanceTest/2.sh: No such file or directory
改成put $1 $2後正常
5. ftp2put 20Apt.txt 20最終反應到shell腳本中的命令就是put 20Apt.txt 20,即把20Apt.txt上傳到ftp伺服器並改名為20
6. sleep 1 表示休眠1秒對吧?,對的。
⑨ shell腳本中ftp問題
ftp 登錄後,我感覺是不支持shell語法的(目前還不確定),建議使用mget 下載多個文件!
⑩ 我在網上找的了一個shell腳本用於給FTP伺服器傳送文件,但是部分內容不懂 求大神賜教
FTPIT只是個標志,你看最後邊還有一個FTPIT,整體是這樣的
ftp -i -n $IP <<FTPIT
...
FTPIT
它就和<<EOF是一樣的,就是代表在前後兩個FTPIT之間的內容傳給ftp命令執行。