实战指南raspberry-pi
Raspberry Pi 每日系统巡检脚本
创建一个普通用户可运行的 Bash 脚本,把网络、内核、磁盘、内存、运行时间和温度追加到私有日志。
把多条只读检查命令组织成一个 Bash 脚本。每次运行都向当天日志追加一段结果;日志默认仅当前用户可读写。
-
Raspberry Pi OS 已提供 Bash 与常用系统命令。
-
当前用户可写入自己的家目录,不需要
sudo。 -
日志可能包含局域网地址、系统版本和资源使用信息,只保存在本机,不直接发布。
-
先确认解释器:
Terminal window command -v bash
-
创建脚本目录:
Terminal window mkdir -p -- "$HOME/day2/scripts"nano "$HOME/day2/scripts/sys-check.sh" -
写入以下完整脚本:
#!/usr/bin/env bashumask 077export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binLOG_DIR="$HOME/day2/logs"LOG_FILE="$LOG_DIR/system-check-$(date +%F).log"mkdir -p -- "$LOG_DIR"chmod 700 -- "$LOG_DIR"touch -- "$LOG_FILE"chmod 600 -- "$LOG_FILE"{printf '===== System check: %s =====\n\n' "$(date --iso-8601=seconds)"printf '[Network]\n'hostname -Iprintf '\n[Kernel]\n'uname -srmoprintf '\n[OS]\n'if [[ -r /etc/os-release ]]; thencat /etc/os-releaseelseprintf '%s\n' '/etc/os-release unavailable'fiprintf '\n[Disk]\n'df -hprintf '\n[Memory]\n'free -hprintf '\n[Uptime]\n'uptimeprintf '\n[Temperature]\n'if command -v vcgencmd >/dev/null 2>&1; thenvcgencmd measure_tempelseprintf '%s\n' 'vcgencmd unavailable'fiprintf '\n'} >> "$LOG_FILE" 2>&1printf 'Saved locally: %s\n' "$LOG_FILE" -
在 Nano 中按
Ctrl+O、Enter 保存,按Ctrl+X退出。仅给所有者增加执行权限并运行:Terminal window chmod u+x -- "$HOME/day2/scripts/sys-check.sh""$HOME/day2/scripts/sys-check.sh"
LOG_FILE="$HOME/day2/logs/system-check-$(date +%F).log"ls -l -- "$LOG_FILE"test -s "$LOG_FILE" && sed -n '1,80p' -- "$LOG_FILE"日志应非空,并包含 Network、Kernel、Disk、Memory、Uptime 和 Temperature 小节。脚本会把目录收紧为 700、日志收紧为 600;vcgencmd 不存在时应记录 vcgencmd unavailable,脚本仍正常完成。
先检查目标,再交互式删除脚本和日志:
ls -la -- "$HOME/day2/scripts" "$HOME/day2/logs"rm -i -- "$HOME/day2/scripts/sys-check.sh"rm -ri -- "$HOME/day2/logs"rmdir -- "$HOME/day2/scripts" "$HOME/day2" 2>/dev/null || true日志包含诊断信息。确认不再需要后才删除;若要保留历史记录,只撤销执行权限即可:
chmod u-x -- "$HOME/day2/scripts/sys-check.sh"| 现象 | 检查 | 处理 |
|---|---|---|
Permission denied |
ls -l 是否有所有者执行位 |
运行 chmod u+x,不要改成 777。 |
bash 不存在 |
command -v bash |
本指南面向 Raspberry Pi OS;不要直接在只含 BusyBox sh 的系统运行。 |
vcgencmd unavailable |
command -v vcgencmd |
非 Raspberry Pi 或未安装该工具时属于预期降级。 |
| 日志持续增大 | ls -lh "$HOME/day2/logs" |
定期归档或删除旧日志;自动运行前配置保留策略。 |
| 页面准备发布 | 日志是否含 IP、主机名和版本信息 | 只整理方法,不上传真实日志文件。 |