shell脚本作业

1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,
IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。
脚本代码
#!/bin/bash
#author:wzc
        echo Hostname: `hostname`
       
        echo IP address:`ifconfig |head -n2 |tail -n1|cut -d. -f1-4
        |cut -dt -f2|cut -dn -f1`
       
        echo System version: `cat /etc/system-release`
     
        echo kernel version: `uname -r`
    
        echo CPU Type:`lscpu | grep "Model name"
        |cut -d: -f2|tr -s " "`
     
        echo Disk size :`fdisk -l|grep "sda:"|sed 's/.*:'//|sed 's/,.*'//
        |sed 's/^[[:space:]]\+'//`
        
        echo Memory size : `free -m|grep "Mem"|tr -s [[:space:]]
        |cut -d" " -f 2` MB
脚本测试结果:
Hostname: wzc.localdomain
IP address: 10.1.253.22
System version: CentOS Linux release 7.2.1511 (Core)
kernel version: 3.10.0-327.el7.x86_64
CPU Type: Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz
Disk size :128.8 GB
Memory size : 1824 MB
2、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到
/root/etcYYYY-mm-dd中
脚本代码
#!/bin/bash
#author:wzc
    cp -a /etc /root/etc`date +%F`
脚本测试结果:
[root@wzc date]# ./backup.sh 
[root@wzc date]# ls /root/etc2016-08-15/
3、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值
脚本代码:
#!/bin/bash
#author:wzc
    echo "The max using rate is:`df |grep "/dev/sd"| cut -c 44-46 
    | sort -nr | head -1`%"
脚本测试结果
[root@wzc date]# ./disk.sh 
The max using rate is: 51%
4、编写脚本/root/bin/links.sh,显示正连接本主机的每个远程主机的
IPv4地址和连接数,并按连接数从大到小排序
脚本代码
#!/bin/bash
#author:wzc
    echo the links number is:`netstat -nt |tr -s ' '  |cut -d ' ' -f5 
    |cut -d: -f1 |grep [0-9]|sort |uniq -c|sort -nr`
脚本测试结果
[root@wzc date]# ./link.sh 
the links number is: 1 10.1.250.38
5、写一个脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户
和第20用户的ID之和
脚本代码:  
#!/bin/bash
#author:wzc
        number1=`cat /etc/passwd|sed -n "10p" |cut -d: -f3`
        number2=`cat /etc/passwd|sed -n "20p" |cut -d: -f3`
        let number=$number1+$number2    
        echo $number
脚本测试结果
[root@wzc date]# ./sumid.sh 
70
6、写一个脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,
计算这两个文件中所有空白行之和
脚本代码
#!/bin/bash
#author:wzc
        file1=`grep "^$" $1 | wc -l`            
        file2=`grep "^$" $2 | wc -l`
        file3=$[ $file1+$file2 ]
        echo "space is $file3个"
脚本测试结果
[root@wzc date]# ./sumspace.sh  /etc/issue /etc/passwd
space is 1个
7、写一个脚本/root/bin/sumfile.sh,统计/etc, /var, /usr目录中共有多少
个一级子目录和文件
脚本代码
[root@wzc date]# vim sumfile.sh
#!/bin/bash
#author:wzc
        etcnum=`ls  /etc/|wc -l`
        varnum=`ls  /var/|wc -l`
        usrnum=`ls  /usr/|wc -l`
        echo the totalfile is "$[$etcnum+$varnum+$usrnum]"

脚本测试结果
[root@wzc date]# ./sumfile.sh 
the totalfile is 293
8、写一个脚本/root/bin/argsnum.sh,接受一个文件路径作为参数;
如果参数个数小于1,则提示用户“至少应该给一个参数”,并立即退出;
如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数
脚本代码
#!/bin/bash
#author:wzc
  [[ $# -lt 1 ]] && echo "argnum less than 1" || grep -c  '^[[:space:]]*$' $1
脚本测试结果
[root@wzc date]# ./argsnum.sh 
argnum less than 1
9、写一个脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,
测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;
如果不可ping通,则提示用户“该IP地址不可访问”
脚本代码
#!/bin/bash
#author:wzc
  ping -c1 -W1 $1 &> /dev/null && echo ping successfull || echo  ping failture
脚本测试结果
[root@wzc date]# ./hostping.sh 
ping failture
10、判断硬盘的每个分区空间和inode的利用率是否大于80,如果是,
发邮件通知root磁盘满
脚本代码
#!/bin/bash
#author:wzc
    dl=`df -hT|tr -s " "|cut -d" " -f6|grep -o "[[:digit:]]\+"|sort -nr 
| df -hT|tr -s " "|cut -d" " -f6|grep -o "[[:digit:]]\+"|sort -nr|sed -n '1p'`
[ $dl -ge 80 ] && echo "Disk load is high, please timely manner!"|mail -s 
"Disk load warning" root
脚本测试结果
    这里会发一封邮件给root,告知磁盘使用率过高,这是因为挂载光盘的原因

原创文章,作者:RecallWzc,如若转载,请注明出处:http://www.178linux.com/35702

(0)
RecallWzcRecallWzc
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

  • LVS:三种模式的原理、调度算法、及应用介绍

    LVS三种模式原理(nat/dr/tun) LVS/NAT:   如上图,客户通过virtual IP (虚拟服务的IP地址,公网地址),访问网络服务时,请求报文到达调度器,调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址VIP,改写成选定服务器的地址(RIP),报文的目标端口改写成选定服务器的相应端口,最后将修改…

    Linux干货 2016-10-30
  • 逻辑卷(LVM)管理实例详解

    LVM基本术语 下面是LVM需要了解的基本术语:    物理卷(PV physical volume): 它可以是物理硬盘上的分区,也可以是整块物理硬盘;  卷组(VG volume group): 建立在物理卷之上,一个卷组至少包括一个物理卷,可以动态增删物理卷;  逻辑卷(LV logical volume):建立…

    Linux干货 2016-09-01
  • 马哥教育网络班20期+第二周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理有 cp, mv, rm  复制命令:cp [root@ddwhost ~]# cp /etc/magic /tmp/         cp&n…

    Linux干货 2016-06-23
  • 硬链接与软链接

    硬连接:          其本质就是:一个文件,多个名字。注意:目录是没有硬链接的。 用ln filename linkname创建硬链接,注意源文件和链接文件位置顺序,硬链接不可以跨分区建。 在创建硬链接时会增加硬连接数,可以通过ls –l查看,如下图所示的,可看到硬链接数。…

    2017-07-20
  • Linux中/etc目录下常用的配置文件及其含义总结

         在linux中有一个很重要的思想就是一切皆文件,也就是说所有的系统参数的配置都是保存在各种各样的配置文件当中的,这点Linux和Windows有很大的差别。      因为Linux中有众多配置文件,学习起来难免会不容易记忆,所以在此把一些常用的配置文件记录下来,做一个归纳总结。根据FHS…

    Linux干货 2017-03-26
  • vim功能及使用

    vim 简介:   vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。 文本编辑种类: 行编辑器: sed全屏编辑器:nano, vivim – Vi Improved 一、基本操作语法 vim [OPTION…

    Linux干货 2016-08-11