Chinaunix首页 | 论坛 | 博客
  • 博客访问: 511346
  • 博文数量: 110
  • 博客积分: 3971
  • 博客等级: 中校
  • 技术积分: 1175
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-20 23:27
文章分类

全部博文(110)

文章存档

2015年(2)

2014年(1)

2013年(1)

2011年(9)

2010年(28)

2009年(12)

2008年(13)

2007年(23)

2006年(21)

我的朋友

分类: LINUX

2010-07-22 09:49:18

一、
#!/bin/sh
LANIP=192.168.1.254
LANnetmask=255.255.255.0
LANNET=192.168.1.0/24
GATEWAY=220.163.8.1
WANnetmask=255.255.255.252
WANIP0=220.163.8.2
WANIP1=220.163.8.3
WANIP2=220.163.8.4
WANIP3=220.163.8.5
WANIP4=220.163.8.6
WANIP5=220.163.8.7
WANIP6=220.163.8.8

ifconfig eth0 $LANIP netmask $LANnetmask up
ifconfig eth1 $WANIP0 netmask $WANnetmask up
route add default gw $GATEWAY dev eth1
echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s $LANNET -j SNAT --to-source $WANIP0
iptables -t nat -A POSTROUTING -s $LANNET -j SNAT --to-source $WANIP1
iptables -t nat -A POSTROUTING -s $LANNET -j SNAT --to-source $WANIP2
iptables -t nat -A POSTROUTING -s $LANNET -j SNAT --to-source $WANIP3
iptables -t nat -A POSTROUTING -s $LANNET -j SNAT --to-source $WANIP4
iptables -t nat -A POSTROUTING -s $LANNET -j SNAT --to-source $WANIP5
iptables -t nat -A POSTROUTING -s $LANNET -j SNAT --to-source $WANIP6
iptables -t nat -A POSTROUTING -s $LANNET -j SNAT --to-source $WANIP7

while true ; do
sleep 50
#WANIPN=ifconfig eth0 |grep "inet addr:"  | awk -F: '{ print $2}' | awk '{print $1}'
UNREPLIED=`cat /proc/net/ip_conntrack |grep UNREPLIED |wc -l`
if [ $UNREPLIED -ge 100 ]; then
i=echo $(($RANDOM%7))
WANIP=WANIP$i
ifconfig eth1 $WANIP netmask $WANnetmask
fi
done
exit 0


二、目录/文件常用判断
#  #!/bin/sh 
#  
# myPath="/var/log/httpd/" 
# myFile="/var /log/httpd/access.log" 

# # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 
# if [ ! -x "$myPath"]; then 
# mkdir "$myPath" 
# fi 

# # 这里的-d 参数判断$myPath是否存在 
# if [ ! -d "$myPath"]; then 
# mkdir "$myPath" 
# fi 

# # 这里的-f参数判断$myFile是否存在 
# if [ ! -f "$myFile" ]; then 
# touch "$myFile" 
# fi 

# # 其他参数还有-n,-n是判断一个变量是否有值 
# if [ ! -n "$myVar" ]; then 
# echo "$myVar is empty" 
# exit 0 
# fi 

# # 两个变量判断是否相等 
# if [ "$var1" = "$var2" ]; then 
# echo '$var1 eq $var2' 
# else 
# echo '$var1 not eq $var2' 
# fi 

三、将当前目录下的所有 .pyc 文件全部删除(包括子目录)
find ./ -name "*.pyc" -delete

四、获取本机IP地址:
1。IPV4的
ifconfig eth0 |grep "inet addr:"  | awk -F: '{ print $2}' | awk '{print $1}'
ifconfig eth0 |awk '/inet addr/'| awk -F: '{ print $2}' | awk '{print $1}'
ifconfig -a|awk '/(cast)/ {print $2}'|cut -d':' -f2|head -1
2.IPV6的:
ifconfig -a|egrep 'inet6 addr:|address: '|cut -d':' -f2-|cut -d'/' -f1|head -1|tr -d ' '

五、$@等特定shell变量的含义
在shell脚本的实际编写中,有一些特殊的变量十分有用:
$# 传递到脚本的参数个数
$@ 与$#相同,但是使用时加引号,并在引号中返回每个参数

$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个

$$ 脚本运行的当前进程ID号

$! 后台运行的最后一个进程的进程ID号

$- 显示shell使用的当前选项,与set命令功能相同

$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误

****************
#!/bin/sh
IPLIST="99 95 110 137 67 74 80"

for i in $IPLIST
do
        iptables -A FORWARD -s 192.168.2.$i -j DROP
done



阅读(594) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~