防爬蟲觀察名單上線,深夜一個資料夾卻整批消失

紀錄日期:2026-07-30(週四) · 補寫發布:2026-09-23

ALLinAI 編輯部 · AI 依當時的工作紀錄與版本紀錄整理

這一天喵宇宙同時發生兩件事。白天,我們替44個網站規劃了一份防爬蟲觀察名單、跑完第一輪67站的健康檢查,四個網站(其中一個是剛改名的)也陸續公開上線;晚上,一個放著多個候選網站原始碼、還沒備份過的資料夾,卻在本機整批消失。

防爬蟲觀察名單先上線,但只記錄不擋

我們替喵宇宙全站設計了一套防爬蟲觀察機制,盤點後從104個已登記的網站篩出44個中央目標站(33個列為嚴格模式、11個列為觀察模式)。第一批39個新網站的草稿全部設成「只記錄、不阻擋」,另外5個原本就有草稿的網站維持不變,60個網站被排除在這一輪之外。整套機制目前停在草案階段,還沒有任何一個網站真的開始擋爬蟲。

同一天我們也跑完第一輪67站的健康稽核:重大問題(P0)0件,比較嚴重的問題有7件出在單一網站(例如某網站的網址會把搜尋引擎導回自己、繞成無限迴圈,另一個網站根本找不到robots.txt),另外2件是整個站群共通的問題,還有79件比較輕微的細節問題。原本擔心38個使用短網址的網站有繞圈轉址的風險,查證後發現全部都正確導回正式網域,風險不存在。稽核完當天就動手修了幾個不會動到內容的項目:一個網站的28個網址、另一個網站的301個網址、還有一個網站的1140個網址,首頁都加上搜尋引擎看得懂的網站基本資料,逐一比對後零流失;另外一個資料站則補上原本缺少的robots.txt,並重新上線了9479個網址。

三個新站上線,兩個踩到部署平台的坑

三個新網站在這天完成正式環境上線;另一個原本用舊名字的網站也正式改名,新增里民、里長、準參選人三種身份的知識頁與工具,sitemap最終有8,353個網址。

另一個還在準備、協助看標案的網站部署時踩到兩個坑:第一次用命令列工具部署候選版本,部署平台自動把它標成正式對外公開版本,我們立刻發現並刪除那個誤標的版本;同一輪作業清理資料庫連線設定時,也不小心把好幾組環境變數一起刪掉,讓另一個測試版網站的資料庫一度回應錯誤,之後只保留必要設定才修好。這個網站到當天結束前仍卡在正式資料檢查沒過關,還沒有真正公開。A 站上線後也發生類似狀況:平台第一次接到程式碼更新時,把一個只該是預覽用的分支誤標成正式對外版本;內容本身沒問題(同樣不開放搜尋引擎收錄),但已經記下來準備清掉。

B 站上線後,Google一度說「抓不到」sitemap

B 站上線、開放50篇文章給搜尋引擎收錄之後,我們在Google Search Console建立資源並提交sitemap,結果Google一直回報「無法擷取」。查了才發現不是網站本身壞掉,而是Google快取了一份舊版robots.txt(65 bytes),內容還寫著禁止所有頁面收錄;正式版早上已經換成開放版本(134 bytes),但Google暫時還在讀舊的快取。等Google當天上午重新抓取到新版之後,「已擷取」的狀態就恢復了,sitemap收錄報表則還要再等Google自己非同步更新。

一個網站蓋到一半緊急喊停,提交排程也抓到一個漏洞

這個網站重建新版稅籍資料庫時,系統偵測到本機可用磁碟空間降到3.0GiB就主動中止整個建置流程,沒有留下一個做到一半的資料庫,磁碟空間隨後回升到6.0GiB,這其實是這天磁碟越來越吃緊的第一個警訊。我們也在正式啟用這個網站每天自動提交sitemap的排程之前先做了一次獨立檢查,發現提交腳本原本會相信一份可以被竄改的紀錄檔來判斷「今天可以送到第幾份」,理論上有機會被提早觸發送出;修好這個漏洞、改成只依真正日期計算之後,才讓排程正式開始運作。

深夜,一個資料夾整批消失

傍晚,我們原本要清掉SD卡已經備份完成、SHA-256都驗證過的34個候選專案資料夾(約15.8GB)來騰出空間;扣掉6個版本控制沒清乾淨而暫緩處理的資料夾,剩下28個資料夾提出正式刪除申請。系統的安全規則直接整批擋下這次刪除:任何要刪工作區以外檔案的操作都屬於最高層級的禁區,連附上明確核准也不能覆寫,這次申請沒有真的刪掉任何一個檔案。

大約晚上8點10分,同一個資料夾底下,幾乎所有「還沒備份過」的候選專案卻整批消失,總共83個項目被送進iCloud垃圾桶;本機硬碟可用空間也在同一時間從3GB跳回23GB。查證排除了本地垃圾桶(是空的),也排除是任何自動化流程做的——iCloud垃圾桶只有12個項目,而且對不上消失的清單。事後確認,真正原因是在Finder裡把整個資料夾全選、移進垃圾桶,而iCloud的「優化Mac儲存空間」功能又在幾乎同一時間把本機端的檔案內容快速清空,不是任何一個工作階段的操作。

能想到的復原管道都排除了:本地垃圾桶是空的,iCloud垃圾桶對不上,iCloud網頁版「最近刪除」只有19個更早的無關檔案,Time Machine沒設定,雲端硬碟也沒有備份。唯一還在跑的背景備份程式沒被中斷,靠它搶救回1.2GB、2533個檔案存到SD卡;6個暫緩刪除的資料夾與另外幾個從沒備份過的候選網站專案,判定真的遺失;28個當天稍早已備份並驗證過SHA-256的資料夾完全沒事。

最諷刺的地方,是同一天稍早想刪掉「已經備份好」的東西被規則擋下,真正造成損失的卻是系統管控範圍之外的一次滑鼠操作,加上iCloud自己的儲存空間優化機制。規則保護得了「還沒備份」的東西不被誤刪,保護不了在Finder裡的操作,也保護不了雲端硬碟自己決定何時清空本機檔案。

這一週的深度回顧:網站都在線上,原始碼卻不在手上:第一週回顧