MAC OSX - 大量移除不需要的 TimeMachine 備份

這幾天在整理自己 NAS 的空間,發現 TimeMachine 佔掉硬碟裡許多的空間,甚至比我的 MacBook Air 本身 256G 的空間都還大上好幾倍,大概有個 1.x T的大小。進入細查之後才發現,原來從買了 MAC 之後,就沒有做過備份空間的清除,這就恐怖了。於是試著進入 TimeMachine 中刪除比較舊的備份。

進入 TimeMachine 之後,可以由右邊的時間軸點選你要選擇的時間點。

官方 Time Machine 備份
(Image from : Use Time Machine to back up or restore your Mac - Apple Support)

選擇到要刪除的備份快照後,點選如下圖上方的齒輪,即可以看到刪除的樣式。

很明顯的,這個方案只適合只有幾個需要刪除的情況。於是找到 Apple Develop 手冊上的說法,關於 TimeMachine 有一個 tmutil (Time Machine Utility) 的工具指令可以使用,tmutil 的功能非常多,舉凡建立新的快照、備份,甚至是進行兩個快照之間的差異比對他都可以。針對刪除不想要的 TimeMachine 備份則可以下以下指令。

1
sudo tmutil delete /full/path/to/backup/Backups.backupdb/machine/backup-name

以我自己的 MacBook Air 的話,備份路徑就是:

1
/Volumes/Time Machine 備份/Backups.backupdb/mouson's MacBook Air

完整路徑可能就是:

1
/Volumes/Time Machine 備份/Backups.backupdb/mouson's MacBook Air/2016-09-14-073950

可以看到 Time Machine 備份方式每個快照都會以時間日期的方式建立資料夾內容。因此我們就可以透過指令刪除一系列的就備份。

例如我要刪除 2014 年 1 月的所有備份,就可以執行以下指令:

1
sudo tmutil delete /full/path/to/backup/Backups.backupdb/machine/2014-01-*

網路上也可以找到有人寫了簡易的批次檔,如這個部落格:The Grey Blog: Shrink Your Time Machine Backups and Free Disk Space 所提供的範例。

1
2
3
4
5
6
$ sudo bash
Password:
$ for i in /Volumes/Time\ Machine\ Backups/Backups.backupdb/iMac/2014-01* ; \
do \
tmutil delete "$i" ; \
done

清除之後,在下次 Time Machine 備份的時候,系統就會使用掉你刪除的空間。而如果需要馬上清除空間,也可以使用 MAC 提供的另外一個工具:hdiutil 詳細的用法可以參考官方手冊:tmutil(8) Mac OS X Manual Page,清除的方法如下:

1
sudo hdiutil compact /path/to/disk-image

清除完畢之後,就可以獲得可用的空間了。我自己在執行 tmutil delete 時候發現,單獨刪除一個系統本身都還是需要重新計算一次變異,因此效率不是很好。刪除一個 1xG 的快照在無線網路的環境下刪了快半小時。所以,在使用 tmutil 做刪除時,如果時間不允許,砍掉重練或許也是一招。(這什麼結論呀!XD)

作者: 墨嗓 (陳佑竹)
連結: https://mouson.im/Notes/MAC/Remove-unnecessary-backups-from-TimeMachine/

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器