moneyslow.com

tmp目录下puppeteer_dev_chrome_profile 占用磁盘空间问题

nodejs安装没有npm命令

nodejs安装没有npm命令

有安装截图工具puppeteer 的,看看:/tmp目录下 ,直接干到100%磁盘

puppeteer_dev_profile是透过puppeteer操作Headless Chrome时会在 /tmp 自动产生的文件夹。倘若程序没有正确关闭chrome进程﹐/tmp/puppeteer_dev_profile-* 将无法自动回收并残留在操作系统上,佔用不必要的硬盘空间。

Github上已有人提出这个问题 ,而其解决方法 是程序在关闭headless chrome后接着移除相关文件夹。办法不错,前提是完成任务后需要主动关闭chrome,而且在移除puppeteer_dev_profile之前要祈求程序不要崩溃。

可惜我这边的是长时间运行的web service,chrome不会关 ,使用pm2管理程序重启,想简单一点移除多余的文件夹就可以了 (每个puppeteer_dev_profile佔 1 ~ 2 GB 不等,机器真的吃不消~)所以就组装一下以下shell command︰

ls -t /tmp | grep puppeteer_dev_profile | tail -n 2 | awk '{print "/tmp/"$1}' | xargs -l1 rm -rf

合共5个步骤用pipe串接︰

首先ls -t /tmp按最近修改时间 (modification time) 逐一列出/tmp下的档案名字;

grep puppeteer_dev_profile筛选出名字包含puppeteer_dev_profile的行;

tail -n 2截取由第2行 (包括第2行) 至最后一行 (包括最后一行),因為第1个puppeteer_dev_profile文件通常正在被程序使用中;

awk '{print "/tmp/"$1}'把每行文件名字加上前缀/tmp/,变成full path;

最后透过xargs -l1把每行full path接在rm -rf后执行,逐一永久移除/tmp/puppeteer_dev_profile-* 文件。

把这个放进crontab,视情况我每天执行一次,注意权限是否足够,每个指令建议改用full path,例如ls改为/usr/bin/ls。

Exit mobile version