Linux学习-第11周

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

[root@CentOS8 ~]#ps axo user,cmd,%mem k -%mem |head -n20
USER CMD %MEM
root /usr/libexec/sssd/sssd_nss 1.9
root /usr/libexec/platform-pytho 1.6
polkitd /usr/lib/polkit-1/polkitd - 1.4
apache /usr/sbin/httpd -DFOREGROUN 1.0
apache /usr/sbin/httpd -DFOREGROUN 1.0
apache /usr/sbin/httpd -DFOREGROUN 1.0
root /usr/sbin/NetworkManager -- 0.9
root /usr/libexec/sssd/sssd_be - 0.7
root /usr/sbin/httpd -DFOREGROUN 0.7
root /usr/sbin/sssd -i --logger= 0.7
root /usr/sbin/ModemManager 0.6
root /usr/bin/vmtoolsd 0.5
root /usr/lib/systemd/systemd -- 0.5
root /usr/bin/VGAuthService -s 0.5
root sshd: root [priv] 0.5
root /usr/lib/systemd/systemd-ud 0.5
root /usr/sbin/cupsd -l 0.5
root /usr/sbin/rsyslogd -n 0.4
root /usr/lib/systemd/systemd -- 0.4

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

(1) for循环
[root@CentOS8 test]#cat scanhost.sh
#!/bin/bash
NET=192.168.0
for i in {1..254};do
(
ping -c1 -W1 ${NET}.${i} &> /dev/null && echo ${NET}.${i} : success || echo ${NET}.${i} :fail
)&
done
wait

(2) while循环
[root@CentOS8 test]#cat scanhost2.sh
#!/bin/bash
NET=192.168.0
i=1
while [ $i -lt 255 ];do
(
ping -c1 -W1 ${NET}.${i} &> /dev/null && echo ${NET}.${i} : success || echo ${NET}.${i} :fail
)&
let i++
done
wait

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

[root@CentOS8 backup]#crontab -l
30 1 0 /usr/bin/tar Jcf /backup/etcback-(date +\%F-\%H -d '-1 day').tar.xz /data/test

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

[root@CentOS8 backup]#cat /data/test/disk_check.sh
#!/bin/bash
WARNING=80
df |awk -F" +|%" '/^\/dev\/sd/{print $1,$5}' | while read DEVICE USED ;do
[ $USED -gt $WARNING ] && echo "$DEVICE will be full! Usage is $USED" | mail -s diskfull root

done [root@CentOS8 backup]#crontab -l
*/10 * * * 1-5 /data/test/diskcheck.sh

猜你喜欢

转载自blog.51cto.com/14255962/2633249