Linux运维常用脚本:提升效率的自动化利器
整理运维工作中最实用的自动化脚本让重复工作一键完成。在Linux运维工作中善用脚本可以极大提升效率。本文整理了运维工作中最常用的脚本示例覆盖日志清理、备份、监控、系统检查等场景拿来即用。PART 01日志管理脚本1. 自动清理过期日志日志文件占用过多磁盘空间是常见问题通过脚本自动清理可有效避免。#!/bin/bash # auto_clean_logs.sh - 清理指定目录下N天前的日志文件 LOG_DIR/var/log/myapp DAYS30 find $LOG_DIR -name *.log -type f -mtime $DAYS -exec rm -f {} \; echo $(date): Cleaned logs older than $DAYS days in $LOG_DIR /var/log/cleanup.log2. 日志压缩归档将7天前的日志压缩归档节省空间的同时保留历史数据。#!/bin/bash # archive_logs.sh - 压缩归档7天前的日志 LOG_DIR/var/log/myapp ARCHIVE_DIR/backup/logs DAYS7 mkdir -p $ARCHIVE_DIR find $LOG_DIR -name *.log -type f -mtime $DAYS -exec gzip {} \; find $LOG_DIR -name *.log.gz -type f -mtime $DAYS -exec mv {} $ARCHIVE_DIR \; echo $(date): Archived logs older than $DAYS days /var/log/archive.logPART 02备份脚本3. 数据库备份脚本MySQL#!/bin/bash # mysql_backup.sh - MySQL数据库备份 DB_NAMEproduction_db DB_USERroot DB_PASSyour_password BACKUP_DIR/backup/mysql DATE$(date %Y%m%d_%H%M%S) KEEP_DAYS7 mkdir -p $BACKUP_DIR mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip $BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz # 删除7天前的备份 find $BACKUP_DIR -name *.sql.gz -type f -mtime $KEEP_DAYS -delete echo $(date): MySQL backup completed: ${DB_NAME}_${DATE}.sql.gz4. 目录增量备份rsync使用rsync实现增量备份高效且节省空间。#!/bin/bash # rsync_backup.sh - 使用rsync进行增量备份 SOURCE_DIR/data/ BACKUP_DIR/backup/data/ EXCLUDE_FILE/backup/exclude.list # 排除文件列表示例 # *.tmp # cache/ # logs/*.log rsync -avz --delete --exclude-from$EXCLUDE_FILE $SOURCE_DIR $BACKUP_DIR echo $(date): Rsync backup completed /var/log/backup.logPART 03系统监控脚本5. 服务器健康检查#!/bin/bash # health_check.sh - 服务器健康状态检查 echo 服务器健康检查报告 echo 检查时间: $(date) echo # CPU负载 echo --- CPU负载 --- load_avg$(uptime | awk -Fload average: {print $2}) echo 负载均值: $load_avg echo # 内存使用 echo --- 内存使用 --- free -h | grep -E Mem|Swap echo # 磁盘使用 echo --- 磁盘使用 --- df -h | grep -v tmpfs | grep -v udev echo # 系统运行时间 echo --- 系统运行时间 --- uptime -p echo # 最近登录 echo --- 最近登录用户 --- last -n 5 | grep -v ^$ echo # 检查关键服务 echo --- 关键服务状态 --- services(nginx mysql ssh) for svc in ${services[]}; do if systemctl is-active --quiet $svc; then echo $svc: ✓ 运行中 else echo $svc: ✗ 已停止 fi done6. 磁盘使用率告警脚本#!/bin/bash # disk_alert.sh - 磁盘空间告警 THRESHOLD80 EMAILadminexample.com WARN_FILE/tmp/disk_warn.txt df -h | grep -v tmpfs | grep -v udev | while read line; do usage$(echo $line | awk {print $5} | sed s/%//) mount$(echo $line | awk {print $6}) if [ $usage -gt $THRESHOLD ]; then echo 警告: 分区 $mount 使用率已达 $usage% (阈值: $THRESHOLD%) $WARN_FILE fi done if [ -s $WARN_FILE ]; then cat $WARN_FILE | mail -s 磁盘空间告警 $EMAIL rm -f $WARN_FILE fi7. 端口连通性检查#!/bin/bash # port_check.sh - 检查服务端口是否正常 HOSTlocalhost PORTS(80 443 3306 6379) for port in ${PORTS[]}; do nc -zv $HOST $port /dev/null if [ $? -eq 0 ]; then echo ✓ 端口 $port 正常 else echo ✗ 端口 $port 异常 fi donePART 04系统维护脚本8. 定时清理内存缓存#!/bin/bash # clear_cache.sh - 清理系统内存缓存 # 同步磁盘数据 sync # 清理页缓存、目录项和inode echo 3 /proc/sys/vm/drop_caches echo $(date): System cache cleared /var/log/cache_clean.log9. 批量修改文件权限#!/bin/bash # fix_permissions.sh - 批量修复文件权限 WEB_DIR/var/www/html # 目录755文件644 find $WEB_DIR -type d -exec chmod 755 {} \; find $WEB_DIR -type f -exec chmod 644 {} \; # 特定目录开放写入权限 chmod 775 $WEB_DIR/uploads chmod 775 $WEB_DIR/cache echo $(date): Permissions fixed for $WEB_DIR10. 查找并清理大文件#!/bin/bash # find_large_files.sh - 查找并清理大文件 SEARCH_DIR/ SIZE500M LOG_FILE/tmp/large_files.log echo 正在查找大于500MB的文件... find $SEARCH_DIR -type f -size $SIZE -exec ls -lh {} \; | tee $LOG_FILE echo 查找到以下大文件请确认后删除 cat $LOG_FILE # 如需自动删除取消下面注释慎用 # find $SEARCH_DIR -type f -size $SIZE -exec rm -f {} \;PART 05用户管理脚本11. 批量创建用户#!/bin/bash # batch_create_users.sh - 批量创建用户 USER_FILEuser_list.txt # user_list.txt 格式: username:password:group # 例如: zhangsan:123456:developers while IFS: read -r username password group; do if [ -z $username ]; then continue fi # 创建用户组如果不存在 if [ -n $group ]; then groupadd $group 2/dev/null useradd -m -g $group -s /bin/bash $username else useradd -m -s /bin/bash $username fi # 设置密码 echo $username:$password | chpasswd echo 用户 $username 创建成功 done $USER_FILEPART 06定时任务配置12. Crontab配置示例将脚本加入定时任务实现自动化运维。# 编辑crontab crontab -e # 配置示例 # 每天凌晨2点清理日志 0 2 * * * /opt/scripts/auto_clean_logs.sh # 每天凌晨3点数据库备份 0 3 * * * /opt/scripts/mysql_backup.sh # 每5分钟检查磁盘使用率 */5 * * * * /opt/scripts/disk_alert.sh # 每周日凌晨4点系统健康检查 0 4 * * 0 /opt/scripts/health_check.sh /var/log/health_weekly.log # 每月1号清理缓存 0 5 1 * * /opt/scripts/clear_cache.shPART 07应急运维脚本13. 快速定位高CPU进程#!/bin/bash # top_cpu.sh - 快速定位高CPU消耗进程 echo TOP 10 CPU消耗进程 ps aux --sort-%cpu | head -1114. 批量停止指定服务#!/bin/bash # stop_services.sh - 批量停止服务 services(tomcat nginx redis) for svc in ${services[]}; do systemctl stop $svc if [ $? -eq 0 ]; then echo $svc 已停止 else echo $svc 停止失败 fi done实用脚本技巧添加执行权限chmod x script.sh调试模式bash -x script.sh查看详细执行过程日志记录./script.sh /var/log/script.log 21参数传递使用$1、$2接收命令行参数错误处理使用set -e遇错即停set -u未定义变量报错掌握这些脚本能让日常运维工作事半功倍。建议根据实际需求定制修改逐步积累属于自己的脚本库。

相关新闻

告别龟速下载:用Python解析工具解锁百度网盘10倍下载速度

告别龟速下载:用Python解析工具解锁百度网盘10倍下载速度

告别龟速下载:用Python解析工具解锁百度网盘10倍下载速度 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘的限速而烦恼吗?每次下载大文件…

2026/7/3 4:07:02 阅读更多 →
华硕ROG性能控制革命:GHelper轻量级工具完全掌控指南

华硕ROG性能控制革命:GHelper轻量级工具完全掌控指南

华硕ROG性能控制革命:GHelper轻量级工具完全掌控指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Exp…

2026/7/3 4:07:02 阅读更多 →
Agent开发实战:从架构设计到生产部署全指南

Agent开发实战:从架构设计到生产部署全指南

1. 项目概述:Agent开发的行业现状与学习路径最近两年,Agent技术正在以惊人的速度渗透到各个行业领域。从电商客服到金融风控,从工业质检到医疗辅助决策,具备自主决策能力的智能体正在重塑传统业务流程。我完整经历过7个企业级Agen…

2026/7/3 4:05:02 阅读更多 →

最新新闻

单例模式 超详细完整版

单例模式 超详细完整版

一、单例模式是什么?单例模式(Singleton) 是创建型设计模式。 核心定义: 保证一个类在整个程序运行中,有且仅有一个实例对象,并提供一个全局访问入口。二、单例模式三大核心特点(必背&#xff0…

2026/7/3 4:59:20 阅读更多 →
口碑出众的精准尺寸烤盘定制厂家

口碑出众的精准尺寸烤盘定制厂家

做工业化烘焙生产的技术和采购人员都懂,烤盘尺寸哪怕只有1mm的误差,放到自动化隧道炉、连续生产线上就容易出现卡盘、跳盘问题,轻则耽误生产进度,重则刮坏传输设备、提升产品报废率,因此找到靠谱的烘焙器具定制厂家&am…

2026/7/3 4:59:20 阅读更多 →
基于STM32的智能手环设计与实现

基于STM32的智能手环设计与实现

摘要:为满足对人体基础生理信息与日常活动状态的综合监测需求,设计了一套基于STM32的智能手环系统。系统以STM32F103C8T6为控制核心,结合MAX30102心率血氧传感器、DS18B20温度传感器、ADXL345加速度传感器、OLED显示屏、按键、蜂鸣器及ESP826…

2026/7/3 4:57:19 阅读更多 →
2026 年 7 月 openclaw 龙虾替代品推荐 九款分场景商用AI智能体实测对比参考

2026 年 7 月 openclaw 龙虾替代品推荐 九款分场景商用AI智能体实测对比参考

前言 OpenClaw 俗称龙虾,作为海外开源 AI 智能体框架,依托自主操控电脑、多技能扩展的能力积累不少使用者,但原版工具存在部署流程繁琐、国内网络适配度有限、数据跨境存在合规压力、中文长任务运行稳定性一般等现实使用门槛。2026 年国内市场…

2026/7/3 4:57:19 阅读更多 →
JVM 全套面试题整理(由简到难,2026最新完整版)

JVM 全套面试题整理(由简到难,2026最新完整版)

很多同学面试 JVM 很痛苦:知识点杂乱、背了不会用、面试问深一点就崩。本文按照 入门基础 → 内存模型 → GC 垃圾回收 → 类加载机制 → 底层原理 → 线上调优与故障排查 难度逐级递增整理,可直接背诵、可直接口述、可解决线上问题。 适合:J…

2026/7/3 4:53:18 阅读更多 →
生产级机器学习服务架构:特征仓库、模型注册与可观测性实战

生产级机器学习服务架构:特征仓库、模型注册与可观测性实战

1. 项目概述:这不是“部署”,是让模型真正活在业务流水线里“From Notebook to Production: Running ML in the Real World (Part 4)”——光看标题,你可能以为这是系列教程的收尾篇,讲讲怎么把Jupyter里跑通的模型丢进Docker、打…

2026/7/3 4:51:17 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻