2020-03-26 第八周作业

▲就业班和全程班的小伙伴看这里:(学习老王视频的作业第15-16节)

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

1.1 输入 top命令,然后按M按内存使用情况排序

[root@centos7 ~]#top

top - 09:13:17 up 15:18,  2 users,  load average: 0.00, 0.01, 0.05

Tasks: 136 total,  1 running, 135 sleeping,  0 stopped,  0 zombie

%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  1863252 total,  1217112 free,  232664 used,  413476 buff/cache

KiB Swap:  4194300 total,  4194300 free,        0 used.  1422244 avail Mem

  PID USER   PR  NI  VIRT   RES   SHR S %CPU %MEM  TIME+ COMMAND

  6275 root      20  0  358188  29152  7016 S  0.0   1.6  0:01.31 firewalld

  6854 root      20  0  573820  17232  6068 S  0.0   0.9  0:10.72 tuned

  6184 polkitd  20  0  616512  15792  5160 S  0.0   0.8  0:00.83 polkitd

  6865 root      20  0 1007940  14816  9936 S  0.0   0.8  0:00.44 libvirtd

  6202 root      20  0  320028  6748  5276 S  0.0  0.4  1:54.59 vmtoolsd

1.2 输入 ps axo pid,%cpu,tty,%mem,cmd k %mem | head -n 5

[root@centos7 ~]#ps axo pid,%cpu,tty,%mem,cmd k -%mem |head -n5

  PID %CPU TT %MEM CMD

  6275  0.0 ?        1.5 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

  6854  0.0 ?        0.9 /usr/bin/python2 -Es /usr/sbin/tuned -l -P

  6184  0.0 ?        0.8 /usr/lib/polkit-1/polkitd --no-debug

  6865  0.0 ?        0.7 /usr/sbin/libvirtd


2、编写脚本,使用for和while分别实现

192.168.0.0/24网段内,地址是否能够ping通,若ping通则输"success!",若ping不通则输出"fail!"

2.1 for 脚本

#!/bin/bash

set -u

set -e

netid=192.168.253

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.2 while 脚本

#!/bin/bash

NETID=192.168.0

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


3、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-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

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

4.1 编写报警脚本

[root@centos7~]# vim /scrips/checkdisk.sh

#!/bin/bash

WARNING=80

MAIL=root

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

4.2 增加脚本执行权限

[root@centos7~]# chmod +x /scrips/checkdisk.sh

4.3 添加计划任务

[root@centos7~]# crontab -e

*/10 * * * 1-5 /bin/bash /scrips/checkdisk.sh &> /dev/null

你可能感兴趣的:(2020-03-26 第八周作业)