shell脚本实例

参考:

https://blog.csdn.net/yugemengjing/article/details/82469785

1,备份日志

vim /usr/local/sh_script/logbak.sh
#!/bin/bash
tar -zcvf log-`date +%Y%m%d` /var/log


00 03 * * 5  /usr/local/sh_script/logbak.sh

2,监控内存和磁盘小于给定值时报警

#!/bin/bash
# 实时监控本机内存和硬盘剩余空间,剩余内存小于500M、根分区剩余空间小于1000M时,发送报警邮件给root管理员

disk_size  = $(df / | awk '/\//{print $4}')
mem_size=$(free | awk '/Mem/{print $4}')

while :
do
# 注意内存和磁盘提取的空间大小都是以 Kb 为单位
if  [  $disk_size -le 512000 -a $mem_size -le 1024000  ]
then
    mail  ‐s  "Warning"  root  <<EOF
    Insufficient resources,资源不足
EOF
fi
done

3,检查当前登录用户

#!/bin/bash
 
# 检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不
# 是,则提示您非管理员(使用字串对比版本) 
if [ $USER == "root" ] //或者 if [$UID -eq 0]
then
    yum ‐y install vsftpd
else
    echo "您不是管理员,没有权限安装软件"
fi

4,编写脚本测试 192.168.4.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态

#!/bin/bash
# 编写脚本测试 192.168.4.0/254 整个网段中哪些主机处于开机状态,哪些主机处于关机

# 状态(for 版本)
for i in {1..254}
do
# 每隔0.3秒ping一次,一共ping2次,并以1毫秒为单位设置ping的超时时间
ping ‐c 2 ‐i 0.3 ‐W 1 192.168.4.$i &>/dev/null
if [ $? -eq 0 ];then
echo "192.168.4.$i is up"
else
echo "192.168.4.$i is down"
fi

# 状态(while 版本) 
i=1
while [ $i -le 254 ]
do
       ping ‐c 2 ‐i 0.3 ‐W 1 192.168.4.$i  &>/dev/null
       if  [ $? -eq 0 ];then
           echo "192.168.4.$i is up"
    else
           echo  "192.168.4.$i is down"
       fi
       let i++
done

5,拷贝脚本显示进度条

#!/bin/bash
 
# 编写脚本,显示进度条
jindu(){
while :
do
       echo -n '#'
       sleep 0.2
done
}
jindu &
cp -a $1 $2
killall $0
echo "拷贝完成"

6,使用死循环实时显示 eth0 网卡发送的数据包流量

#!/bin/bash

while :
do
    echo '本地网卡 eth0 流量信息如下'
    ifconfig eth0|grep "RX pack" |awk '{print $5}'
    ifconfig eth0|grep "RX pack" |awk '{print $5}'
    sleep 1
done

 

posted @ 2021-03-28 01:10  小匡程序员  阅读(60)  评论(0编辑  收藏  举报