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