案例需求

——为了持续观察服务器每天的基本运行状况,提供方便易读的集中的日志记录数据,需要结合Shell脚本和计划任务设置,定期记录不同时间段服务器的CPU负载、内存和交换空间、磁盘使用率等各种信息

需求描述

每隔15分钟记录一次服务器的基本运行状况,包括:

CPU负载、内存和交换空间、磁盘空间信息

最近的用户登录情况

记录当时的时间信息(以YYYY-mm-dd HH:MM的格式输出

所有信息追加到文件“/var/log/runrec/running.today”中

每天晚上23:55分时备份 running.today 文件:

进行压缩备份,保存到“/var/log/runrec”目录中

备份文件名参考:running.record-YYYYmmdd.tar.bz2

备份完毕后删除当天的记录文件(running.today)

实现思路

编写运行状况监控脚本/opt/monitor.sh

clip_p_w_picpath002

通过uptime、free、df等命令获取系统状态信息

通过“last -n 20” 获取最近20条用户登录信息 (完后:注意赋予其执行权限)

clip_p_w_picpath004

设定计划任务

clip_p_w_picpath006

每隔15分钟执行一次monitor.sh脚本,每天23:55分进行压缩备份

tar命令的“--remove-files”选项用于备份完后删除源文件

获取日期信息:

date +"%F %H:%M" YYYY-mm-dd HH:MM

date +"%Y%m%d" YYYYmmdd

clip_p_w_picpath008

确认crond服务的启动

clip_p_w_picpath010