右鍵已鎖定
logo

手動清除time machine舊備份

最近覺得我的time capsule空間有越來越小的趨勢
是時候來清理一下了
其實如果機器運作正常,很老的備份基本上是沒有存在的必要
比如說一年多前那種,那種你也不太可能再把它撈回來用了
所以不如把它清掉吧

我這邊寫的方法是把備份放在time capsule (外接硬碟也通用)
但是如果你是備份在本機端的,我就不確定了,你可能要自己試試看
我只會一個指令把本機端的備份全砍了,那就是“停用本機備份” XD

 sudo tmutil disablelocal 

重開機之後,你的所有本機備份都會被刪光光
如果備份是在外部
首先先來看一下備份有多少

 sudo tmutil listbackups 

這個指令執行下去可以順便把備份磁碟掛上來
你可以下df看一下,會有一個/Volumes/Time Machine Backups的磁區
當然你要先連得到time capsule
外接硬碟的話也要先把硬碟接上去 (不然是在做身體健康的嗎)
如果你的備份很多,跟我一樣一年半多了,那這個指令可能會跑一下子
結果出來你會發現一堆資料夾,他會以日期排序
就選你想殺的殺掉吧
像我是一次把2013年的全殺了 (注意:會砍超久)

 sudo tmutil delete "資料夾" 

以下是我刪除的截圖
可以看到2013年四月到現在都還在
每個備份都大概1GB~2GB,累積起來也是很恐怖的
螢幕快照 2014-08-25 23.45.40

如果你怕做錯,下面有個小script,可以幫你直接刪掉最老的一個備份
缺點就是每次只能刪一個備份,對上面指令不熟就一個一個慢慢來吧
如果你執行這個程式都不會…很簡單
把下面程式整個copy起來,到一個文字擋貼上
假設存檔成clean.sh 存在哪隨便你,自己找得到就好

#!/bin/bash
COMPUTER_NAME=$(/usr/sbin/scutil --get ComputerName)
NBACKUPS=$(/usr/bin/tmutil listbackups |
  /usr/bin/grep "$COMPUTER_NAME" |
  /usr/bin/wc -l)
OLDEST_BACKUP=$(/usr/bin/tmutil listbackups |
  /usr/bin/grep "$COMPUTER_NAME" |
  /usr/bin/head -n1)
LATEST_BACKUP=$(/usr/bin/tmutil latestbackup)
echo Latest backup: $LATEST_BACKUP
if [[ -n "$LATEST_BACKUP" && "$LATEST_BACKUP" != "$OLDEST_BACKUP" ]]
then
 echo -n "$NBACKUPS backups. Delete oldest: ${OLDEST_BACKUP##*/} [y/N]? "
read answer
 case $answer in
  y*)
echo Running: /usr/bin/sudo /usr/bin/tmutil delete "$OLDEST_BACKUP"
/usr/bin/sudo time /usr/bin/tmutil delete "$OLDEST_BACKUP"
;;
*)
 echo No change
 ;;
 esac
 else
 echo "No backup available for deletion"
 fi

然後打開終端機,輸入

 sudo sh clean.sh 

跑完它會列出你最老的備份,問你yes or no
打個y,就開始刪除了

刪除備份真的會做很久,最好在這時候先把自動備份停掉
不然又要刪備份,又要做備份
硬碟會受不了,除了超慢之外,壽命也會減少

3,120 次瀏覽