返回顶部

第八周作业—N42-虚怀若谷

一、显示统计占用系统内存最多的进程,并排序

[root@centos7 ~]# ps -eo uid,pid,ppid,tty,c,time,cmd,%mem --sort=-%mem
  UID    PID   PPID TT        C     TIME CMD                         %MEM
   42   7445   7221 ?         0 00:00:03 /usr/bin/gnome-shell        12.9
    0   6960   6929 tty1      0 00:00:00 /usr/bin/X :0 -background n  2.3
   42   7561   7221 ?         0 00:00:00 /usr/libexec/gsd-media-keys  1.7
    0   6909      1 ?         0 00:00:00 /usr/bin/python2 -Es /usr/s  1.7
  999   6483      1 ?         0 00:00:00 /usr/lib/polkit-1/polkitd -  1.4
    0   6919      1 ?         0 00:00:00 /usr/sbin/libvirtd           1.4
   42   7543   7221 ?         0 00:00:00 /usr/libexec/gsd-xsettings   1.4
   42   7569   7221 ?         0 00:00:00 /usr/libexec/gsd-power       1.4
   42   7549   7221 ?         0 00:00:00 /usr/libexec/gsd-color       1.4
...以下省略

二、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不能,则输出"fail!"

 1. for 循环实现

#!/bin/bash

NETID=192.168.0
for HOSTID in {1..254};do
  {
    ping -c1 -W1 $NETID.$HOSTID &> /dev/null
    if [ $? -eq 0 ];then
        echo "$NETID.$HOSTID success!"
    else
        echo "$NETID.$HOSTID fail!" 
    fi
  } &
done

 2. while 循环实现

#!/bin/bash

NETID=192.168.214
declare -i HOSTID=1

while [ $HOSTID -lt 255 ];do
 
  ping -c1 -W1 $NETID.$HOSTID &> /dev/null
  
  if [ $? -eq 0 ];then
     echo "$NETID.$HOSTID success!"
  else
     echo "$NETID.$HOSTID fail!"
  fi
  
  let HOSTID++

done

三、每周的工作日1:30,将/etc/备份到/backup目录中,保存的文件名格式为"ectbak-yyyy-mm-dd-HH.tar.xz",其中日期是前一天的时间

[root@centos7 ~]# crontab -e
30 1 * * 1-5 /usr/bin/tar -Jcf etcbak-`date -d "-1 day" +%Y-%m-%d-%H`.tar.xz /etc &> /dev/null

四、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高于80%,就发送邮件报警

 1. 先准备报警脚本

[root@centos7 data]# vim while_checkdisk.sh 
#!/bin/bash 

WARNING=10
MAIL=root@localhost

df |sed -rn '/^\/dev\/sd/s#^([^[:space:]]+).* ([[:digit:]]+)%.*#\1 \2#p'|while read diskpart used;do

   if [ $used -gt $WARNING ];then
        echo $diskpart will be full,used:$used% | mail -s "diskcheck_alert" $MAIL
   fi
done

 2. 给脚本加执行权限

[root@centos7 data]# chmod +x while_checkdisk.sh

 3. 添加定时任务

[root@centos7 data]# crontab -e
*/10 * * * * /bin/bash /data/while_checkdisk.sh &> /dev/null
posted @ 2019-12-18 11:17  hovin  阅读(356)  评论(0编辑  收藏  举报