@TOC
一、编写登录欢迎脚本welcome.sh
要求:在用户目录/root下编写存储welcome.sh脚本,赋予执行权限,并在~/.bash_profile中调用该脚本,使得在用户登录时显示欢迎信息
uname -a # 查看内核/操作系统/CPU信息
head -n 1 /etc/issue # 查看操作系统版本
env # 查看环境变量资源
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
uptime # 查看系统运行时间、用户数、负载
ifconfig # 查看所有网络接口的属性
w # 查看活动用户
last # 查看用户登录日志
命令:
# cd /root
# vi welcome.sh
welcome.sh
#!/bin/bash
echo welcome
uname -a
保存后,重启虚拟机即可见到结果。
二、编写status、 start、stop脚本管理系统服务
要求:在/root/bin目录下编写status、 start、stop脚本,可以根据脚本后面的服务名称分别显示服务状态、开启服务、停止服务
fuwu.sh
if [ -f "/etc/init.d/$1" ];then #服务是否存在
echo "存在此服务"
systemctl $2 $1 #服务开启或关闭操作
systemctl status $1 #展示对应信息
else
echo "不存在这个服务" #服务不存在
fi
运行命令
# chmod u+x fuwu.sh
# ./fuwu.sh network
三、编写系统监控脚本sysmon.sh
要求:在/root/bin目录下编写脚本,监控系统中内存、cpu、磁盘的占用率;赋予脚本文件执行权限,执行脚本检查效果(截图);设置计划任务每分钟执行一次脚本。
sysmon.sh
# Colors
red='\033[31m' # 定义红色
green='\033[32m' # 定义绿色
white='\033[37m' #定义白色
#memory_used_rate
LoadMemory=$(cat /proc/meminfo | awk '{print $2}')
Total=$(echo $LoadMemory | awk '{print $1}')
Free1=$(echo $LoadMemory | awk '{print $2}')
Free2=$(echo $LoadMemory | awk '{print $3}')
Free3=$(echo $LoadMemory | awk '{print $4}')
Used=`expr $Total - $Free1 - $Free2 - $Free3`
Used_Rate=`expr $Used/$Total*100 | bc -l`
Memory_Used_Rate=`expr $Used_Rate/1 | bc`
#disk_used_rate
Location=/dev/sda1
Disk_Used_Rate=$(df -h | grep $Location | awk '{print $5}')
#cpu_used_rate
Log=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}')
Free=$(echo $Log | awk '{print $4}')
Total=$(echo $Log | awk '{print $1+$2+$3+$4+$5+$6+$7}')
Cpu_Used=`expr $Total - $Free`
Cpu_Used_Rate=`expr $Cpu_Used/$Total*100 |bc -l`
echo -e "${white}+--------------------------------------------------------"
echo -e "${green} 内存使用率:${red}"$Memory_Used_Rate%
echo -e "${green} 磁盘使用率:${red}"$Disk_Used_Rate
echo -e "${green} Cpu使用率:${red}"$Cpu_Used_Rate%
echo -e "${white}+--------------------------------------------------------"
if [ $Memory_Used_Rate -gt 10 ]
then echo "内存使用率:$Memory_Used_Rate%" |mail -s "内存告警" root
fi
执行结果
四、编写FTP探测脚本scanhost.sh
要求:在/root目录下编写脚本,扫描给定IP网段中的ftp服务器;赋予脚本执行权限,扫描某个网段。
scanhost.sh
# 输入想要查询的ip段
IP1=`echo $1 |awk -F"." '{print $1}'`
IP2=`echo $1 |awk -F"." '{print $2}'`
IP3=`echo $1 |awk -F"." '{print $3}'`
IP4=`echo $1 |awk -F"." '{print $4}'`
# 开始连接
wget ftp://$IP1.$IP2.$IP3.$IP4 &>null
# 如果连接成功
if [ $? -eq 0 ]
then echo "$IP1.$IP2.$IP3.$i is open"
fi
命令:
# ./scanhost.sh 192.168.111.133
# cat null