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