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或者其他存储盘。
代码语言:javascript复制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公众号,留言索取。