好吧,之前的文章【无所不能的脚本】mac下的ramdisk 上了首页,哇哈哈,谢谢CCTV,谢谢51CTO。

wKiom1LeN9fgObHHAAO1Z5Y1qgo343.jpg


有了ramdisk以后,mac是不是不一样了?没感觉,好吧,ramdisk不是救世主,不能减少pm2.5的,只能提高部分文件的io效率,要想那啥的,换机器+ssd才是正道。


用了一阵子之后,发现ramdisk越来越大了没有?赶紧看下,果然啊,cache目录占了好多容量。

wKiom1LeNoKyUZirAAPlubBgjS4992.jpg

很大有没有,用软件清理么?不符合懒人哲学啊。作为有追求的屌丝it男,必须用脚本。


¥%¥#……%……&%……(再次省略无数的探索过程……)


结果就是我们来修改下logout.sh,去掉cache中的那些大家伙。不说了,上代码


#!/bin/sh
                                                            
DISK_NAME=RamDisk
MOUNT_PATH=/Volumes/$DISK_NAME
WORK_PATH=/etc/ramdisk
BAK_PATH=$WORK_PATH/$DISK_NAME.tar.gz
LISTFILE=$WORK_PATH/list
#设置最大的cache大小(字节)
MAX_CACHE_SIZE=50
#
cd $MOUNT_PATH
declare -a fa
i=0
for file in $(du -s Caches/* | sort -n)
do
  fa[$i]=$file
  let i=i+1
done
size=$((i/2))
echo "file number:"$size
cd $WORK_PATH
echo ".?*">$LISTFILE
for((i=0;i<$size;i++))
do
  if ((${fa[$((i*2))]}<(($MAX_CACHE_SIZE*1024*2)) ));then
    echo "add:"${fa[$((i*2+1))]}
  else
    echo ${fa[$((i*2+1))]}>>$LISTFILE
  fi
                                                             
done
if [ -e $MOUNT_PATH ] ; then
    cd $MOUNT_PATH
    tar --exclude-from $LISTFILE -czf $BAK_PATH .
fi

简单说明下,就是把cache目录下超过50M的目录直接不再保存,每次重启应用,这个目录就会自动重新生成的。

MAX_CACHE_SIZE 可以指定最大的cache目录大小


重启机器,再来看下

wKiom1LeNunj_6l0AAMQ6hsGT4U343.jpg

于是世界终于和平了…………