在这里插入图片描述

问题出现

有了AI后,感觉开发进入全自动了,今天开开心心连接服务器,结果遇到这个问题,没用空间了?!

df -h检查磁盘容量
在这里插入图片描述
我们可以看到/home目录下还有容量,但是/根目录下已经100%占用了,通过cursor连接服务器开发的时候,cursor会建立一个socket文件,在tmp目录下用于通信,所以,我们要做的就是把/tmp目录软链接出来。
但是!/tmp目录和一般的目录不一样,所以这里还不能用软链接,那可怎么办呐!
因为/tmp是一个系统目录,用来存放临时文件,在系统重启后,某些系统可能会重新创建/tmp目录,覆盖我们的软链接。我们期望我们这个配置永久生效,所以我们需要用systemd,通过创建一个挂载单元来永久解决这个问题。

组合拳解决问题

  1. 首先,创建目标目录:
sudo mkdir -p /home/tmp
sudo chmod 1777 /home/tmp
  1. 创建systemd挂载单元文件:
sudo tee /etc/systemd/system/tmp.mount > /dev/null << 'EOF'
[Unit]
Description=Temporary Directory /tmp
Documentation=man:hier(7)
Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
ConditionPathIsSymlink=!/tmp
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target
After=swap.target

[Mount]
What=/home/tmp
Where=/tmp
Type=none
Options=bind
SloppyOptions=yes

[Install]
WantedBy=local-fs.target
EOF
  1. 重新加载systemd配置并启用挂载单元:
sudo systemctl daemon-reload
sudo systemctl enable tmp.mount

4.将现有/tmp中的内容复制到新目录(可选):

# 备份当前/tmp中的内容
sudo cp -a /tmp/.[!.]* /tmp/* /home/tmp/ 2>/dev/null || true
  1. 重启系统以应用更改,或立即激活挂载:
sudo systemctl start tmp.mount

确认效果

6.检查一下挂载状态

systemctl status tmp.mount

在这里插入图片描述
看上去不错

7.在看一下挂载是否真的生效了

findmnt /tmp

在这里插入图片描述
上图里可以看到source已经从之前df -h图里的nvme0n1p2变成了/dev/sd1了,

成功

回到cursor,发起连接,已经可以看到正常下载服务器了,
在这里插入图片描述
下载完就连接上咯~! 继续快乐编程吧
在这里插入图片描述

后记

我怎么知道要映射/tmp出来呢

1.找一台有容量的服务器发起连接

建立连接后,在这台正常的服务器上检查哪路径会用到根目录,通过下面的指令查看cursor相关进程和目录文件

ps aux | grep -i cursor
find / -name "*[cC]ursor*" -type d 2>/dev/null

在这里插入图片描述
从上图中,我们可以看到,/tmp/cursor-1c785a19-99b0-43a4-89e7-5af09315b43e - 这是当前运行的Cursor实例在/tmp目录中使用的socket路径,而其他的大都是/home目录下的,这不会影响到我们的/目录,所以实际上,我们解决掉这个/tmp文件的创建问题,就可以实现cursor的链接了!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐