1.编写脚本systeminfo.sh,显示主机名、IP地址、操作系统版本、内核版本、CPU型号、内存大小、硬盘大小
COLOR="\033[1;35m" #设置颜色
COLOREND="\033[0m" #设置颜色
echo -e "HostName is $COLOR `hostname` $COLOREND" #打印主机名
echo -e "Ipaddress is $COLOR `ifconfig ens33 | grep "netmask" | tr -s " " | cut -d" " -f3` $COLOREND" #打印IP地址
echo -e "OsVersion is $COLOR `uname -sr` $COLOREND" #打印系统版本
echo -e "kernelVersion is $COLOR `cat /etc/redhat-release`$COLOREND" #打印内核版本
echo -e "CPU is $COLOR`lscpu | cut -d: -f2 | head -13 |
tail -1 | tr -s " "`$COLOREND" #打印CPU型号
echo -e "Memory Size is $COLOR `free -h | tr -s " " : | tail -2 |head -1 | cut -d: -f2` $COLOREND" #打印内存大小
echo -e "Hard disk Size is $COLOR `lsblk | head -2 |grep "sda" |tr -s " " | cut -d" " -f4` $COLOREND" #打印硬盘大小
2.编写脚本backup.sh,可实现每日将/etc/目录备份到/backup/etcYYYY-mm-dd中
echo "BACK UP BEGIN!!!" #提示友好消息
sleep 2 #休眠2秒
mkdir /data/backup #创建文件夹
cp -av /etc/ /data/backup/etc`date +%F` #-av将文件的全部属性拷贝过去并且显示执行过程
echo "BACK UP SUCCESS!!!" #提供友好消息
3.编写脚本disk.sh,显示当前硬盘分区中空间利用率最大的值
COLOR="\033[1;35m" #设置字体颜色
COLOREND="\033[0m" #设置字体颜色
echo -e "$COLOR Hard disk usage $COLOREND" #设置提示语
echo -e "$COLOR`df -h | grep "^/dev" | tr -s " " | cut -d" " -f5 | sort -nr | head -1`$COLOREND" #打印输出硬盘分区空间利用率
4编写脚本sumid.sh,计算/etc/passwd文件中的第10个用户和第20个用户的UID之和
UidOne=`getent passwd | head -10 | tail -1 | cut -d: -f3` #获取第10个用户的UID并赋值给UidOne
UidTow=`getent passwd | head -20 | tail -1 | cut -d: -f3` #获取第20个用户UID并赋值给UidTow
let z=$UidOne+$UidTow #相加
echo $z #打印值
5.编写脚本sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和
read -p "input the first fileName:" f1 # 利用read -p 提示友好消息和输入对应文件名
read -p "input the sencond fileName:" f2 # 利用read -p 提示友好消息和输入对应文件名
sum1=`cat $f1 | grep "^$" | wc -l` # ^$表示空行的意思,并用wc -l统计输出总行数
sum2=`cat $f2 | grep "^$" | wc -l` # ^$表示空行的意思,并用wc -l统计输出总行数
let sum=$[sum1+sum2] # 用let算数命令进行相加算出总和
echo FirstFileName is $f1 # 打印文件名
echo SencondFileName is $f2 # 打印文件名
echo FileNum is $sum # 打印结果
6.编写脚本sumfile.sh,统计/etc,/var,/usr目录中共有多少个一级子目录和文件
read -p "input the first direction " d1 # read -p 执行脚本后提示要输入的信息
read -p "input the two direction " d2 # read -p 执行脚本后提示要输入的信息
read -p "input the direction " d3 # read -p 执行脚本后提示要输入的信息
num1=`ls -a /$d1 | grep -v "^\.\{1,2\}$" | wc -l` # "^\.\{1,2\}$" \.转义符 取目录的. 和..
num2=`ls -a /$d2 | grep -v "^\.\{1,2\}$" | wc -l` # "^\.\{1,2\}$" \.转义符 取目录的. 和..
num3=`ls -a /$d3 | grep -v "^\.\{1,2\}$" | wc -l` # "^\.\{1,2\}$" \.转义符 取目录的. 和..
let sum=$[num1+num2+num3] #计算总和 $[1+2] == $1+$2
echo $sum #打印结果
7.检查磁盘利用率是否大于80%,是的话提示磁盘将满,否则不提示
echo "============ 磁盘检测 ============="
User=`df -h | grep "^/dev" | tr -s " " % | cut -d"%" -f5 | sort -nr | head -1`
Size="80"
test $User -gt $Size && echo "你的磁盘大于80%的利用率了" || echo "你的磁盘容量满足"
# -gt 是否大于
# -ge 是否大于等于
# -eq 是否等于
# -ne 是否不等于
# -lt 是否小于
# -le 是否小于或等于
#test EXPRESSION -gt EXPRESSION
================== 短路与 ===============
true true = true
false true = false
false false = lalse
若第一个为true,则不执行后面
若第一个为false,则执行后面