博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
no space left on device 解决磁盘空间
阅读量:6947 次
发布时间:2019-06-27

本文共 5750 字,大约阅读时间需要 19 分钟。

今天在检查gitlab备份情况时,发现scp过程中提示no space left on device,这意味着我安装着gitlab的服务器没有空间了

方法

1. 使用命令 : du -sh * 它用来查看文件或目录所占用的磁盘空间的大小。2. 进入占用空间比较大的文件夹,删除复制代码

命令

选项 作用
-h 以K,M,G为单位,提高信息的可读性
-a 显示目录中个别文件的大小
-s 仅显示总计
-c 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-l 重复计算硬件连接的文件

Linux下各个目录的作用及内容

首先你得知道linux每个目录下的作用和内容,你才可以删除文件

选项 作用
/bin 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等
/boot 放置linux系统启动时用到的一些文件。/boot/vmlinuz 为 linux 的内核文件,以及 /boot/gurb。建议单独分区,分区大小100M即可
/dev 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt
/etc 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份
/home 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~edu 表示用户 edu 的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/lib 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为 /lib/modules
/lost+fount 系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于 /disk 中,此目录下就会自动产生目录 /disk/lost+found
/mnt: /media 光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
/opt 给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的 KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
/proc 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
/root 系统管理员root的家目录,系统第一个启动的分区为 /,所以最好将 /root和 /放置在一个分区下
/sbin 放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用
/tmp 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv 服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
/usr 应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls 时会查询 /usr/share/man/man1/ls.1.gz 的内容建议单独分区,设置较大的磁盘空间
/var 放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间

排查

既然出现了问题,那么就要去解决

gitlab-backup@gitlabbackup-System-Product-Name:~$ df -h文件系统        容量  已用  可用 已用% 挂载点udev            3.9G     0  3.9G    0% /devtmpfs           785M  9.4M  776M    2% /run/dev/sda1       103G   93G  4.5G   96% /tmpfs           3.9G  192K  3.9G    1% /dev/shmtmpfs           5.0M  4.0K  5.0M    1% /run/locktmpfs           3.9G     0  3.9G    0% /sys/fs/cgrouptmpfs           785M   32K  785M    1% /run/user/108tmpfs           785M     0  785M    0% /run/user/1000复制代码

进入var目录下,查看每个子目录的大小,发现是仅仅是opt就占有了72G

gitlab-backup@gitlabbackup-System-Product-Name:/var$ sudo du -sh *[sudo] gitlab-backup 的密码: 4.8M	backups576M	cache4.0K	crash295M	lib4.0K	local0	lock41M	log4.0K	mail4.0K	metrics72G	opt0	run4.0K	snap52K	spool68K	tmp复制代码

进入opt/gitlab目录下,查看每个子目录的大小,发现backups就占有了66G

gitlab-backup@gitlabbackup-System-Product-Name:/var$ cd opt/gitlab-backup@gitlabbackup-System-Product-Name:/var/opt$ sudo du -sh *72G	gitlabgitlab-backup@gitlabbackup-System-Product-Name:/var/opt$ cd gitlab/gitlab-backup@gitlabbackup-System-Product-Name:/var/opt/gitlab$ sudo du -sh *4.0K	auto_recovery_backup.sh4.0K	auto_remove_backup.sh66G	backups4.0K	bootstrapped8.0K	gitaly6.1G	git-data8.0K	gitlab-ci8.0K	gitlab-monitor5.9M	gitlab-rails8.0K	gitlab-shell12K	gitlab-workhorse8.0K	log40K	logrotate48K	nginx8.0K	node-exporter12K	postgres-exporter265M	postgresql126M	prometheus4.0K	public_attributes.json124K	redis4.0K	trusted-certs-directory-hash复制代码

进入backups目录下,查看每个子目录的大小,发现tmp就占有了60G,其中1560290789_2019_06_12_10.7.2-ee_gitlab_backup.tar是备份包

gitlab-backup@gitlabbackup-System-Product-Name:/var/opt/gitlab/backups$ sudo du -sh *6.2G	1560290789_2019_06_12_10.7.2-ee_gitlab_backup.tar112K	log60G	tmp复制代码

进入tmp目录下,发现default-repositories好多好大

gitlab-backup@gitlabbackup-System-Product-Name:/var/opt/gitlab/backups/tmp$ sudo du -sh *4.0K	artifacts.15585132694.0K	artifacts.15595443024.0K	artifacts.15595456774.0K	artifacts.15595512474.0K	artifacts.15595520814.0K	artifacts.15595526054.0K	artifacts.15595539874.0K	artifacts.15596447864.0K	artifacts.15598695154.0K	artifacts.15601319694.0K	artifacts.15603071464.0K	builds.15585132694.0K	builds.15595443024.0K	builds.15595456774.0K	builds.15595512474.0K	builds.15595520814.0K	builds.15595526054.0K	builds.15595539874.0K	builds.15596447864.0K	builds.15598695154.0K	builds.15601319694.0K	builds.15603071464.0K	default-repositories.old.15585131316.1G	default-repositories.old.15595441546.1G	default-repositories.old.15595455206.1G	default-repositories.old.15595510236.1G	default-repositories.old.15595518726.1G	default-repositories.old.15595524026.1G	default-repositories.old.15595537746.1G	default-repositories.old.15596445716.1G	default-repositories.old.15598692584.7G	default-repositories.old.15601317536.1G	default-repositories.old.156021854433M	default-repositories.old.1560306929,QCON,云栖社区,腾讯云,架构分享资料4.0K	lfs.15585132694.0K	lfs.15595443024.0K	lfs.15595456774.0K	lfs.15595512474.0K	lfs.15595520814.0K	lfs.15595526054.0K	lfs.15595539874.0K	lfs.15596447864.0K	lfs.15598695154.0K	lfs.15601319694.0K	lfs.15603071464.0K	pages.15585132698.0K	pages.15595443028.0K	pages.15595456778.0K	pages.15595512478.0K	pages.15595520818.0K	pages.15595526058.0K	pages.15595539878.0K	pages.15596447868.0K	pages.15598695158.0K	pages.15601319698.0K	pages.15603071464.0K	uploads.15585132695.7M	uploads.15595443025.7M	uploads.15595456775.7M	uploads.15595512475.7M	uploads.15595520815.7M	uploads.15595526055.7M	uploads.15595539875.7M	uploads.15596447865.7M	uploads.15598695155.7M	uploads.15601319695.7M	uploads.1560307146复制代码

鉴于tmp存放的临时文件,那么就乖乖放进垃圾箱中吧,给gitlab腾位子

sudo rm -rf tmp复制代码

避免gitlab恢复过程产生tmp,就写个定时删除tmp的命令

# 仇飞鸿编辑于2019-6-12 添加定时任务,每天上午10点,自动删除var/opt/gitlab/backups/tmp0  10   * * *   root    rm -rf /var/opt/gitlab/backups/tmp复制代码

大功告成

参考文献


  1. 欢迎大家进群,参与讨论
  2. 一起进步,是我们的准则,我们是前端的一道美丽风景线
  3. 请加我的vx:qiufeihong0203,拉你进群

  1. 欢迎关注feihong的。


版权声明

转载时请注明作者 qiufeihong 以及本文地址:

转载于:https://juejin.im/post/5d00955951882565b460263b

你可能感兴趣的文章
在caffe中增加和convolution相同的层
查看>>
Java设计模式(四) 装饰 代理模式
查看>>
Filter过滤非法字符
查看>>
嵌入式系统烧写uboot/bootloader/kernel的一般方法
查看>>
PyCharm4注册码--软件安装
查看>>
【转】物业管理与移动互联网科技|微信公众平台,物业app,物业O2O
查看>>
patch与diff的恩怨
查看>>
蓝桥杯——先进的多说好树遍历
查看>>
Hdu 5444 Elven Postman dfs
查看>>
Nagios显示器MySQL一个错误:NRPE: Unable to read output具体的解决过程
查看>>
精讲母函数
查看>>
读取数据库中timestamp类型去掉毫秒
查看>>
(四)左右ng-app自己主动bootstrap相框
查看>>
九度OJ 1068 球半径和数量 (模拟)
查看>>
了解如何高速嵌入式?
查看>>
HDU4960Another OCD Patient(间隙dp,后座DP)
查看>>
Spark on Yarn遇到的问题及解决思路
查看>>
swift知识点 [1]
查看>>
(转载)北上广深房价只会涨不会降
查看>>
移动存储卡仍然用FAT32文件系统的真相
查看>>