mac微信聊天记录附件清理归档备份方案

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 或者其他存储盘。

Copy
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 公众号，留言索取。😝