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