请注意,本文编写于  257  天前,最后编辑于  165  天前,内容可能已经不具有时效性,请谨慎参考。

0x01

image.png

微信聊天记录中产生的文件,图片以及音视频都会缓存在本地磁盘,长时间不清理,就会占用很大存储空间。

image.png

虽然微信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

这样就可以做清楚删选归档还有备份恢复了。

看下效果:

image.png

image.png

可以按自己需要的时间段或者其他筛选条件归档。

0x03

用rsync之类的远程同步也可以,但是可能相对不是很灵活。不过后续也可以进一步研究完善一下。

0x04

有需要完整方案脚本代码的或者完整程序的可以关注一波abitmean公众号,留言索取。😝

abitmean

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

Do what i love and just do it !