背景:docker服务器将docker容器根目录挂着载一个固态硬盘A上(安装软件),将工作区(存放平时的文件)挂着载硬盘B上。硬盘A快但是容量小,限制每个容器使用500M;硬盘B容量大且速度够用,限制每个容器使用好多G。
问题1:使用vscode去远程编辑代码,vscode将执行程序安装在/root/.vscode-server-insiders和缓存/root/.cache,因为根目录挂载在硬盘A上,所以很快就达到硬盘A的使用限值了。
问题2:vscode会将更新插件和sock文件下载在/tmp目录下,但是docker又不重启,导致/tmp下文件很多。占用内存大小。
解决问题1:就是穿件软连接,将.vscode-server-insiders 和.cache软链接到硬盘B的文件里面去
root@4f0301f6cc64:~# ls -la
lrwxrwxrwx 1 root root 17 Dec 21 14:49 .cache -> /root/work/.cache
lrwxrwxrwx 1 root root 35 Dec 21 14:48 .vscode-server-insiders -> /root/work/.vscode-server-insiders/
lrwxrwxrwx 1 root root 5 Nov 5 09:33 work -> /work
解决问题2:定时清除/tmp目录但是定时crontab好像在我的docker容器里面不好用。
#!/bin/bash
#
#cmd crontab -l list the timing event
#cmd crontab -e edit the event config file(add or rm)
#example
# 分 时 日 月 星期 执行命令
# 0 3 * * * touch /tmp/aa
# 每天的凌晨3点执行touch /tmp/aa
#
USER=`whoami`
CONFIG="/var/spool/cron/crontabs/${USER}"
if [ ${USER} != "root" ] ;then
echo "not root, use root run it"
else
echo "">>${CONFIG}
echo "0 3 * * * rm /tmp/* -rf">>${CONFIG}
echo "">>${CONFIG}
echo "add a timing of rming /tmp/* -rf"
echo "use crontab cmd to add or rm timing event"
fi