实验目的
使用cron定时执行一个简单的shell的监控脚本,将结果重定向到一个文本文件中。
cron
用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
使用 crontab 命令
–编辑计划任务:crontab -e [-u 用户名]
–查看计划任务:crontab -l [-u 用户名]
–清除计划任务:crontab -r [-u 用户名]
周期性计划任务书写格式
分 时 日 月 周 任务命令行(绝对路径)
例如:
* * * * * 每分钟执行一次
30 23 * * * 每天晚上11点30分执行一次
30 23 * * 5 每周的周五晚上11点30分执行一次
30 23 * * 1-5 周一至周五晚上11点30分执行一次
30 23 * * 1,5 周一和周五晚上11点30分执行一次
30 23 1 * 1 每月一号或者每周的周一,晚上11点30分执行一次
*/5 * * * * 每隔5分钟执行一次
1 */2 * * * 每隔两个小时执行一次
*:匹配范围内任意时间
,:分隔多个不连续的时间点
-:指定连续时间范围
/n:指定时间频率,每n …
实验内容
制定一个计划任务每分钟执行一次
[root@openstack ~]# crontab -e
[root@openstack ~]# crontab -l
* * * * * bash /root/test.sh > /root/test.txt1
2
3
4
5
6
监控脚本的内容
[root@openstack ~]# cat test.sh
#!/bin/bash
uptime | awk '{print "cpu的15分钟平均负载是"$NF}'
ifconfig eth0 | awk '/RX p/{print "eth0网卡的接收流量是"$5"字节"}'
free -h | awk '/^Mem/{print "剩余内存是"$4}'
df -h | awk '/\/$/{print "磁盘根分区剩余容量是"$4}'
awk 'END{print "账户总数是"NR"个"}' /etc/passwd
echo "当前开启的进程数量是$(ps aux | wc -l)个"
echo "当前登录的用户数量是$(who | wc -l)个"
echo "总共安装的软件包数量是$(rpm -qa | wc -l)个"1
2
3
4
5
6
7
8
9
10
实验结果
[root@openstack ~]# cat test.txt
cpu的15分钟平均负载是0.14
剩余内存是4.8G
磁盘根分区剩余容量是38G
账户总数是40个
当前开启的进程数量是206个
当前登录的用户数量是1个
总共安装的软件包数量是813个1
2
3
4
5
6
7
8
验证
添加一个用户
[root@openstack ~]# useradd test1
过一分钟查看用户总数增加一个
[root@openstack ~]# cat test.txt
cpu的15分钟平均负载是0.13
剩余内存是4.8G
磁盘根分区剩余容量是38G
账户总数是41个
当前开启的进程数量是205个
当前登录的用户数量是1个
总共安装的软件包数量是813个1
2
3
4
5
6
7
8
清除计划任务
[root@openstack ~]# crontab -r
[root@openstack ~]# crontab -l
no crontab for root1
2
3
文章来源: blog.csdn.net,作者:锐^_^,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/ring__wang/article/details/111660768