先放个链接,万一有人关注呢
↓ ↓ ↓ ↓ ↓
随着信息技术的快速发展,服务器在现代企业和组织中扮演着至关重要的角色。而作为服务器运维工程师,确保服务器的稳定性和可用性是一项重要的任务。其中,对磁盘空间的监测尤为关键。
场景描述
脚本示例
# 邮件接收者RECIPIENT="admin@example.com"# 日志文件路径LOG_FILE="/var/log/memory_disk_check.log"# 内存阈值 (单位:MB)MEMORY_THRESHOLD=500# 磁盘阈值 (单位:MB)DISK_THRESHOLD=1000# 检测内存剩余空间check_memory() {free_memory=$(free -m | awk '/Mem/ {print $4}')echo "剩余内存: ${free_memory}M"}# 检测根分区剩余空间check_disk_space() {disk_space=$(df -m / | awk '/\// {print $4}')echo "剩余空间: ${disk_space}M"}# 发送邮件给管理员send_email() {local subject="$1"local body="$2"echo -e "Subject:${subject}\n${body}" | sendmail -t "${RECIPIENT}"}# 记录日志log() {local message="$1"echo "$(date +'%Y-%m-%d %H:%M:%S') ${message}" >> "${LOG_FILE}"}# 发送警报send_alert() {local subject="$1"local message="$2"send_email "${subject}" "${message}"log "${subject}: ${message}"}# 主函数main() {check_memorycheck_disk_space# 判断是否需要发送警报if (( free_memory < MEMORY_THRESHOLD )); thensend_alert "内存剩余空间不足警告" "内存剩余空间已经低于 ${MEMORY_THRESHOLD}M"fiif (( disk_space < DISK_THRESHOLD )); thensend_alert "根分区剩余空间不足警告" "根分区剩余空间已经低于 ${DISK_THRESHOLD}M"fi}# 错误处理handle_error() {local error_message="脚本执行出错,命令: '$BASH_COMMAND',行号: $BASH_LINENO"echo "发生错误: ${error_message}"send_alert "脚本执行出错" "脚本执行出错,请查看日志文件 ${LOG_FILE}"log "${error_message}"exit 1}# 设置错误处理函数trap 'handle_error' ERR# 执行主函数main
结束!如有不足之处,欢迎指正!
我们的组织在这里:


原文作者:运维book思议;如有侵权,请联系管理员删除。