一、

脚本要求:
当根目录已用空间在80%以上,以邮件形式发送警告

[root@desktop27 mnt]# vim Warning.sh
[root@desktop27 mnt]# cat Warning.sh
#!/bin/bash
DISK_NUM=`df -h | awk '/\/$/{print $5}' | awk -F "%" '{print $1}'`
TTY=`ps $$ | awk '/bash$/{print $2}'`
while true
do[ "$DISK_NUM" -ge "80" ]&&{echo "Your / will full !!" }sleep 3
done
[root@desktop27 mnt]#


二、

脚本要求:
执行脚本时,没有目标文件报错
文件不存在报错
文件存在时,显示文件是什么类型的

[root@desktop27 mnt]# vim if.sh
[root@desktop27 mnt]# cat if.sh
#!/bin/bash
Check_file()
{if[ "$1" "$2" ]thenecho "$2" is $3exit 0fi
}
if
[ "$#" -ne "1" ]
thenecho "Please input a file follow script!!"elif
[ ! -e "$1" ]
thenecho "$1 is not exist !!"
elseCheck_file -L $1 linkCheck_file -f $1 "common file"Check_file -s $1 socketCheck_file -b $1 blockCheck_file -c $1 characterCheck_file -d $1 directory
fi
[root@desktop27 mnt]#
##执行脚本
[root@desktop27 mnt]# sh if.sh
Please input a file follow script!!
[root@desktop27 mnt]# sh if.sh /etc/passwd
/etc/passwd is common file
[root@desktop27 mnt]# sh if.sh /etc/system
/etc/system is not exist !!
[root@desktop27 mnt]# sh if.sh /dev/vdb
/dev/vdb is block
[root@desktop27 mnt]#

三、

脚本要求:
文件数量不对报错
文件不存在报错
文件行数差异报错
用户存在时显示用户存在,但是不改变此用户密码
当用户不存在时,建立用户并设定相应密码

[root@desktop27 mnt]# vim user_create.sh
[root@desktop27 mnt]# cat user_create.sh
#!/bin/bash
################ Check Rule ##############
if
[ "$#" -ne "2" ]
thenecho "ERROR1: please input userfile and passwordfile follow script!! "exit 1
elif
[ ! -e "$1" ]
thenecho "ERROR2: $1 is not exist!!"exit 1
elif
[ ! -e "$2" ]
thenecho "ERROR3: $2 is not exist!!"exit 1
elif
USERFILE_LINE=`awk 'BEGIN{N=0}{N++}END{print N}' $1`
PASSFILE_LINE=`awk 'BEGIN{N=0}{N++}END{print N}' $2`
[ "$USERFILE_LINE" -ne "$PASSFILE_LINE" ]
thenecho "ERROR4: $1's line is different form $2's"
else################ Create User ############
for Line_Num in `seq 1 $USERFILE_LINE`
doUSERNAME=`sed -n ${Line_Num}p $1`PASSWORD=`sed -n ${Line_Num}p $2`useradd $USERNAME[ "$?" -eq "0" ]&&{echo $PASSWORD | passwd --stdin $USERNAME &> /dev/null && echo $USERNAME created!!}
done
fi
[root@desktop27 mnt]# 

四、

脚本要求:
执行:sh filename.sh create userfile passfile 时,创建用户并设定相应密码
执行:sh filename.sh delete userfile passfile 时,删除用户

[root@desktop27 mnt]# vim userfile
[root@desktop27 mnt]# cat userfile
user1
user2
user3
[root@desktop27 mnt]# vim passfile
[root@desktop27 mnt]# cat passfile
user1123
user2123
user3123
[root@desktop27 mnt]# vim case.sh
[root@desktop27 mnt]# cat case.sh
#!/bin/bash
[ "$#" -ne "3" ]&&{echo "Please input create or delete and userfile and passwordfile after script!!"exit 1
}
case $1 increate)USERLINE=`awk 'BEGIN{N=0}{N++}END{print N}' $2`for LINE_NUM in `seq 1 $USERLINE`doUSERNAME=`sed -n "${LINE_NUM}p" $2`PASSWORD=`sed -n "${LINE_NUM}p" $3`useradd $USERNAMEecho $PASSWORD | passwd --stdin $USERNAMEdone;;delete)USERLINE=`awk 'BEGIN{N=0}{N++}END{print N}' $2`for LINE_NUM in `seq 1 $USERLINE`doUSERNAME=`sed -n "${LINE_NUM}p" $2`PASSWORD=`sed -n "${LINE_NUM}p" $3`userdel -r $USERNAMEdone;;
esac
[root@desktop27 mnt]# 

五、

脚本要求:
执行:/mnt/auto_connect.exp IP password 时
密码正确,则通过 ssh 连接到该 IP 主机

[root@desktop27 mnt]# vim auto_connect.exp
[root@desktop27 mnt]# cat auto_connect.exp
#!/usr/bin/expect
set timeout 5
set IP   [ lindex $argv 0 ]
set PASS [ lindex $argv 1 ]
spawn ssh root@$IP
expect {"yes/no" { send "yes\r";exp_continue }"password" { send "$PASS\r"}
}
interact
[root@desktop27 mnt]# chmod +x /mnt/auto_connect.exp
[root@desktop27 mnt]# /mnt/auto_connect.exp 172.25.254.50 westos
spawn ssh root@172.25.254.50
root@172.25.254.50's password:
Last login: Mon Jun 25 17:32:11 2018 from www.westos.com
[root@foundation50 ~]# logout
Connection to 172.25.254.50 closed.
[root@desktop27 mnt]# 

六、

脚本要求:
执行脚本,ping IP ,能 ping通,显示该IP的 hostname以及IP
不能 ping 通,报错并显示 IP

[root@desktop27 mnt]# vim host.sh
[root@desktop27 mnt]# cat host.sh
#!/bin/bash
Auto_Connect()
{
/usr/bin/expect << EOF
set timeout 5
spawn ssh root@172.25.254.$IP_NUM hostname
expect {"yes/no" { send "yes\r";exp_continue }"password:" { send "westos\r" }
}
expect eof
EOF
}
for IP_NUM in {50..51}
doping -c1 -w1 172.25.254.$IP_NUM &> /dev/null &&{Host_Name=`Auto_Connect | grep -E "authenticity|fingerprint|connecting|password|spawn|Warning" -v`}echo $Host_Name 172.25.254.$IP_NUM
done
[root@desktop27 mnt]# sh host.sh 172.25.254.50lt.example.com172.25.254.51ied, please try again.
[root@desktop27 mnt]# vim host.sh
[root@desktop27 mnt]# cat host.sh
#!/bin/bash
Auto_Connect()
{
/usr/bin/expect << EOF
set timeout 5
spawn ssh root@172.25.254.$IP_NUM hostname
expect {"yes/no" { send "yes\r";exp_continue }"password:" { send "westos\r" }
}
expect eof
EOF
}
for IP_NUM in {50..51}
doping -c1 -w1 172.25.254.$IP_NUM &> /dev/null &&{Host_Name=`Auto_Connect | grep -E "authenticity|fingerprint|connecting|password|spawn|Warning" -v`}echo $Host_Name 172.25.254.$IP_NUM >> hostname
done
[root@desktop27 mnt]#  







linux——脚本的练习示例二相关推荐

  1. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  2. linux——脚本的练习示例三

    一. [root@desktop27 mnt]# vim useradd_create.sh [root@desktop27 mnt]# cat useradd_create.sh #!/bin/ba ...

  3. linux脚本简单定时,shell之定时周期性执行脚本的方法示例

    示例 1.编写测试脚本脚本 time .sh $ cat time.sh #! /bin/bash echo $(date +%s) >> /home/ocean/out.txt 保存完毕 ...

  4. 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录

    目录 沁恒CH32F103C8T6(一): Keil5环境配置,示例运行和烧录 沁恒CH32F103C8T6(二): Linux PlatformIO环境配置, 示例运行和烧录 沁恒CH32F103C ...

  5. 运维经验分享(六)-- 深究crontab不能正确执行Shell脚本的问题(二)

    运维经验分享作为一个专题,目前共7篇文章 <运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本> <运维经验分享(二)-- Linux Shell ...

  6. Linux脚本实战之猜数字

    Linux脚本实战之猜数字 一.脚本要求 二.脚本示例一 三.脚本示例二 一.脚本要求 1.系统环境为RHEL8.0 2.脚本生成一个100以内的随机数,提示用户猜数字. 3.根据用户的输入,提示猜对 ...

  7. linux脚本基本命令大全,Shell脚本常用命令

    Shell脚本常用命令 1           Shell中的特殊符号 1.1           $  美元符号.用来表示变量的值.如变量NAME的值为Mike,则使用$NAME就可以得到" ...

  8. Linux 脚本大师不是人人都可以达到的,但Shell编程基础还是有必要掌握的

      Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,现在逐渐被Python等脚本代替.既然是基本功,那就需要掌握,毕竟学习 Shell 脚本的过程中,还是能了解到很多Linux系统 ...

  9. Linux 脚本编写基础

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...

最新文章

  1. python使用pickle保存和加载机器学模型
  2. “三巨头”联合发布万字长文,深度学习将通往何方?
  3. 文件夹目录结构导出工具及下载
  4. 序列化的作用_Java 序列化的高级认识
  5. tfw文件如何导入cad_教你三维家3d设计软件如何导入cad文件
  6. LinuX 硬盘分区细节详谈 【 整理至 LinuxSir BY FreeXploiT 】
  7. 【JAVA基础篇】多线程
  8. 实验5.4 编程实现两字符串的连接(使用string类定义字符串对象)
  9. Table控件布局DataList模板
  10. 卡巴斯基2013简体中文正式版
  11. 计算机的指令格式通常是由两部分组成,计算机指令由两部分组成,它们是什么...
  12. IE浏览器打不开网页
  13. 数据分析软件解读王者荣耀一年的“王者”成绩单
  14. vs2015安装使用体验
  15. 美国电气与计算机工程专业排名,美国大学电气工程专业排名情况
  16. 【教学类-29-02】20230402《门牌号-黏贴版打印数量调查教学实践(6层*5间)》-(中班《我爱我家》偏数学)
  17. HDU 5761 Rower Bo(积分)
  18. 七天免登录(Cookie+session)+ 页面显示动画人物效果(萌娘+气泡效果)+购物车的实现代码
  19. AltiumDesigner PCB设计规则
  20. QML_组合框ComboBox

热门文章

  1. 【实用】ABAP ALV单元格修改信息提示
  2. 给工厂分配销售组织/分销渠道
  3. ABAP DOI详解(2)
  4. SD-关于定价日期的设置
  5. 忘记SAP系统Client 000的所有账号密码
  6. SAP凭证冲销BAPI用法
  7. ABAP利用OLE2_OBJECT实现将数据输出到Excel单元格
  8. 平安智慧城市:与时代同行,坚定数字化之路
  9. 数学不好的人可以学python吗_哪些人适合学金融工程专业 数学不好能学吗
  10. [javaweb] servlet处理请求参数中文乱码的问题