第 24 章 编写脚本实用工具¶
约 201 个字 23 行代码 1 张图片 预计阅读时间 1 分钟
备份、用户管理、系统审计三类典型运维脚本模式。
24.1 备份归档¶
Bash
# 按日期命名 tar 归档
backup_dir=/backup
source_dir=/home/user/data
date=$(date +%Y%m%d)
tar -zcf "$backup_dir/data-$date.tar.gz" "$source_dir"
# find 删旧备份(>7 天)
find $backup_dir -name "*.tar.gz" -mtime +7 -delete
要点:mktemp 安全临时目录;tar -zcf 一条命令归档;cron 定时。
24.2 批量用户¶
Bash
while IFS=',' read -r user pass; do
useradd -m "$user"
echo "$user:$pass" | chpasswd
done < users.csv
或 newusers batchfile(格式:user:pass:uid:gid:gecos:home:shell)。
24.3 系统审计¶
登录 Shell 审计(/etc/passwd 第 7 字段):
SUID/SGID 文件:
报告对比:按时间戳保存报告,diff old new 或 comm 比较差异。
24.4 健康检查与部署片段¶
Bash
#!/usr/bin/env bash
set -euo pipefail
URL=${1:-http://127.0.0.1:8080/health}
curl -sf "$URL" || { echo "health fail"; exit 1; }
# 零停机思路:新版本起在不同端口 → 健康检查 → 切 nginx upstream
pgrep -f 'myapp.jar' && kill -HUP $(pgrep -f 'myapp.jar') # 示例:发 HUP 重载