【Linux 从基础到进阶】 常用 Shell 脚本示例解析
常用 Shell 脚本示例解析
Shell 脚本是系统管理员和开发者日常工作中不可或缺的工具。通过它们,我们可以自动化繁琐的任务,如系统备份、资源监控、批量文件处理等。本文将详细解析一些常见的 Shell 脚本示例,并帮助你理解如何将这些脚本应用到实际工作中。
1. 批量文件重命名脚本
示例介绍
有时需要批量修改文件的名称,例如将某个目录中的所有 .txt
文件重命名为 .bak
扩展名,或者按日期或编号进行重命名。
脚本内容
#!/bin/bash
# 批量重命名脚本for file in *.txt; do# 提取文件名不包含扩展名filename=$(basename "$file" .txt)# 将 .txt 文件重命名为 .bakmv "$file" "${filename}.bak"
doneecho "所有 .txt 文件已成功重命名为 .bak"
解析
for file in *.txt; do
: 通过通配符*.txt
获取当前目录下所有.txt
文件。basename "$file" .txt
: 提取文件的基础名称,即去除.txt
扩展名。mv "$file" "${filename}.bak"
: 使用mv
命令将文件重命名为.bak
。
2. 监控系统磁盘使用情况并报警
示例介绍
此脚本用于监控系统的磁盘使用情况,当使用率超过设定的阈值时,发送报警邮件通知管理员。
脚本内容
#!/bin/bash
# 磁盘使用监控脚本THRESHOLD=90
LOGFILE="/var/log/disk_monitor.log"
EMAIL="admin@example.com"# 获取每个挂载点的磁盘使用情况
df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output; do<