6.Shell脚本基础

Part 1

1、编写脚本 systeminfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小
[root@kezai ~]#cat system_info.sh 
#!/bin/bashj
RANDOM_COLOR="\E[1;"$[RANDOM%7+31]"m"
GREEN="echo -e \E[1;32m"
COLOR_END="\E[0m"
ETHNAME=`ifconfig |head -1| tr -s ":" " "|cut -d" " -f 1`

$GREEN----------------------Host systeminfo--------------------$COLOR_END
echo -e  "HOSTNAME:     $RANDOM_COLOR`hostname`$COLOR_END"
echo -e  "IPADDR:       $RANDOM_COLOR` ifconfig $ETHNAME|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' |head -n1`$COLOR_END"
echo -e  "OSVERSION:    $RANDOM_COLOR`cat /etc/redhat-release`$COLOR_END"
echo -e  "KERNEL:       $RANDOM_COLOR`uname -r`$COLOR_END"
echo -e  "CPU:          $RANDOM_COLOR`lscpu|grep 'Model name'|tr -s ' '|cut -d : -f2`$COLOR_END"
echo -e  "MEMORY:       $RANDOM_COLOR`free -h|grep Mem|tr -s ' ' : |cut -d : -f2`$COLOR_END"
echo -e  "DISK:         $RANDOM_COLOR`lsblk |grep '^sd' |tr -s ' ' |cut -d " " -f4`$COLOR_END"
$GREEN---------------------------------------------------------$COLOR_END

2、编写脚本 backup.sh,可实现每日将 /etc/ 目录备份到 /backup/etcYYYY-mm-dd中
[root@kezai ~]#cat backup.sh
#!/bin/bash
# **********************************************************
# * Date       : 2022-05-11 17:16
# * Filename   : backup.sh
# **********************************************************
COLOR="\033[1;35m"
END="\033[0m"
SRC=/etc
DEST=/data/etc`date +%F_%T`

echo -e "${COLOR}String backup...${END}"
sleep 2
cp -av ${SRC}   ${DEST}
echo -e "${COLOR}Backup is finished${END}"

3、编写脚本 disk.sh,显示当前硬盘分区中空间利用率最大的值
[root@kezai ~]#cat disk.sh 
#!/bin/bash
# **********************************************************
# * Date       : 2022-05-11 19:04
# * Filename   : disk.sh
# **********************************************************
df | grep "/dev/sda*" | grep -o '[0-9]\{1,3\}%'|sort -nr| head -1

4、编写脚本 links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排

[root@kezai ~]#cat links.sh 
#!/bin/bash
# **********************************************************
# * Date       : 2022-05-11 18:57
# * Filename   : links.sh
# **********************************************************
last | grep '^root' | tr -s ' ' | cut -d ' ' -f 3|sort |uniq -c 

Part 2

1、编写脚本argsnum.sh,接受一个文件路径作为参数:如果参数个数小于1,则提示用户“至少应该给一个参数”,并立即退出;如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数
[root@kezai ~]#cat argsunum.sh 
#!/bin/bash
# **********************************************************
# * Date       : 2022-05-13 15:56
# * Filename   : argsunum.sh
# **********************************************************
FILE=$1
[ -z $FILE ] && echo "至少应该给一个参数" || grep '^$' $FILE | wc -l 
[root@kezai ~]#bash argsunum.sh 
至少应该给一个参数
[root@kezai ~]#bash argsunum.sh /etc/init.d/functions 
91
2、编写脚本hostping.sh,接受一个主机的IPv4地址做为参数,测试是否连通。如果能ping通,则提示用户“该ip地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问”
[root@kezai ~]#cat hostping.sh 
#!/bin/bash
# **********************************************************
# * Date       : 2022-05-13 16:03
# * Filename   : hostping.sh
# **********************************************************
IP=10.0.0.2
ping -c1 -w1 $IP &> /dev/null && echo "该ip地址可以访问" || { echo "该ip地址不可访问";exit;}
echo "Script is finished"
3、编写脚本checkdisk.sh,检查磁盘分区空间和inode使用率,如果超过80%,就发广播警告空间将满
[root@kezai ~]#cat disk_check.sh 
#!/bin/bash
# **********************************************************
# * Date       : 2022-05-12 14:09
# * Filename   : disk_check.sh
# **********************************************************
WARING=80

SPACE_USED=`df | grep '^/dev/sd'|grep -Eo '[0-9]+%' |tr -d % |sort -nr|head -1`
INODE_USED=`df -i| grep '^/dev/sd'|grep -Eo '[0-9]+%' |tr -d % |sort -nr|head -1`
[ "$SPACE_USED" -gt $WARING -o "$INODE_USED" -gt $WARING ] && echo "DISK_USED:$SPACE_USED%,INODE_USED:$INODE_USED,will be full"| mail -s "disk waring" 295327677@qq.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值