1. 编写系统监控脚本sysmon.sh
使该脚本实现: 监控系统中内存、cpu、磁盘的占用率
1.1 命令解释
cat /proc/meminfo

/proc/meminfo是了解Linux系统内存使用状况的主要接口
我们最常用的free、vmstat等命令就是通过它获取数据的 ,/proc/meminfo所包含的信息比free等命令要丰富得多
Linux bc 命令
bc 命令是任意精度计算器语言,通常在linux下当计算器用。
它类似基本的计算器, 使用这个计算器可以做基本的数学运算。
提示系统没有bc命令,需要yum install bc 安装
监控内存使用率
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | #memory_used_rateLoadMemory=$(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`
 echo $Memory_Used_Rate%
 
 | 
监控磁盘占用率
使用 df命令查看磁盘 -h格式化为方便查看的格式
| 12
 3
 4
 5
 
 | [root@localhost bin]# df -h /dev/sda*文件系统        容量  已用  可用 已用% 挂载点
 devtmpfs        475M     0  475M    0% /dev
 /dev/sda1      1014M  160M  855M   16% /boot
 devtmpfs        475M     0  475M    0% /dev
 
 | 
| 12
 3
 4
 
 | #disk_used_rateLocation=/dev/sda1 # 这里根据自己的磁盘位置修改
 Disk_Used_Rate=$(df -h | grep $Location | awk '{print $5}')
 echo $Disk_Used_Rate
 
 | 
监控cpu使用率
| 12
 3
 4
 5
 6
 7
 
 | #cpu_used_rateLog=$(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  $Cpu_Used_Rate
 
 | 
1.2 脚本代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | # Colorsred='\033[31m' # 定义红色
 green='\033[32m' # 定义绿色
 
 #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`
 cpu_Used_Rate=`expr  $Cpu_Used_Rate/1 | bc`
 
 echo -e "+----------------------------------------------------------------"
 
 echo -e "${green} 内存使用率:${red}"$Memory_Used_Rate%
 echo -e "${green} 磁盘使用率:${red}"$Disk_Used_Rate
 echo -e "${green} Cpu使用率:${red}"$cpu_Used_Rate%
 
 echo -e "+----------------------------------------------------------------"
 echo -e " "
 
 | 

crontab -e进入定时系统,设置计划任务
输入:*/1 * * * * /root/bin/sysmon.sh

收到邮件:


2. 编写FTP探测脚本
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | # 输入想要查询的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}'`
 
 for ((i=3; i>0; i--))
 do
 echo -e "倒数"$i"秒,开始扫描"
 done
 # 开始连接
 wget  ftp://$IP1.$IP2.$IP3.$IP4 &>null
 
 # 如果连接成功
 if [ $? -eq 0 ]
 then echo "$IP1.$IP2.$IP3.$i is open"
 fi
 
 | 
