起因
今天在本地送出了點代碼,但到伺服器上git pull的時候提示No space left on device,第一反應是猜想可能硬碟滿了(很有可能是log導緻的),不過想想又覺得不太可能,這台伺服器上隻部署了一個應用,檢視項目占用空間也不大。
解決過程
1、作為一個linux菜鳥,第一時間百度查關于檢視硬碟使用情況的指令
[root@iZ23nce0j6gZ ~]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/hda1 20G 2.4G 18G 13% /
tmpfs 1006M 0 1006M 0% /dev/shm
上面顯示的内容是解決後的,因為終端關閉過,是以解決前的現象重制不出了,大緻就是隻顯示了第二行的内容,解決前是沒有中劃線那行的。當時就在想WTF
2、于是乎繼續查指令,無意間看到df /home這條指令,用之
[root@iZ23nce0j6gZ ~]# 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@iZ23nce0j6gZ ~]# lsof test.log
這指令隻能在檔案被寫入的時候才能顯示内容,最後雖然得到了個程序号,但是因為寫完程序就關閉了,是以還是查不到
5、突然我靈光一閃,隐約記起來之間自己寫了個測試的crontab定時腳本
[root@iZ23nce0j6gZ ~]# crontab -l*/1 * * * * /usr/bin/curl http://www.baidu.com >> /root/test.log 2>&1
果然是它,是它,是它,就是它~
6、把test.log檔案删掉,并停止該腳本問題就解決了
總結