• 常用的Shell脚本


    1、通过位置变量创建linux系统账户及密码
    $1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 19:19:45
    5 # Name: userad.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 
    9 `useradd $1`
    10 echo "$2" |passwd --stdin "$1"

    2、每周5使用tar命令备份/var/log 下的所有日志文件,防止文件覆盖

    vim backup.sh
    tar zcfP /tmp/varlog_$(date +%F).tar.gz /var/log
    crontab -e
    * * * * 5 bin/bash /server/scripts/backup.sh

    3、实时监控本机内存和硬盘剩余空间,剩余内存小于500M,根分区剩余空间小于1000M的时候发送报警邮件

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 20:29:30
    5 # Name: jiankong.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 
    9 free=`free -m|awk 'NR==3 {print$4 }'`
    10 df=`df |awk 'NR==2{print $4}'`
    11 
    12 if [[ $free -lt 500 && $df -lt 1000000 ]];then
    13 mail -s "Warning~" 1227566276@qq.com
    14 echo 'send success!'
    15 else
    16 echo 'zhengchang!'
    17 exit 0
    18 fi

    4、脚本生成一个 100 以内的随机数值,提示用户猜数字,更具用户的输入,提示用户猜对了,猜打了或猜小了,直至用户猜对脚本结束。

    5、检测本机当前用户是否为超级管理员,如果是管理员,使用 yum 安装 vsftpd,如果不是,则提示您非管理员,使用字串对比版本

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 20:43:03
    5 # Name: root.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 
    9 root=`id -u`
    10 if [ $root -eq 0 ];then
    11 yum install -y vsftpd
    12 else
    13 echo 'no super user~'
    14 fi

    6、依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 20:45:50
    5 # Name: 3geshu.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 read -p "first:" a
    9 read -p "second:" b
    10 read -p "third:" c
    11 
    12 if [[ -z $a || -z $b || -z $c ]];then
    13 echo "please input num---"
    14 exit 1
    15 fi
    16 
    17 if [[ -n "$(echo $a| sed -n "/^[0-9]+$/p")" && -n "$(echo $b| sed -n "/^[0-9]+$/p")" && -n "$(echo $c| sed -n "/^[0-9]+$/p")" ]];then
    18 
    19 if [ $a -lt $b ];then
    20 t=$a;a=$b;b=$t;
    21 fi
    22 if [ $a -lt $c ];then
    23 t=$a;a=$c;c=$t;
    24 fi
    25 if [ $b -lt $c ];then
    26 t=$b;b=$c;c=$t;
    27 fi
    28 echo " big --- small:$a,$b,$c"
    29 
    30 else
    31 echo "dont abcd...."
    32 fi

    7、编写脚本,实现人机《石头,剪刀,布》游戏

    8、编写脚本测试192.168.4.0/24整个网段中那些主机处于开机状态,那些主机处于关机状态(for 版本)

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 21:13:05
    5 # Name: ping1.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 for i in {1..254}
    9 do
    10 ping 192.168.4.$i -c 2 -w 1 2&>1 >/dev/null
    11 if [ $? -eq 0 ];then
    12 echo "192.168.4.$i active!!!"
    13 else
    14 echo "192.168.4.$i down..."
    15 fi
    16 done

    9、编写脚本测试 192.168.4.0/24 整个网段中那些主机处于开机状态,那些主机处于关机状态(多进程版),定义一个函数来实现,ping 某一台主机,并检测主机的存货状态

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 21:18:43
    5 # Name: ping2.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 fun_ping(){
    9 
    10 ping 192.168.4.$i -c 1 -w 1 2&>1 >/dev/null
    11 if [ $? -eq 0 ]
    12 then 
    13 echo "192.168.4.$i active!"
    14 else 
    15 echo "192.168.4.$i down."
    16 fi 
    17 }
    18 for i in {1..254}
    19 do 
    20 fun_ping
    21 done

    10、编写脚本,复制文件的时候,显示进度条

    11、9*9 乘法表(编写 shell 脚本,打印 9*9 乘法表)


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

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 21:50:32
    5 # Name: eth4.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 while :
    9 do
    10 ifconfig eth4 |sed -n '5,6p'
    11 done

    13、使用user.txt 文件中的人员名单,在计算机中自动创建对应的账户并配置初始密码
    脚本执行,需要提前准备一个 user.txt 文件,该文件中包含有若干用户信息

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 21:27:13
    5 # Name: zidonguser.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 user=`cat /server/scripts/user.txt`
    9 for i in $user
    10 do
    11 useradd $i
    12 echo "123456" |passwd --stdin "$i"
    13 done

    14、编写批量修改扩展名脚本,如批量将 txt 文件修改为doc文件
    执行脚本时,需要给脚本添加位置参数
    脚本名 txt doc (可以将 txt 的扩展名修改为doc)
    脚本名 doc jpg(可以将doc 的扩展名修改为jpg)

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 18:58:14
    5 # Name: rename.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 read -p "input weizhi" $wz
    9 for i in `ls $wz`
    10 do
    11 mv $i `echo $i|sed s#txt#doc#g`
    12 
    13 done

    15、查看有多少远程的 IP 在连接本机(不管是通过 ssh 还是 web 还是 ftp 都统计)
    使用 netstat -atn 可以查看本机所有连接状态,-a 查看所有,
    -t 仅显示tcp连接信息, -n数字格式显示
    local address(第四列是本机的IP和端口信息)
    Foreign address(第五烈是远程主机的IP和端口信息)
    使用awk命令仅显示第5列数据,再显示第1列IP地址的信息
    sort 可以按数字的大小排序,最后使用 Uniq 将多余重复的删除,并统计重复次数

    #netstat -atn | awk -F"[: ]+" '{print $5}' 端口号
    netstat -atn |egrep ":80|:22|:21" | awk '{print $5}' |awk -F ":" '{print $1}' |sort -rn |uniq -c

    16、对100 以内的所有正整数相加求和(1+2+3.。。+100)
    eq 100 可以快速自动生成100个整数

    1 #!/bin/bash
    2 # Author: Peter zh
    3 # Blog: https://home.cnblogs.com/zhangwduoduoj/
    4 # Time: 2019-08-17 21:10:05
    5 # Name: qiuhe.sh
    6 # Version: v1.0
    7 # Description: This is a Script.
    8 
    9 sum=0
    10 for i in `seq 100`
    11 do
    12 let sum+=i
    13 done
    14 echo $sum
    15 
  • 相关阅读:
    windows对象的属性和方法
    JavaScript事件处理
    HTML骨架-深入理解
    js阻止元素的默认事件与冒泡事件
    CSS3之背景色渐变
    CSS3匹配屏幕横竖状态
    LINUX系统GIT使用教程
    博客园文章页显示布局调整
    JS编码解码详解
    JS设置获取cookies
  • 原文地址:https://www.cnblogs.com/zjaiccn/p/11360289.html
Copyright © 2020-2023  润新知