首页 > 技术文章 > 第八周运维作业

jing-yun 2020-08-03 09:31 原文

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

 [root@centos7 ~]# ps -eo pid,ppid,cmd,%mem --sort=-%mem

 

 

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

答:for循环实现

[root@centos7 data]# vim host_for.sh

#!/bin/bash
NET_SEG=192.168.0
PING='ping -c1 -w1'
for HOST in {1..254};do
  {
  if $PING $NET_SEG.$HOST &>/dev/null;then
    echo success $NET_SEG.$HOST
  else
    echo fail $NET_SEG.$HOST
  fi

  }&

done
wait

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

加执行权限

while 循环

[root@centos7 data]# vim host_while.sh

#!/bin/bash
NET_SEG=192.168.0
HOST=1

while [ $HOST -lt 255 ];do
  {

  if ping -c1 -w1 $NET_SEG.$HOST &>/dev/null;then
    echo success $NET_SEG.$HOST
  else
    echo fail $NET_SEG.$HOST
  fi

  }&

  let HOST++

done
wait

加执行权限

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

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

 答:crontab -e

30 1 * * 1-5 /usr/bin/tar -Jcvf /backup/etcbak-`date -d "-1 day" +%F-%H` /etc/

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

 编辑脚本

[root@centos7 data]# vim while-read_checkdisk.sh

#!/bin/bash
WARNING=80
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

给脚本加执行权限

[root@centos7 data]# chmod +x while-read_checkdisk.sh  

编辑计划任务

[root@centos7 data]# crontab -e

*/10 * * * 1-5 /bin/bash /data/while-read_checkdisk.sh &> /dev/null

推荐阅读