一、文件操作类
- 查找特定文件并输出路径:
#!/bin/bash
find /path/to/search -name "target_file.txt"
- 批量重命名文件:
#!/bin/bash
for file in *.old_extension; do
mv "$file" "${file%.old_extension}.new_extension"
done
- 统计文件夹下文件数量:
#!/bin/bash
file_count=$(ls -l /path/to/folder | grep -v ^d | wc -l)
echo "文件数量为:$file_count"
- 复制特定类型文件到指定目录:
#!/bin/bash
cp /source/folder/*.txt /destination/folder
二、系统监控类
- 监控 CPU 使用率:
#!/bin/bash
while true; do
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
echo "当前 CPU 使用率为:$cpu_usage%"
sleep 5
done
- 监控内存使用情况:
#!/bin/bash
free -m | grep Mem | awk '{print "总内存:"$2"MB,已使用:"$3"MB,可用内存:"$4"MB"}'
- 监控磁盘空间:
#!/bin/bash
df -h | grep /dev/sd*
三、自动化任务类
- 定时备份文件:
#!/bin/bash
BACKUP_DIR="/backup/folder"
SOURCE_DIR="/data/folder"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
tar -czf "${BACKUP_DIR}/backup_${TIMESTAMP}.tar.gz" "${SOURCE_DIR}"
- 自动清理临时文件:
#!/bin/bash
TMP_DIR="/tmp"
find "${TMP_DIR}" -type f -mtime +7 -delete
- 自动发送邮件报告:
#!/bin/bash
MAIL_SUBJECT="系统报告"
MAIL_BODY="这是系统的每日报告。"
echo "$MAIL_BODY" | mail -s "$MAIL_SUBJECT" recipient@example.com
更多脚本的思路:
- 结合具体的业务需求,例如在特定的软件部署过程中编写脚本。
- 针对不同的服务器配置管理任务,如设置环境变量、安装软件包等。
- 考虑与数据库交互的脚本,如备份数据库、执行 SQL 查询等。
- 根据日志分析需求,编写脚本提取关键信息、统计日志事件等。
- 针对网络管理任务,如检查网络连接、监控网络流量等。