当前位置: 首页 > backend >正文

Shell脚本实用技巧集锦:从时间判断到系统监控

Shell脚本是Linux系统管理和自动化任务中不可或缺的工具。本文将分享几个实用的Shell脚本示例,涵盖时间判断、文件统计、随机密码生成、服务监控和系统资源查看等功能。这些脚本可以直接使用,也可作为学习Shell编程的参考。


1. 根据时间判断时间段

以下脚本根据当前系统时间输出对应的时间段(凌晨、早上、中午、下午、晚上):

#!/bin/basha=$(date +%H)if [ $a -ge 6 -a $a -lt 11 ]; thenecho "现在时间是早上$a点"
elif [ $a -ge 11 -a $a -lt 13 ]; thenecho "现在时间是中午$a点"
elif [ $a -ge 13 -a $a -lt 18 ]; thenecho "现在时间是下午$a点"
elif [ $a -ge 18 -a $a -lt 24 ]; thenecho "现在时间是晚上$a点"
elseecho "现在时间是凌晨 $a 点"
fi

在这里插入图片描述


2. 统计 /var/log 目录下的文件数量并列出文件名

#!/bin/bashcd /var/log
sum=0for i in $(ls -r *); doif [ -f "$i" ]; thenlet sum++echo "文件名:$i"fi
doneecho "总文件数量为:$sum"

在这里插入图片描述
在这里插入图片描述

3. 需要ping 通 某个网段机器并且输出 通和不通 反馈结果

在这里插入图片描述

4. 随机生成密码

生成一个包含数字、字母和特殊字符的15位随机密码:

#!/bin/bashkey="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-+="
num=${#key}for i in {1..15}; doindex=$[RANDOM%num]pass=$pass${key:$index:1}
doneecho $pass

在这里插入图片描述


5. 监控服务运行状态(以httpd为例)

循环检查httpd服务是否在运行:

#!/bin/bashwhile ps -aux | grep httpd | grep -v grep &> /dev/null; doecho "httpd 正在运行中"sleep 2
doneecho "httpd 不在运行中"

在这里插入图片描述


6. 使用case语句查看系统资源使用情况

提供一个交互式菜单,查看CPU、内存、硬盘使用情况:

#!/bin/bashecho "请选择查看的系统信息:"
echo "1. CPU 使用情况"
echo "2. 内存 使用情况"
echo "3. 硬盘 使用情况"
echo "4. 退出"read -p "请输入选项(1/2/3/4):" yjwcase $yjw in"1")echo "正在查看CPU使用情况......"top -bn1 | grep "Cpu(s)";;"2")echo "正在查看内存使用情况......"free -h;;"3")echo "正在查看硬盘使用情况......"df -h;;"4")echo "退出程序"exit 0;;*)echo "请输入整数值:1、2、3、4。其他无效";;
esac

在这里插入图片描述


结语

以上脚本涵盖了Shell编程中常见的条件判断、循环、文件操作、进程监控和用户交互等场景。你可以根据需要修改或组合这些脚本,提升日常系统管理和自动化任务的效率。


http://www.xdnf.cn/news/19503.html

相关文章:

  • 【数据可视化-104】安徽省2025年上半年GDP数据可视化分析:用Python和Pyecharts打造炫酷大屏
  • HTTP/2 多路复用
  • 网络流量分析——熟悉Wireshark
  • 时序数据库国产的有哪些?
  • ​​--flush-logs 的作用:刷新 MySQL 的日志文件(主要是二进制日志 binlog)​
  • 解析简历重难点与面试回答要点
  • 【开题答辩全过程】以 健身爱好者饮食管理小程序为例,包含答辩的问题和答案
  • LeetCode82删除排序链表中的重复元素 II
  • 力扣hot100 | 堆 | 215. 数组中的第K个最大元素、347. 前 K 个高频元素、128. 最长连续序列
  • 《架构师手记:SpringCloud整合Nacos实战·一》
  • Transformer的并行计算与长序列处理瓶颈总结
  • 可编辑115页PPT | 某纸制品制造企业数字化转型战略规划项目建议书
  • 【实验protocol分享】了解流式细胞术
  • 串口通讯个人见解
  • 软考中级【网络工程师】第6版教材 第4章 无线通信网 (下)
  • matlab扫雷小游戏
  • 艾莉丝努力练剑的创作纪念日:星河初启,牧梦长空
  • 企业级主流日志系统架构对比ELKK Stack -Grafana Stack
  • pyside6小项目:进制转换器
  • 【OpenFeign】基础使用
  • Kubernetes一网络组件概述
  • Java比较器
  • 如何在 vscode 上用 git 将项目 push 到远程仓库 and 常用Git 命令
  • 剧本杀小程序系统开发:重塑社交娱乐新生态
  • 【开题答辩全过程】以 基于Spring Boot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案
  • 神经网络1——sklearn的简单实现
  • leetcode笔记
  • 20.29 QLoRA适配器实战:24GB显卡轻松微调650亿参数大模型
  • 堡垒机(跳板机)入门指南:构建更安全的多服务器运维架构
  • LINUX 91 SHELL:删除空文件夹 计数