Linux 空間清理神器 ncdu

分享
ncdu story
ncdu

Linux 空間清理神器 ncdu

身為一個現代工程師,一定是要使用 AI 協助開發的,但上週使用到一半突然 AI 就卡住了,檢查是因為回傳的資料沒辦法 json parse。排查後發現原來是我的硬碟空間滿了 "Disk Usage: 100%" 的警報。

於是我使用了 df -h 想找出是誰吃光了我的硬碟時,看到的不是熟悉的掛載點,而是一個讓人困惑的路徑:/dev/mapper/ubuntu--vg-ubuntu--lv。而且沒辦法再往裡面挖檔案,因為它是一個 Block Device。瞬間我傻了...這到底是什麼?我的空間都去哪了?

用這篇文章來分享 AI 推薦給我的工具:ncdu,真的超方便!


讓我相見恨晚的神器

以前遇到空間不足,我總是傻傻地用 df + du -h 一層一層慢慢找。這種感覺就像是在大海撈針,撈到一半還會忘記剛剛哪個資料夾最大。

為什麼必須分享

它就像是終端機裡的檔案總管。執行 sudo ncdu -x / 後,它直接幫我把所有資料夾按大小排好隊,還附送直方圖。

我可以按 Enter 直接鑽進去 /var,發現原來是 /var/log 爆了;再鑽進去,揪出是那該死的 Nginx error log。如果確認是垃圾檔案,按個 d 就能直接刪除,不需要跳出去按刪除後再進來繼續找,操作滑順度滿分。

如果你只有 Command Line 可以使用,強烈建議你裝起來:

sudo apt-get install ncdu

不能安裝套件怎麼辦?

總有些時候,你啥工具都沒辦法安裝,連 apt-get 都不讓跑的時候,那麼只能回歸原始,用這行指令來土法煉鋼:

sudo du -h --max-depth=1 / | sort -hr | head -n 10

Docker 隱藏的垃圾王

這次排查中,我還發現另一個常常被忽略的隱形垃圾王:Docker

身為容器化擁護者,我卻常常忘了清垃圾。當我下了 docker system df,才發現那些已經停止的容器和沒人用的 dangling images 居然佔了快 20GB。

這時候,我有個大絕招(但在按 Enter 前我總是會手抖一下):

docker system prune -a

這指令會把所有沒在跑的容器和沒用到的映像檔一次清空。按下去的瞬間,看到噴出來的一堆 "Deleted..." 訊息,還有硬碟空間釋放出來的數字,就跟電量恐懼正一樣瞬間被治癒了。


結語

以前面對滿載的硬碟,我只會瘋狂地刪 log、清 docker;現在有了 ncdu 這神器,加上對 LVM 的這一點認識,我終於能從容地掌控伺服器的每一吋空間。還得是 AI 呀!

Read more

Gaze Guard 短影片旁白的 TTS 成本與隱私防護示意圖

短影片旁白的成本,其實比我想像低

我最近在做一支 Gaze Guard 的 20 秒產品介紹影片。 原本想說簡單做個動畫就好。 後來想說如果有配音,會感覺比較生動也比較能夠描述使用的情境和達成的效果。 這次我測了什麼 我測的是產品介紹影片用的英文旁白。 工具底層使用的是 Edge TTS,也就是 Microsoft Edge 的線上 Text-to-Speech 服務。常見的底層工具是 edge-tts。 這不是正式 Azure Speech API 的計費路徑。 在我這次的環境裡,它沒有要求 API key,也沒有回傳可見的 per-use billing。 所以這次測試本身,比較像是快速 prototype。 如果未來要正式商用、穩定大量產出,就要回頭看 Azure Speech、OpenAI TTS、ElevenLabs 這類正式付費方案。

By SteepingLogic
用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard

用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard

# 用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard 我有一台 local Hermes。 平常它就在自己的機器上跑。 可能是家裡的桌機。 可能是 NAS。 可能是一台一直開著的 Linux box。 也可能只是我自己的筆電。 問題是,人一離開那個網路,Hermes dashboard 就變成一個只存在於 localhost 的東西。 我想在外面打開它。 但我沒有 static IP。 沒有買網域。 也不想進路由器開 port forwarding。 因為那條路通常長這樣: * 找 public IP * 設定 NAT * 開 port * 處理防火牆 * 補 HTTPS * 設定憑證 * 再擔心 origin IP 被掃 非常友善。 所以這篇先走另一條路:

By SteepingLogic
Invoshot 開發日記|正向回饋

Invoshot 開發日記|正向回饋

想信很多人在開發的時候都常常會做一件事,那就是: 不斷地反覆思考,在腦袋內把流程跑過很多次,然後思考哪裡可以做得更好 不限坐在電腦前的時後,可能是在捷運上,在人行道上, 在馬桶上或是在洗澡的時候 🤪 我不斷地在想:AI 辨識完一張發票後,使用者接下來最需要的是什麼? 每個欄位都要核對嗎? 這麼多欄位真的不會漏看嗎? 所以我在 Invoshot 裡加了提醒功能。 辨識結果出來後,系統會把比較需要注意的地方標出來。 不是把所有不確定都丟給使用者,而是把他真正需要介入的那幾秒鐘留出來。 今天收到一則訊息: 今天用了有新增提醒功能很棒! 真的有變輕鬆 😎 看到這句的時候,我第一個想到的是: 原來那些只是我腦內風暴的優化項目,使用者是真的可以感受到差異的! 感覺又有動力了!

By SteepingLogic