高级运维纯bash自动化脚本

这个脚本将包括广泛的系统检测和维护任务。这个脚本会检测系统状态、资源使用、安全状况等,并根据需要提供适当的响应和报告。

高级运维自动化脚本

#!/bin/bash

# 环境设置
CPU_THRESHOLD=50
MEM_THRESHOLD=10
LARGE_FILE_SIZE=100M
PORT_TO_CHECK=(80 443 22)  # 检查常用端口
DISK_USAGE_THRESHOLD=90
LOG_DIR="/var/log/maintenance_logs"
mkdir -p $LOG_DIR
LOG_FILE="$LOG_DIR/$(date +%F_%T).log"

# 记录函数
log() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $@" | tee -a $LOG_FILE
}

# 获取系统信息
OS=$(uname -s)
DISTRO=$(grep '^ID=' /etc/os-release | cut -d= -f2 | tr -d '"')
VERSION_ID=$(grep 'VERSION_ID=' /etc/os-release | cut -d= -f2 | tr -d '"')

log "操作系统: $OS"
log "发行版: $DISTRO"
log "版本号: $VERSION_ID"

# 定义根据发行版调整的功能
case $DISTRO in
    ubuntu|debian)
        FW_CMD="sudo ufw status verbose"
        ;;
    centos|fedora|rhel)
        FW_CMD="sudo firewall-cmd --list-all"
        ;;
    *)
        log "不支持的发行版"
        exit 1
        ;;
esac

# 函数定义区
check_cpu_usage() {
    log "检查CPU使用率高的进程:"
    ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 10 | tee -a $LOG_FILE
}

check_mem_usage() {
    log "检查内存使用率高的进程:"
    ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 10 | tee -a $LOG_FILE
}

find_large_files() {
    log "检查大文件(超过$LARGE_FILE_SIZE):"
    find / -type f -size +$LARGE_FILE_SIZE -exec ls -lh {} \; 2>/dev/null | awk '{ print $9 ": " $5 }' | tee -a $LOG_FILE
}

check_port_usage() {
    for port in "${PORT_TO_CHECK[@]}"; do
        log "检查端口$port的使用情况:"
        netstat -tuln | grep ":$port " && log "端口$port被占用" || log "端口$port未被占用"
    done
}

check_disk_usage() {
    log "检查磁盘使用率:"
    df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output; do
        log "$output"
        usage=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
        if [ $usage -ge $DISK_USAGE_THRESHOLD ]; then
            log "磁盘空间使用超过阈值:$output"
        fi
    done
}

# 执行任务
log "运维自动化检测脚本启动"
check_cpu_usage
check_mem_usage
find_large_files
check_port_usage
check_disk_usage
log "检查防火墙状态:"
$FW_CMD | tee -a $LOG_FILE
log "运维自动化检测完成"

# 清理旧日志文件(保留最近10个日志)
find $LOG_DIR -type f | sort | head -n -10 | xargs rm --

脚本功能说明:

  1. 日志记录:所有输出都会被记录到日志文件中,方便事后分析和审计。
  2. 检查任务:包括CPU和内存使用情况检查、大文件搜索、端口占用情况、磁盘使用率及防火墙状态。
  3. **日志文件管理

**:自动清理旧的日志文件,只保留最近10个。

使用方法:

  1. 将脚本保存为system_maintenance_advanced.sh
  2. 赋予执行权限:chmod +x system_maintenance_advanced.sh
  3. 定时执行或手动运行脚本以进行系统检查和日志记录。

这个脚本为你提供了一个强大的工具,能够自动执行多种系统检查任务,并保持良好的日志记录,帮助你追踪和分析系统状态。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值