工作中常用的shell命令
时间:2015-05-11 03:34 来源:linux.it.net.cn 作者:IT
列出所有 ESTABLISHED 状态的连接:
1
netstat -nta | fgrep "ESTABLISHED" | cut -b 49-75 | cut -d ':' -f1 | sort | uniq -c | sort -n -r --key=1,7 | head -25
列出所有连接状态的统计:
1
netstat -nta | fgrep ":" | cut -b 77-90 | sort | uniq -c
或
1
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
简单将攻击IP列入iptables 限制范围:
1
netstat -an | grep -v LISTEN | awk '{print $5}' |grep -v 127.0.0.1|grep -v 本机ip|sed "s/::ffff://g"|awk 'BEGIN { FS=":" } { Num[$1]++ } END { for(i in Num) if(Num[i]>8) { print i} }' |grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'| xargs -i[] iptables -I INPUT -s [] -j DROP
Num[i]>8部分是设置阀值,这条shell句子会自动将netstat -an中查到的来自同一ip的超过阀值的连接的列入iptables禁止
将命令中的“本机ip”改成你的服务器的ip地址
一个ip限制30个pop连接:
1
iptables -I INPUT -p tcp --syn --dport 110 -m connlimit --connlimit-above 30 -j REJECT
将192.168.4.139上的/data0目录同步到本机:
1
rsync -avLP -e 'ssh' --delete 192.168.4.139:/data0 / 1>>/opt/out.txt 2>>/opt/err.txt
修改目标地址,用于在防火墙后端的web服务器(DNAT):
1
iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80
开启路由(SNAT):
1
2
echo "1" > /proc/sys/net/ipv4/ip_forward #开启转发
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE #eth1是公网网卡,使用伪装MASQUERADE
或
1
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 199.15.116.12 #不使用伪装,修改源地址为公网地址199.15.116.12
将公钥传到其他服务器:
1
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remoteServer
获取本机所有ip及其对应的mac地址:
1
ifconfig|grep HWaddr -A 1|awk -v RS="--" '{sub(/addr:/,"",$7); print $7,$5}'
-
-v:赋值一个用户定义变量
-
RS:记录分隔符(默认是一个换行符)
-
FS:字段分隔符(默认是任何空格)
-
NF: 当前记录中的字段数
-
NR:当前记录数
-
sub(/addr:/,”",$7):将第7段中的addr:替换成空
查找当前目录下的所有文件,并将文件中的cszhi.com替换成test.cn:
1
find . -type f -exec sed -i 's/cszhi\.com/test\.cn/g' {} \;
不转义点号也可:
1
find . -type f -exec sed -i 's/cszhi.com/test.cn/g' {} \;
ssh交互式登陆脚本
1
2
3
4
5
6
7
8
9
#!/usr/bin/expect
set timeout 30
spawn ssh 192.168.0.2
expect {
"yes/no" { send "yes\r";exp_continue }
"password:" { send "redhat\r" }
}
expect "]#"
send "df -h > /tmp/diskfile\r"
set timeout 30命令把超时时值设定为30秒
spawn命令激活一个Unix程序来进行交互式的运行
send命令向进程发送字符串
同步时间:
1
ntpdate -s -b 210.72.145.44 clock.cuhk.edu.hk
不断更新中。。。。。。
(责任编辑:IT)
列出所有 ESTABLISHED 状态的连接:
列出所有连接状态的统计:
或
简单将攻击IP列入iptables 限制范围:
Num[i]>8部分是设置阀值,这条shell句子会自动将netstat -an中查到的来自同一ip的超过阀值的连接的列入iptables禁止 一个ip限制30个pop连接:
将192.168.4.139上的/data0目录同步到本机:
修改目标地址,用于在防火墙后端的web服务器(DNAT):
开启路由(SNAT):
或
将公钥传到其他服务器:
获取本机所有ip及其对应的mac地址:
查找当前目录下的所有文件,并将文件中的cszhi.com替换成test.cn:
不转义点号也可:
ssh交互式登陆脚本
set timeout 30命令把超时时值设定为30秒 同步时间:
不断更新中。。。。。。 (责任编辑:IT) |