linux之shell语言

----------------------------------目录--------------------------------------------------

目录(if开头为if语句,for开头为for语句,if5.sh为case语句)

if1.sh:判断根分区使用率,大于60会报警

if2.sh:备份数据库、目录、文件等等

if3.sh:判断httpd是否启动,如果没有启动会自动启动流程

if4.sh:判断输入的是什么文件类型

if5.sh:选择一个你想去的城市(用caase语句)

for1.sh:依次输出数字1-6

for2.sh:批量解压脚本  

for2.1.sh:统计if目录下以.sh结尾文件的个数  

for3.sh:求1到100的总和

useradd.sh:批量添加用户

----------------------------正文--------------------------------------------

if1.sh:判断根分区使用率,大于60会报警

vim if1.sh

#!/bin/bash
#判断根分区磁盘占有率过高的问题。>=60%
rate=$( df -h | grep /dev/mapper/cl-root | awk '{print $5 }' | cut -d "%" -f 1 )

if [ $rate -ge 60 ]
    then
        echo "Waring!根分区磁盘占有率过高!!!"
fi

---------------------------

if2.sh:备份数据库、目录、文件等等

vim if2.sh
#!/bin/bash
#备份文件夹或者数据库等等。
date=$(date +%y%m%d)
size=$(du -sh /root/chen)

if [ -d /tmp/dbback ]  #判断dbback这个文件是否存在
    then
        echo "Date is: $date" > /tmp/dbback/db.txt        #输出时间,以21230这种格式
        echo "Size is: $size" >> /tmp/dbback/db.txt   #统计大小
        cd /tmp/dbback
        tar -zcf chen_$date.tar.gz  /root/chen /tmp/dbback/db.txt &>/dev/null  #在tmp/dbback下面进行打包
        rm -rf /tmp/dbback/db.txt   
    else
        mkdir /tmp/dbback   
        echo "Date is:$date" > /tmp/dbback/db.txt
        echo "Size is:$size" >>/tmp/dbback/db.txt
        cd /tmp/dbback
        tar -zcf chen_$date.tar.gz  /root/chen /tmp/dbback/db.txt $>/dev/null
        rm -rf /tmp/dbback/db.txt    
fi

--------------------------

if3.sh:判断httpd是否启动,如果没有启动会自动启动流程

vim if3.sh

#!/bin/bash
#判断apache是否启动:service httpd restart,停止service httpd stop
#如果停止不了,ps命令,然后kill杀掉进程。       
rate=$(nmap 192.168.61.128 | grep "tcp" | grep "http" | awk '{ print $2 }' )  #nmap命令与awk命令结合使用,筛选出“open”
if [ "$rate" == "open" ]  #如果$tate等于open
    then
        echo "$(date) httpd is ok !!!" >> /tmp/httpd_acc.log
    else
        /etc/rc.d/init.d/httpd restart &>/dev/null   #启动httpd
        echo "$(date) httpd reboot!!" >> /tmp/httpd_err.log
fi

---------------------------------

if4.sh:判断输入的是什么文件类型

vim if4.sh
#!/bin/bash
#判断用户输入的是什么文件
read -p "please input a filename:" file
if [ -z "$file" ]   #判断file变量是否为空
    then
        echo "Error please "
        exit 1
elif [ ! -e "$file" ]  #判断file这个值是否存在
    then 
        echo "you  input is not a file"  #如果file这个值不存在
        exit 2
elif  [ -f "$file" ]   #判断file变量是否为普通文件
        then
        echo " $file is a regulare file !"
elif  [ -d "$file" ]    #判断file变量是否为目录文件
        then
        echo "$file is a direcotry!"
else 
        echo "$file is an other file!"

fi

--------------------------

if5.sh:选择一个你想去的城市(用caase语句)


vim if5.sh
#!/bin/bash
echo "如果你想去上海,请选择1"
echo "如果你想去广州,请选择2"
echo "如果你想去成都,请选择3"
read -t 30 -p "请选择你想去的城市:" cho
case "$cho" in
    "1")
        echo "上海欢迎你!"
        ;;
    "2")
        echo "广州欢迎你!!"
        ;;
    "3")
        echo "成都欢迎你!"
        ;;
    *)
        echo "请按提示输入1/2/3 !!!!!!"
        ;;

esac

---------------------------------------

for1.sh:依次输出数字1-6

vim for1.sh

#!/bin/bash
#一次输出数字1-6
for i in 1 2 3 4 5 6
    do
        echo "$i"
    done
    
--------------

for2.sh:批量解压脚本  

vim for2.sh
#!/bin/bash
#批量解压脚本

cd /root/sh/if
ls *.sh >ls.log
for i in $(cat ls.log)
    do
        tar -zcf $i &>/dev/null
        rm  -rf /root/sh/if/ls.log 
    done
        
---------------------

for2.1.sh:统计if目录下以.sh结尾文件的个数  

vim for2.1.sh

#!/bin/bash
#统计if文件下以.sh的个数
cd /root/sh/if
ls *.sh >ls1.log
y=1
for i in $(cat ls1.log)
    do
        echo "$y"
        y=$(($y + 1))
    done

-----------------

for3.sh:求1到100的总和

vim for3.sh

#!/bin/bash
#求1加到100的总和
s=0
for ((i=1;i<=100;i++))
    do
        s=$(($s + $i))
    done
echo "1+2+3+...100总和为:$s"

----------------------------

useradd.sh:批量添加用户

vim useradd.sh
#!/bin/bash
#批量添加用户
read -t 30 -p "请输入添加的同户名:" name
read -t 30 -p "请输入添加的个数:"  number
read -t 30 -p "请输入初始密码:"   pass
if [ ! -z "$name" -a ! -z "$number" -a ! -z "$pass" ]    
    then
        y=$(echo $number | sed 's/^[0-9]*$'//g)
        if [ -z "$y" ]
            then
                for((i=1;i<=$number;i++))
                    do
                        useradd  $name$i &>/dev/null
                        echo $pass | passwd --stdin "$name$i" &>/dev/null
                    done
        fi
fi

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值