歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

shell && tupdump學習筆記

shell && tupdump學習筆記   一、理解如何寫入記錄 if [ -z "$IN_INITLOG" -a -x /sbin/initlog ]; then    // 條件是 :如果 IN_INITLOG 變量的值不為空,且 /sbin/initlog 可執行 exec /sbin/initlog -r /etc/rc.d/rc.sysinit  //為了將rc.sysinit的運行信息記到syslog裡(/var/log/messages),使用了進程替代   二、windows下使用awk的訪求 在windows下使用awk命令,先加入過濾條件 awk "/TCP/{print $0}"   三、windump的使用方法 windump -d 可以列出當前的設備列表。 我在windows7 下有時候會出現只能列出一個的問題,這時候需要把不可見的設備Disable後再次Enable 然後再次 windump -d 就可以看到了。 windump -i   x      x是第幾個設備,注意是 1Base , 不是0Base windump host 10.9.16.88 and(10.9.16.254)  可以監聽 10.9.16.88 和 10.9.16.254 之間的對話 Windump具有通過詳細標准過濾已記錄數據的能力――詳細的網絡協議,主機或端口――通常在命令列中有詳細說明。其中的語法相當復雜。在程序文件中有詳細解釋,這有一些例子:   windump -i 2 port 80   通過端口80從界面#2記錄所有流量   windump -i 2 host im-chat.com   記錄所有從the host im-chat.com.或來或到界面#2的流量   windump -i 1 net 127 1、windump –D  列出本機可供抓包的全部接口。 這個命令在本機有多個網卡時非常有用。比如,我的機器裝有3塊網卡,而我只抓第二塊網卡上的包,那麼我用windump –D列出機器上所有的網卡,再指定只抓第二塊網卡的包,方法如下: windump –D windump –i 2(網卡序號) 2、windump –n 不解析主機名,直接顯示抓包的主機IP地址。 3、windump –n host 192.168.1.2  只抓關於192.168.1.2主機的包(不管包的方向)。 4、windump –n host 192.168.1.2 and udp port 514 只抓關於主機192.168.1.2上udp協議端口為514的包。 同理,我也可以抓所有tcp協議23端口的包,命令如下: windump –n host 192.168.1.2 and tcp port 23 或者,我只抓udp 514端口的包,不管ip是多少,命令如下: windump –n udp port 514 5、windump –n net 133.160 抓133.160網段的包,不管包的方向。 同理,我也可以抓所有133.160網段的且tcp端口為3389的包,命令如下: windump –n net 133.160 and tcp port 3389 6、windump –n host ! 133.191.1.1 抓所有非133.191.1.1有關的包。 同理,我要抓除了133.191.1.1之外的所有機器的tcp端口為3389的包,命令如下: windump –n host ! 133.191.1.1 and tcp port 3389 7、windump –n dst host 133.191.1.1 抓所有發送到133.191.1.1的包。 同理,可以用and 或or參數,如: windump –n dst host 133.191.1.1 ort src host 101.1.1.1  四、LINUX 下配置行命令配置路由 方法一: vi /etc/sysconfig/network-scripts/route-eth0  #默認不存在此文件 加入如下內容: 192.168.1.0/24 via 192.168.1.1 提示:寫到配置裡,重啟網絡服務和重啟系統都會生效! 方法二: vi /etc/sysconfig/static-routes  #默認不存在此文件 加入如下內容: any net 192.168.1.0/24 gw 192.168.1.1 提示:寫到配置裡,重啟網絡服務和重啟系統都會生效! 方法三: vi /etc/rc.local 加入如下內容: route add -net 192.168.1.0/24 gw 192.168.1.1 PS: 方法一推薦生產環境使用 提示:方法三寫到/etc/rc.local裡只在開機時加載,當手工重啟網絡後會失效,但是重啟系統後會生效! 如果是配置默認路由網關可以再網卡配置裡: [root@oldboy ~]# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0 GATEWAY=10.0.0.254 c.主機路由:就是去往某個主機地址如何配置路由 /sbin/route add -host 192.168.2.13 dev eth2 /sbin/route add -host 202.81.11.91 dev lo 例如:keepalived或heartbeat高可用服務器對之間的使用單獨網卡接心跳線通信就會用到以上主機路由。 route命令拓展: 刪除一條默認路由: route del default gw 10.0.0.254 刪除一條靜態路由: route del –net 目標網絡 netmask 如:route del -net 192.168.1.0/24 或route del -net 192.168.1.0 netmask 255.225.255.0 刪除一條主機路由: route del -host 192.168.1.10 dev eth0   五、tcpdump 命令舉例 tcpdump -nn -tttt 'tcp[13] & 7 != 0' -r output.dmp     which does not resolve host/port names (-nn), arranges the date/time in a pretty format (-tttt), only captures TCP SYN/FIN/RST flags ('tcp[13] & 7 != 0'),   六、shell 命令舉例   redhat 提取磁盤使用情況 df -k | sed '/%/!{N;s/\n/ /}' | awk '{print $5}' df -k |awk 'NF==7||NF==6{print $5}NF==5{print $4}'   HTTP sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E "Host\: .*|GET \/.*" 提取日期 可做文件名 date +%Y%m%d     #!/bin/bash today=`date +%Y%m%d` tcpdump -i eth0 -s -w ${today}.cap exit # date +%m%d%k%M%N 09061658960514249 # date +%m%d%k%M%N 09061658996844940 # date +%m%d%k%M%S 0906165844 # date +%m%d%k%M%S 去字符串頭尾的空格   grep -o "[^ ]\+\(\+[ ^]\+\)*"   例子:cat filenmae.txt|awk -v RS="*" '{print}'|grep -o "[^ ]\+\(\+[ ^]\+\)*"|grep "string"|sort|uniq -c|sort -rn|result.txt  
Copyright © Linux教程網 All Rights Reserved