昨天朋友急匆匆发来消息:'刚给NAS升级固件,顺手点了重启,结果共享文件夹里上周的客户合同全没了!'——不是系统坏了,也不是硬盘坏了,就是更新重启那几秒,没等同步完就断电式重启了。
更新和重启,从来不是‘一键安全’
很多人把系统更新、固件升级、App重装当成‘修电脑’,点完‘立即更新’就去倒水,等弹出‘重启生效’再回来,顺手按了确定。但后台可能还在写入缓存、迁移数据库、重建索引。这时候硬重启,轻则临时文件损坏,重则元数据错乱,备份目录识别失败。
尤其用 rsync、rclone 或 Time Machine 做增量备份时,如果主盘正在被更新程序锁定写入,备份进程可能跳过变动中的文件,或记录一个不完整的快照状态。下次恢复时,你看到的是‘备份成功’,实际打开发现关键文档打不开、Excel 表格报‘文件已损坏’。
三招防住更新重启坑
1. 看清状态再动手
Windows 更新完成提示‘请重启以完成安装’,别急着点。右下角通知区域点开 Windows Update 图标,确认显示‘更新已完成,无需重启’或‘等待重启’;macOS 升级后,左上角苹果菜单若还有‘软件更新…’选项,说明后台仍在收尾。
2. 备份前先‘静默’5分钟
更新完毕、重启之前,手动触发一次完整备份(哪怕只是压缩打包当前项目文件夹),并确认备份校验通过。可以用这条命令快速比对:
shasum -a 256 /path/to/project.zip /backup/project_$(date +%F).zip两个哈希值一致,才真正算‘落袋为安’。
3. 给备份加个‘重启锁’
如果你常用脚本自动备份(比如每晚2点执行),建议在脚本开头加个检查逻辑:检测系统是否刚重启(uptime -s 时间距今是否<10分钟),若是,则跳过本次备份,并发微信提醒自己手动补做。简单示例如下:
#!/bin/bash
BOOT_TIME=$(uptime -s | cut -d' ' -f1,2)
NOW=$(date -d '5 minutes ago' '+%Y-%m-%d %H:%M')
if [[ "$BOOT_TIME" > "$NOW" ]]; then
echo "[WARN] System rebooted recently. Skipping backup." | mail -s "Backup Skipped" you@domain.com
exit 0
fi
# 正常备份流程继续...数码工坊不是教你怎么点鼠标,而是帮你绕开那些‘我以为没问题’的坑。更新要升,重启要快,但数据不能赌运气。