通过smem 定时检测系统内存占用情况

编写定时任务脚本

bash 复制代码
cat >> /usr/local/bin/smem.sh <<-"EOF"

if [[ ! -d /var/log/smem ]];then
    mkdir -p /var/log/smem
fi
smem -tk >> /var/log/smem/smem.log
EOF

chmod 755 /usr/local/bin/smem.sh

配置定时任务

bash 复制代码
echo "" >> /etc/crontab
echo "* * * * * root flock -xn '/tmp/smem.lock' -c '/usr/local/bin/smem.sh' > /dev/null 2>&1" >> /etc/crontab
systemctl reload crond

配置日志轮转

bash 复制代码
cat >> /etc/logrotate.d/smem <<-"EOF"
/var/log/smem/smem.log {
    daily
    rotate 30
    compress
    delaycompress
    missingok
    notifempty
    create 644 root root
}
EOF

检查定时任务是否生效

bash 复制代码
# 查看 /var/log/cron
tail -1000 /var/log/cron |grep smem

# 这将显示过去 2 分钟内的 crond 日志条目
journalctl -u crond --since "2 minutes ago" | grep smem
bash 复制代码
[root@localhost lxm]# tail -1000 /var/log/cron |grep smem
Dec 20 10:13:01 localhost CROND[3378740]: (root) CMD (flock -xn '/tmp/smem.lock' -c '/usr/local/bin/smem.sh' > /dev/null 2>&1)
Dec 20 10:13:01 localhost CROND[3378739]: (root) CMDEND (flock -xn '/tmp/smem.lock' -c '/usr/local/bin/smem.sh' > /dev/null 2>&1)
[root@localhost lxm]# 
[root@localhost lxm]# journalctl -u crond --since "2 minutes ago" | grep smem
Dec 20 10:13:01 localhost.localdomain CROND[3378740]: (root) CMD (flock -xn '/tmp/smem.lock' -c '/usr/local/bin/smem.sh' > /dev/null 2>&1)
Dec 20 10:14:01 localhost.localdomain CROND[3388194]: (root) CMD (flock -xn '/tmp/smem.lock' -c '/usr/local/bin/smem.sh' > /dev/null 2>&1)
相关推荐
凡间客2 小时前
Ansible安装与入门
linux·运维·ansible
君以思为故2 小时前
认识Linux -- 进程概念
linux·服务器
_OP_CHEN2 小时前
Linux网络编程:(八)GCC/G++ 编译器完全指南:从编译原理到实战优化,手把手教你玩转 C/C++ 编译
linux·运维·c++·编译和链接·gcc/g++·编译优化·静态链接与动态链接
阿乐艾官2 小时前
【十一、Linux管理网络安全】
linux·运维·web安全
Code Warrior4 小时前
【Linux】Socket 编程预备知识
linux·网络·c++
摘星|5 小时前
架设一台NFS服务器,并按照以下要求配置
linux·运维·服务器
做运维的阿瑞5 小时前
Linux环境变量持久化完全指南
linux·运维·服务器
天才奇男子5 小时前
从零开始搭建Linux Web服务器
linux·服务器·前端
Mr_Dwj6 小时前
【运维】GNU/Linux 入门笔记
linux·运维·gnu
Elias不吃糖6 小时前
NebulaChat项目构建笔记
linux·c++·笔记·多线程