1、显示统计占用系统内存最多的进程,并排序。
方法一:使用top命令可查看统计数据,使用M(shift + m)可以按%MEM排序。使用top -o %MEM 可以按内存利用率降序排列
[root@CentOS-8 ~]# top
top - 09:45:58 up 3 min, 1 user, load average: 0.26, 0.44, 0.20
Tasks: 331 total, 1 running, 330 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.8 sy, 0.0 ni, 98.8 id, 0.0 wa, 0.2 hi, 0.1 si, 0.0 st
MiB Mem : 1949.4 total, 740.1 free, 737.7 used, 471.7 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1040.1 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1837 root 20 0 173148 6304 4828 S 0.7 0.3 0:00.45 sshd
1845 root 20 0 12832 3144 2792 S 0.7 0.2 0:00.48 bash
2507 root 20 0 65640 5236 4188 R 0.7 0.3 0:00.07 top
276 root 20 0 0 0 0 I 0.3 0.0 0:00.08 kworker/2:3-eve+
556 root 20 0 0 0 0 S 0.3 0.0 0:00.06 xfsaild/sda2
848 root 20 0 295616 13100 9512 S 0.3 0.7 0:00.44 vmtoolsd
1 root 20 0 245624 14344 9316 S 0.0 0.7 0:04.21 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
[root@CentOS-8 ~]# top
top - 09:46:15 up 3 min, 1 user, load average: 0.20, 0.42, 0.19
Tasks: 331 total, 1 running, 330 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 1.2 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.2 hi, 0.1 si, 0.0 st
MiB Mem : 1949.4 total, 739.9 free, 737.9 used, 471.7 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1039.9 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1557 gdm 20 0 2926924 157248 89668 S 0.0 7.9 0:04.71 gnome-shell
1599 gdm 20 0 538900 62852 46824 S 0.0 3.1 0:00.30 ibus-x11
1567 gdm 20 0 875528 62756 42236 S 0.0 3.1 0:00.58 Xwayland
947 root 20 0 224980 40920 39244 S 0.0 2.0 0:00.25 sssd_nss
974 root 20 0 299380 40852 18096 S 0.0 2.0 0:01.02 firewalld
1082 root 20 0 426324 31456 16528 S 0.0 1.6 0:00.53 tuned
851 polkitd 20 0 1772852 29232 19216 S 0.0 1.5 0:01.02 polkitd
1663 gdm 20 0 1120860 27308 21632 S 0.0 1.4 0:00.16 gsd-media-keys
1640 root 20 0 471412 27108 22436 S 0.0 1.4 0:00.15 packagekitd
1709 gdm 20 0 510052 26516 19176 S 0.0 1.3 0:00.18 gsd-wacom
1675 gdm 20 0 548136 25996 20652 S 0.0 1.3 0:00.14 gsd-power
1642 gdm 20 0 524180 25792 20228 S 0.0 1.3 0:00.15 gsd-xsettings
1650 gdm 20 0 686976 25748 20220 S 0.0 1.3 0:00.17 gsd-color
top命令内置子命令:
排序:
P 按%CPU
M 按MEM
T 按cpu占用TIME+
首部显示命令:
l 显示uptime
数字1 显示cpu个数
m 显示内存信息
k 终止进程
q 退出
方法二:
[root@CentOS-8 ~]# ps -axo %mem,pid,comm | sort -nr
7.8 1557 gnome-shell
3.1 1599 ibus-x11
3.1 1567 Xwayland
2.0 974 firewalld
2.0 947 sssd_nss
1.5 1082 tuned
1.4 851 polkitd
1.3 1709 gsd-wacom
1.3 1675 gsd-power
1.3 1663 gsd-media-keys
1.3 1640 packagekitd
1.2 1656 gsd-keyboard
2、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"
[root@CentOS-8 data]# cat for_ping.sh
#!/bin/bash
ip=192.168.44
for ipid in {1..10};do
{
ping -c1 $ip.$ipid > /dev/null 2>&1
if [ $? -eq 0 ];then
echo $ip.$ipid is success! | tee -a >> /data/for_ping.txt
else
echo $ip.$ipid is fial! | tee -a >> /data/for_ping.txt
fi
} &
done
wait
[root@CentOS-8 data]# cat while_ping.sh
#!/bin/bash
ip=192.168.44
declare -i ipid=1
while [ $ipid -lt 254 ];do
ping -c1 $ip.$ipid &>/dev/null 2>&1;
if [ $? -eq 0 ];then
echo $ip.$ipid is success! | tee -a >> /data/while_ping.txt
else
echo $ip.$ipid is fial! | tee -a >> /data/while_ping.txt
fi
let ipid++
done
3、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间
测试备份命令:
[root@CentOS-8 data]# tar cpvfJ /data/etcbak-`date +%Y-%m-%d-%H -d '-1 days'`.tar.xz /etc
写入定时脚本
crontab -l
30 1 * * 1-5 /bin/bash tar -Jcvf /data/bak/etcbak-`date -d '-1 day' +%Y-%m-%d-%H`.tar.gz /etc/ &>/dev/null
查看结果
[root@CentOS-8 ~]# ll /data/
total 3768
-rw-r--r--. 1 root root 3835616 May 31 10:13 etcbak-2021-05-30-10.tar.xz
4、工作日时间,每10分钟执行一次磁盘空间检查,一旦发现任何分区利用率高 于80%,就发送邮件报警第十九天:
脚本:
[root@CentOS-8 data]# cat diskcheck.sh
#!/bin/bash
stem=`df -h |grep '/dev/sd*'|awk '{print $5}'|awk -F '%' '{print $1}'|sort -nr|head -1`
warn=80
if [ $stem -gt $warn ];then
echo 磁盘空间利用率以超过80% |mail -s "warn the disk will be full" `whoami`@`hostname`
fi
写入定时任务:
crontab -l
/10 * * * * /bin/bash /data/disk.sh