Linux根目占满造成无法自动补全命令的解决方法
使用命令补全(tab键)时提示:
-bash: cannot create temp file for here-document: No space left on device ls -bash: 无法为立即文档创建临时文件: 设备上没有空间 -bash: 无法为立即文档创建临时文件: 设备上没有空间
查看挂载点占用情况:df -h
查看占用超过1g的目录:du -sh * |grep -E 'G|T'
注:不在上图中挂载点的目录(usr/var/root)都属于/挂载点
大多数情况为数据或日志等文件过多造成的。 比如mongo、docker、redis
迁移mongo数据
查看mongo配置文件:cat /etc/mongod.conf
停止mongo服务:systemctl stop mongod
迁移数据文件:
mv /var/lib/mongo /home/sharefile/mongo
echo "" > /home/sharefile/mongo/mongod.log
修改配置文件:vim /etc/mongod.conf
# where to write logging data.
systemLog:
destination: file
logAppend: true
#path: /var/log/mongodb/mongod.log
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
#dbPath: /var/lib/mongo
dbPath: /home/sharefile/mongo
重启服务:mongod -f /etc/mongod.conf
测试:mongo localhost:47017
迁移docker数据 按照教程配置docker存储路径)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"data-root": "/home/softdata/docker",
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com"
]
}
EOF
sudo systemctl stop docker
sudo rsync -aP /var/lib/docker/ /path/to/your/docker
sudo mv /var/lib/docker /var/lib/docker.old
systemctl start docker
#测试通过后可删除备份文件
#sudo rm -rf /var/lib/docker.old
总结: 使用yum install方式安装的文件需要注意日志文件/数据文件等的路径,安装前配置一个容量大的目录。
参考