ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Linux Shell 脚本实战——备份、监控、告警

Linux Shell 脚本实战——备份、监控、告警

一、备份脚本

#!/bin/bash# backup.sh 数据库备份BACKUP_DIR="/backup/mysql"DATE=$(date+%Y%m%d_%H%M%S)DB_NAME="seckill_db"DB_USER="root"DB_PASS="123456"mkdir-p$BACKUP_DIR# 备份数据库mysqldump -u$DB_USER-p$DB_PASS$DB_NAME\>$BACKUP_DIR/${DB_NAME}_$DATE.sql# 压缩gzip$BACKUP_DIR/${DB_NAME}_$DATE.sql# 删除7天前的备份find$BACKUP_DIR-name"*.sql.gz"-mtime+7-execrm{}\;echo"备份完成:${DB_NAME}_$DATE.sql.gz"

二、监控脚本

#!/bin/bash# monitor.sh 磁盘/CPU/内存监控ALERT_THRESHOLD=80# 磁盘使用率告警阈值# 检查磁盘DISK_USAGE=$(df-h/|awk'NR==2{print $5}'|sed's/%//')if[$DISK_USAGE-gt$ALERT_THRESHOLD];thenecho"磁盘使用率$DISK_USAGE% 超过阈值$ALERT_THRESHOLD%"|mail-s"磁盘告警"admin@example.comfi# 检查进程if!pgrep-f"app.jar">/dev/null;thenecho"应用进程不存在,重启中..."nohupjava-jar/opt/app/app.jar>/opt/app/app.log2>&1&fi

三、日志清理脚本

#!/bin/bash# clean_log.sh 日志清理LOG_DIR="/var/log/seckill"# 清理7天前的日志find$LOG_DIR-name"*.log"-mtime+7-execrm-f{}\;# 清理超过100M的日志find$LOG_DIR-name"*.log"-size+100M-exectruncate-s0{}\;echo"日志清理完成"

💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!

返回列表