脚本示例

1.提取已建立的TCP连接

#!/bin/sh
#Version:0.0.1
#Author:stone
#Description:connection count

declare -i established=0
declare -i listen=0
declare -i other=0

#提取netstat中状态
for i in $(netstat -ant |grep "tcp\>" |awk '{print $NF}'); do
    if [ "$i" == "ESTABLISHED" ]; then
    let established++
    elif [ "$i" == "LISTEN" ]; then
    let listen++
    else
    let other++
    fi
done

echo "ESTABLISHED:$established"
echo "LISTEN:$listen"
echo "OTHER:$other"

netstat -ant |grep "tcp\>" |awk '{print $NF}' |sort |uniq -c
View Code

 

2.比较大小

示例1:
[root@localhost test]# cat num.sh 
#!/bin/bash
#Author:tomcat

for i in $@;do
    echo $i >> ./list.txt
done

sort -n ./list.txt
mv ./list.txt /tmp



示例2:
[root@localhost test]# cat t.sh
#!/bin/bash
#Author:tomcat

a=$1
b=$2
c=$3
max=$a
min=$b

for i in $@;do
    [ $max -lt $i ]  && max=$i
done

for i in $@;do
    [ $min -gt $i ]  && min=$i
done

for i in $@;do
    [ $i -gt $min ]  && [ $i -lt $max ] && mdl=$i
done
echo $min  $mdl  $max
View Code

 

3.匹配任意邮箱地址

#正则表达式包含扩展正则规则,所以用egrep命令进行匹配
[0-9a-zA-Z_]+@[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+){1,3}

[root@localhost ~]# cat email 
tom@abc.net
jerry@163.com
tomcat@163
Time

[root@localhost ~]# egrep "[0-9a-zA-Z_]+@[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+){1,3}" email
tom@abc.net
jerry@163.com
View Code

 

4.脚本自动ping指定的IP地址(把IP地址保存到指定的文件中),并统计包的丢包率

#把IP地址保存到文件/root/ip.txt中,就可随意修改需要探测的IP地址,而不用修改脚本程序
[root@localhost ~]# cat ip.txt 
192.168.10.10
192.168.10.20
192.168.10.30

#脚本内容
[root@localhost ~]# cat ping.sh 
#!/bin/bash
#Author:Tomcat

echo "------此脚本会统计/root/ip.txt中所有IP地址的丢包率------"

#脚本的作用
for i in $(cat /root/ip.txt)
#ip.txt文件中有几个IP就会循环几次
    do
        aa=$(ping -c 3 $i | grep ttl | wc -l)
    #把能够ping通的包数量赋予变量aa(如果有ttl关键字则代表ping通)
    bb=$(( 3 - $aa ))
    #通过减法算法不能ping通的包数量,并赋予变量bb
    cc=$(echo "$bb 3" | awk '{printf "%5.2f \n",$1/$2*100}')
    #计算变量bb的值和3相除之后的百分比
    echo "$i 的丢包率是:$cc%"
        #输出丢出率
    done

#进行测试
[root@localhost ~]# bash ping.sh 
------此脚本会统计/root/ip.txt中所有IP地址的丢包率------
192.168.10.10 的丢包率是: 0.00 %
192.168.10.20 的丢包率是: 0.00 %
192.168.10.30 的丢包率是:100.00 %   #30主机ping不通,所以丢包率是100%
View Code

 

5.清除/var/log下mesagess.bak 日志文件的简单命令脚本  #1.不是root执行不了  2.没有流程控制

cp -a /var/log/messages /var/log/messages.bak

[root@localhost ~]# cat DelMess.sh 
#!/bin/bash
#Author:tomcat

cd /var/log
cat /dev/null > messages.bak
echo "Logs cleaded up."
View Code

 

6.包含命令,变量和流程控制语句的清除 /var/log 下 messages.bak 日志文件

#!/bin/bash

LOG_DIR=/var/log
ROOT_UID=0  #$UID为0的时候,用户才具有root用户的权限。要使用root用
户来运行
if [ "$UID" -ne "$ROOT_UID"  ]
then
    echo "Must be root to run this script."
    exit 1
fi

cd $LOG_DIR &> /dev/null || {
    echo "Unable to switch to the necessary directory"
    exit 1
}

cat /dev/null > messages && echo "Log cleanup successful."
exit 0  #退出之前返回0表示成功,返回1表示失败
View Code

 

7.清空日志的三种方法

[root@localhost ~]# echo >test.log  #在查看文件,会有空格

[root@localhost ~]# >test.log

[root@localhost ~]# cat /dev/null > test.log

#保留文件,清空内容
View Code

 

posted @ 2018-04-30 15:50  shadow3  阅读(121)  评论(0)    收藏  举报