crontab计划任务统计内存使用情况

编写crontab任务:每一分钟记录一次当前系统的内存使用情况,并附带时间。

审题,题目要求

1.查看系统内存使用情况

top命令可以查看动态的内存使用情况

2.把查看的内容记录下来

可以用重定向符 >表示覆盖;>>表示追加。因为我们记录的并不只是一次,所以我们用>>

3.附带时间

实时时间,可以用date命令

4.编写crontab任务

crontab -e 命令直接编写

实验操作

top命令查看内存使用情况
在这里插入图片描述
可以看到,内容挺多的,只有第四行是有用的信息。第一行虽然有时间,但还要很多多余的信息且没日期,故我们只取第四行的信息,将它过滤出来
grep “^KiB Mem” #取以KiB Mem开头的行
记录内存使用情况
top | grep “^KiB Mem” >> ./top.txt
在这里插入图片描述
会发现进程会一直停在这,那是因为top命令查看的是动态的信息,并不能直接输入到文件中去
我们来详细的看一下top命令
[root@linux ~]# top [-d] | top [-bnp]
参数:
-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;
-b :以批次的方式执行 top ,还有更多的参数可以使用喔!
通常会搭配数据流重导向来将批次的结果输出成为档案。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID 来进行观察监测而已。
在 top 执行过程当中可以使用的按键指令:
? :显示在 top 当中可以输入的按键指令;
P :以 CPU 的使用资源排序显示;
M :以 Memory 的使用资源排序显示;
N :以 PID 来排序喔!
T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
k :给予某个 PID 一个讯号 (signal)
r :给予某个 PID 重新制订一个 nice 值。

这样我们可以通过参数-b 和-n来实现
[root@aaa ~]# top -b -n 1 | grep “^KiB Mem” >> ./top.txt
[root@aaa ~]# cat top.txt
KiB Mem : 7994076 total, 7258044 free, 335380 used, 400652 buff/cache

我们在加上时间
[root@aaa ~]# top -b -n 1 | grep “^KiB Mem” >> ./top.txt && date >> ./top.txt
[root@aaa ~]# cat top.txt
KiB Mem : 7994076 total, 7258044 free, 335380 used, 400652 buff/cache
KiB Mem : 7994076 total, 7257680 free, 335672 used, 400724 buff/cache
2020年 07月 20日 星期一 18:52:25 CST

创建周期性计划任务
先查看top命令的绝对路径
[root@aaa ~]# which top
/usr/bin/top
[root@aaa ~]# crontab -e
*/1 * * * * /usr/bin/top top -b -n 1 | grep “^KiB Mem” >> /root/top.txt
计划任务中命令需要用绝对路径
在这里插入图片描述
这里就配置完成了。

猜你喜欢

转载自blog.csdn.net/weixin_41648905/article/details/107470462