阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux服务器提示No space left on device错误解决方法

132次阅读
没有评论

共计 1148 个字符,预计需要花费 3 分钟才能阅读完成。

起因

今天在本地提交了点代码,但到 Linux 服务器上 git pull 的时候提示 No space left on device,第一反应是猜想可能硬盘满了(很有可能是 log 导致的),不过想想又觉得不太可能,这台服务器上只部署了一个应用,查看项目占用空间也不大。

解决过程

1、作为一个 linux 菜鸟,第一时间百度查关于查看硬盘使用情况的命令

[root@www.linuxidc.com ~]# df -h
文件系统 容量 已用 可用 已用 % 挂载点
/dev/hda1 20G   2.4G  18G 13%  /
tmpfs   1006M 0  1006M 0%  /dev/shm

上面显示的内容是解决后的,因为终端关闭过,所以解决前的现象重现不出了,大致就是只显示了第二行的内容,解决前是没有中划线那行的。当时就在想 WTF

2、于是乎继续查命令,无意间看到 df /home 这条命令,用之

[root@www.linuxidc.com ~]# df /home
文件系统 1K- 块 已用   可用 已用 % 挂载点
/dev/hda1 20802016  20798393  3623 100%  /

终于发现这货了,不出所料占用率达到 100%,但是我还是不知道具体是哪些文件引起的,于是找了公司的运维哥哥看了下

3、运维哥哥出马,非同凡响,一下就找到了害群之马

[root@iZ23nce0j6gZ ~]# ll -ah
-rw-r--r--  1 root root 20G 06-08 10:38 test.log

哎哟卧槽,这什么鬼占了 20G,打开发现里面百度的 html 代码,难道是爬虫打的日志

4、查看该文件是谁在写入

[root@www.linuxidc.com ~]# lsof test.log

这命令只能在文件被写入的时候才能显示内容,最后虽然得到了个进程号,但是因为写完进程就关闭了,所以还是查不到

5、突然我灵光一闪,隐约记起来之间自己写了个测试的 crontab 定时脚本

[root@www.linuxidc.com ~]# crontab -l
*/1 * * * * /usr/bin/curl http://www.baidu.com >> /root/test.log 2>&1

果然是它,是它,是它,就是它~

6、把 test.log 文件删掉,并停止该脚本问题就解决了

ps:问题解决之后,运维哥哥还用 netstat -utlpn|grep 2 命令扫了下服务器开放的端口,建议改掉这些默认的,因为现在有很多黑客会扫描这些端口,存在安全隐患

总结

这次主要是自己搞的乌龙事件,测试完之后没有及时停止该定时脚本,导致一直打印 log 占满硬盘。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-06/132330.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1148字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中