0x01#
微信聊天記錄中產生的文件,圖片以及音視頻都會緩存在本地磁碟,長時間不清理,就會佔用很大存儲空間。
雖然微信 mac 端版本有一個清理空間的功能,可以單獨直接刪除與某一個人或群的所有聊天文件,但是是直接刪除,沒得選擇和備份的機會。
這個事情就很尷尬了。網上搜了一圈也沒找到比較好的清理歸檔方案。大多是教你怎麼清理掉釋放空間,沒什麼意義。
0x02#
清理比較簡單,更想要的是能夠歸檔備份,因為有些聊天文件,會比較重要或者後面真的會有需要。聊天的文字倒不會佔用多大空間,主要是緩存的各種文件。
如果只是把本地微信緩存目錄直接同步到某個同步盤或者 nas 之類的,也不能很好地歸檔管理。
這裡簡單介紹一個方案吧。
寫一個簡單的 shell 腳本,根據文件時間篩選需要歸檔的比較舊的文件。
Mac 微信聊天文件目錄是:~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ Support/com.tencent.xinWeChat/2.0b4.0.9
然後下面,在電腦上登錄過的微信賬戶,會生成一個 id 目錄,例如:
fc4cea7edb2dde38c6ba91c9f1a5f288
。
該目錄下Message/MessageTemp
裡的就是各聊天單位所產生的聊天文件。
就在這個目錄下搜索篩選:
find ./ -mtime "+$clean_days"
這個命令就能篩選出超過 clean_days 天的文件,可以將這些文件歸檔到 nas 或者其他存儲盤。
find ./ -mtime "+$clean_days" -exec sh -c '
mkdir -p "$0/${1%/*}"
mv -v "$1" "$0/$1"
' "$backupDir" {} \;
這裡就是將篩選出的文件同步到備份盤,同時會創建好文件的層級目錄。這裡層級目錄的創建也很關鍵,便於後面恢復查詢這些文件。
backupDir
備份目錄,我這簡單利用 afp,掛載了 nas 上的一個共享文件夾。
相關知識,了解下https://support.apple.com/zh-cn/HT202181。
這裡貼一個掛載命令供參考:
mount_afp afp://username:password@host:port/volume backupDir
這樣就可以做清楚刪選歸檔還有備份恢復了。
看下效果:
可以按自己需要的時間段或者其他篩選條件歸檔。
0x03#
用 rsync 之類的遠程同步也可以,但是可能相對不是很靈活。不過後續也可以進一步研究完善一下。
0x04#
有需要完整方案腳本代碼的或者完整程序的可以關注一波 abitmean 公眾號,留言索取。😝