[内容] Linux 内存机制

内容一:Linux 显示内存的命令

# free -m

内容二:Linux 内存机制

1) total 内存的总大小
2) used 正在被使用的内存大小
3) free 没有被使用的内存大小
4) shared 正在被用于共享的内存大小
5) buffers/cached 正处于缓存状态的内存大小(当 free 状态的内存不够时,它会自动释放出来)
6) available 还可以被应用程序使用的内存大小


补充:释放处于 shared 状态内存的方法
1) # echo 1 > /proc/sys/vm/drop_caches #清除 pagecache
2) # echo 2 > /proc/sys/vm/drop_caches #清除 slab
3) # echo 3 > /proc/sys/vm/drop_caches #同时清除 pagecache 和 slab

[工具] Shell 检测服务器 CPU 占用率并报警写入日志

介绍:

#名称:检测服务器 CPU 占用率并报警写入日志
#作用:检测服务器 CPU 占用率并报警写入日志

#使用方法:
#1. 在此脚本的分割线内写入相应的内容
#2. 给此脚本添加执行权限
#3. 将此脚本添加到周期性计划任务里
#4. 如果 CPU 占用率超过了报警值则将报警信息写入 /var/log/message

脚本分割线里的变量:
cputhreshold=95 #CPU 报警的占比值

脚本:

#!/bin/bash

####################### Separator ########################
cputhreshold=95
####################### Separator ########################

cpumonitor() {
cpu=`top -n 1 -b | grep Cpu | awk -F, '{print $1}'| awk -F: '{print $2}'| awk '{print $1}'`

if [ `echo "$cpu > $1"|bc` -ne 0 ]
then
        logger "CPU_Alarm CPU until $cpu"
fi
}

cpumonitor $cputhreshold

[步骤] Linux 脚本的管理 (通过 systemd 实现)

步骤一:要被管理的脚本

# vim /root/12456.sh

创建以下内容:

#!/bin/bash
for i in {1..5}
do
echo $i
done

(补充:这里以创建 /etc/root/for.sh 脚本为例)

步骤二:创建 systemctl 的管理文件

# vim /etc/systemd/system/12456.service

创建以下内容:

[Unit]
Description=12345
After=default.target

[Service]
Type=oneshot
ExecStart=/root/12456.sh

[Install]
WantedBy=default.target

(补充:这里以创建 /etc/systemd/system/12456.service 来管理 ExecStart=/root/12456.sh 为例)

步骤三:加载刚刚创建的 systemctl 管理文件

# systemctl daemon-reload

步骤四:给 systemctl 的管理文件添加执行权限

# chmod u+x /etc/systemd/system/12456.service

步骤五:通过 systemd 管理脚本
5.1 启动脚本

# systemctl start 12456.service

5.2 关闭脚本

# systemctl stop 12456.service

5.3 重启脚本

# systemctl restart 12456.service

5.4 让脚本开机自启

# systemctl enable 12456.service