Shell ftp 上傳下載腳本 單獨抓取文件中ip地址

 
一、單獨抓取文件中ip地址,文件內容是
Mar 31 07:53:20 drserver2 spamdyke[27749]: ALLOWED from: [email][email protected][/email] to: [email][email protected][/email] origin_ip: 71.229.51.19 origin_rdns: c-71-229-51-19.hsd1.ga.comcast.net auth: (unknown)
Mar 31 07:53:54 drserver2 spamdyke[27789]: DENIED_RDNS_RESOLVE from: [email][email protected][/email] to: [email][email protected][/email] origin_ip: 115.29.253.214 origin_rdns: ip29.hichina.com auth: (unknown)
Mar 31 07:53:57 drserver2 spamdyke[27786]: DENIED_RDNS_MISSING from: npdcy3@[url]www.success-way.cn[/url] to: [email][email protected][/email] origin_ip: 211.141.222.78 origin_rdns: (unknown) auth: (unknown)
Mar 31 07:54:36 drserver2 spamdyke[27805]: DENIED_RDNS_MISSING from: [email][email protected][/email] to: [email][email protected][/email] origin_ip: 120.83.163.110 origin_rdns: (unknown) auth: (unknown)
 
方法:
[root@test-linux tmp]# awk 'BEGIN{OFS="\n"}{for (i=1;i<=NF;i++) {print $i}}' zh.txt |grep '[1-9]\.[1-9]'
71.229.51.19
115.29.253.214
211.141.222.78
120.83.163.110
[root@test-linux tmp]#
 
(2)
文件t內容是
1 a
2 b
3 c
4 d
[root@test-linux tmp]# awk '{name[x++]=$2};END{for (i=0 ; i<=NR ; i++) print name[i]}' t
a
b
c
d
 
name[x++] 第一次$2域賦值到是“0”
 
[root@test-linux tmp]# awk '{name[x++]=$2};END{for (i=1 ; i<=NR ; i++) print name[i]}' t
b
c
d
[root@test-linux tmp]#

 
理解
 
[root@test-linux tmp]# awk '{name[$2]++};END{for (i in name) print i,name[i]}' t
a 1
b 1
c 1
d 1
[root@test-linux tmp]#
 
二、ftp
[root@ht root]# cat ftpaaa.sh
#!/bin/bash
hostname=192.168.1.238
user=f5
password=f5
ftp -i -v -n $hostname <<END_FTP
user $user $password
binary
lcd /tmp
cd /tmp
mput *
bye
END_FTP
 
 
註解:
1. -i 當傳輸多文件時關閉交互式提示 -n 不受.netrc文件的影響。(ftp默認爲讀取.netrc文件中的設定) -v 顯示詳細信息
2. << 是使用即時文件重定向輸入。
3. END_FTP是即時文件的標誌它必須成對出現,以標識即時文件的開始和結尾。
 
以下copy高人的ftp參數
FTP使用的內部命令如下(中括號表示可選項):

1.![cmd[args]]:在本地機中執行交互shell,exit回到ftp環境,如:!ls*.zip

2.$ macro-ame[args]: 執行宏定義macro-name。

3.account[password]: 提供登錄遠程系統成功後訪問系統資源所需的補充口令。

4.append local-file[remote-file]:將本地文件追加到遠程系統主機,若未指定遠程系統文件名,則使用本地文件名。

5.ascii:使用ascii類型傳輸方式。
6.bell:每個命令執行完畢後計算機響鈴一次。

7.bin:使用二進制文件傳輸方式。
8.bye:退出ftp會話過程。

9.case:在使用mget時,將遠程主機文件名中的大寫轉爲小寫字母。

10.cd remote-dir:進入遠程主機目錄。

11.cdup:進入遠程主機目錄的父目錄。

12.chmod mode file-name:將遠程主機文件file-name的存取方式設置爲mode,如:chmod 777 a.out。

13.close:中斷與遠程服務器的ftp會話(與open對應)。

14.cr:使用asscii方式傳輸文件時,將回車換行轉換爲回行。

15.delete remote-file:刪除遠程主機文件。

16.debug[debug-value]:設置調試方式, 顯示發送至遠程主機的每條命令,如:deb up 3,若設爲0,表示取消debug。

17.dir[remote-dir][local-file]:顯示遠程主機目錄,並將結果存入本地文件
18.disconnection:同close。

19.form format:將文件傳輸方式設置爲format,缺省爲file方式。

20.get remote-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[modename]:將文件傳輸方式設置爲modename, 缺省爲stream方式。
35.modtime file-name:顯示遠程主機文件的最後修改時間。

36.mput local-file:將多個文件傳輸至遠程主機。

37.newer file-name: 如果遠程機中file-name的修改時間比本地硬盤同名文件的時間更近,則重傳該文件。
38.nlist[remote-dir][local-file]:顯示遠程主機目錄的文件清單,並存入本地硬盤的local-file。
39.nmap[inpattern outpattern]:設置文件名映射機制, 使得文件傳輸時,文件中的某些字符相互轉換, 如:nmap $1.$2.$3[$1,$2].[$2,$3],則傳輸文件a1.a2.a3時,文件名變爲a1,a2。 該命令特別適用於遠程主機爲非UNIX機的情況。
40.ntrans[inchars[outchars]]:設置文件名字符的翻譯機制,如ntrans1R,則文件名LLL將變爲RRR。

41.open host[port]:建立指定ftp服務器連接,可指定連接端口。

42.passive:進入被動傳輸方式。

43.prompt:設置多個文件傳輸時的交互提示。

44.proxy ftp-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.reget remote-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:設置文件名只一性存儲,若文件存在,則在原文件後加後綴.1, .2等。

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,如:type binary,設置二進制傳輸方式。

70.umask[newmask]:將遠程服務器的缺省umask設置爲newmask,如:umask 3

71.user user-name[password][account]:向遠程主機表明自己的身份,需要口令時,必須輸入口令,如:user anonymous my@email。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章