记录Linux服务内存使用情况的脚本。它将内存使用情况按照从大到小的顺序记录在日志文件中,并每天记录一次。脚本会在指定的/path/to/memory_log.txt路径下生成一个名为memory_log.txt的日志文件。每次记录包括日期和相应的内存使用情况。
#!/bin/bash
# 设置记录文件的路径
log_file="/path/to/memory_log.txt"
# 获取当前日期
current_date=$(date "+%Y-%m-%d")
# 获取每个服务使用的内存大小,并按照内存大小从大到小排序
memory_usage=$(ps -eo pid,%mem,cmd --sort=-%mem | awk 'NR>1 {print $2,$3}')
# 将日期和内存使用情况写入日志文件
echo "Date: ${current_date}" >> "$log_file"
echo "Memory Usage:" >> "$log_file"
echo "$memory_usage" | while read -r line; do
echo "$line" >> "$log_file"
done
echo -e "\n" >> "$log_file"
# 删除过期的日志文件(保留最近7天的数据)
find "$(dirname "$log_file")" -name "memory_log*.txt" -mtime +7 -exec rm {} \;
添加执行权限
chmod +x memory_usage.sh
添加定时任务,并每天凌晨执行脚本。
crontab -e
0 0 * * * /path/to/memory_usage.sh
查看记录输出
cat /path/to/memory_log.txt