访问服务器 request.getheader(origin)为null_服务器磁盘不足,1分钟快速搞定!
背景
對于系統(tǒng)服務(wù)器,一般由技術(shù)同學(xué)自行控制以及管理,但是針對服務(wù)器的監(jiān)控以及告警比較容易被人忽視。所以經(jīng)常會導(dǎo)致服務(wù)器上出現(xiàn)各種各樣的問題。最常見的問題,就是磁盤空間被服務(wù)日志給打滿了。當(dāng)服務(wù)器上磁盤已經(jīng)被打滿,服務(wù)無法正常運行時,需要做的第一個工作就是去找到?jīng)]用的日志文件,進行清空或者刪除操作。一、先看是不是那當(dāng)我們遇到類似的情況,比如訪問無反應(yīng),服務(wù)器上沒有日志了。第一步要做的,不是去想怎么處理,而是先確認(rèn)是不是磁盤問題引起的。命令很簡單df -h先看看我們對應(yīng)的目錄磁盤使用率,是否有富余。如果磁盤還有空間,那我們就要從其他角度去檢查服務(wù)的健康情況了。二、再看為什么當(dāng)我們發(fā)現(xiàn)具體目錄的使用率很高的時候,就可以進入到對應(yīng)的目錄里去使用下一個工具。du -s *查看當(dāng)前目錄所有文件夾占用的磁盤空間,此時占用磁盤空間數(shù)值的單位是K。如果想更直觀些,可以使用du -sh *,此時單位根據(jù)大小可以自動展示成K、M、G等單位。當(dāng)然也可以跟上排序,推薦使用du -s * | sort -nr | more。如果使用du -sh * | sort -nr最終的排序,并不是空間從大到小,而是數(shù)值較大的會排在前面,比如500M會排在2G之前,因為500比2要大。通過上面的方法,可以快速定位到占用空間較大的文件夾,就可以一層一層去找到占用磁盤空間較大的文件了。三、解決方案定位到大文件后,最簡單的,大家想到的都是直接rm -f 文件名。針對于歷史的日志文件。如果日志沒有用了,當(dāng)然可以用此種方案去處理,有一種情況,使用rm -f 文件名 是沒有作用的。那就是刪除的目標(biāo)文件,當(dāng)前是正在使用的狀態(tài)下,比如某個tomcat正在往這個日志里面輸出內(nèi)容,如果我們直接刪除此文件,文件雖然看不到了,但是磁盤空間并不會被釋放。有幾種方案可以處理當(dāng)前遇到的問題。1.利用/dev/null設(shè)備來清空文件,e.g. cat /dev/null > filename,cp /dev/null > filename。2.把一個不存在的內(nèi)容重定向到文件中,e.g. > filename。3.輸出空字符串到文件中,e.g. echo “”?> filename。4. 利用“true”命令,e.g. true > filename,: > filename。5. 使用truncate命令來清空文件,e.g. truncate -s 0 filename。四、長期解決方案每當(dāng)服務(wù)器磁盤出問題時,都可以通過上述的幾個步驟去搞定磁盤問題。但是,如果此類問題經(jīng)常出現(xiàn),我們就需要不斷重復(fù)上述的步驟,還是比較麻煩的,而且我們會發(fā)現(xiàn),經(jīng)常出問題的日志文件是在固定的幾個目錄下。這時候我們可以利用linux自帶的crontab來執(zhí)行一些固定的腳本來處理這些不斷積累的日志文件。針對歷史沒用的日志文件,我們可以每天定時去刪除幾天之前的日志。參考命令如下:00 02 * * * /usr/bin/find /opt/log/* -type f -mtime +3 -exec rm {} \;解釋一下,crontab的時間設(shè)置,每天凌晨2點執(zhí)行一次。可以根據(jù)自己負(fù)責(zé)的服務(wù)器情況,避免跟一些復(fù)雜的任務(wù)產(chǎn)生沖突。然后使用find命令找到日志目錄下的所有日志文件。-mtime +3指距離當(dāng)前時間96小時之前的所有文件。96/24=4天?為什么是+3呢,這個-mtime的參數(shù),值得去深入理解一下。-mtime 0 指過去24小時內(nèi)被修改過的文件。
-mtime 1 指過去48小時至24小時內(nèi)被修改過的文件。
-mtime 2 指過去72小時至48小時內(nèi)被修改過的文件。
-mtime 3 指過去96小時至72小時內(nèi)被修改過的文件。
-mtime -0 指當(dāng)前時間之前被修改過的文件(這不就是未來被修改過的文件嗎?),其實大家可以在服務(wù)器上試一下,如果當(dāng)前一個日志文件一直有內(nèi)容輸出,也是可以把這個文件找出來的,所以-mtime -0可以理解為此刻正在被修改的文件。
-mtime +0 就比較好理解了。就是在24小時之前被修改過的文件。
-mtime -1 指24小時之內(nèi)被修改過的文件,與-mtime 0的效果一致。
-mtime +1 指48小時之前被修改過的文件。
-mtime -2 指過去48小時之內(nèi)被修改過的文件。
-mtime +2 指過去72小時之前被修改過的文件。
-mtime -3 指過去72小時之內(nèi)被修改過的文件。
-mtime +3 指過去96小時之前被修改過的文件。
也許想看
怎樣在Apache Httpclient上做擴展
除敏捷實踐外,項目管理還能做點什么?
你應(yīng)該知道的異步服務(wù)數(shù)據(jù)防丟失方案設(shè)計
一文弄懂Nginx最核心的配置
[手把手系列之]Docker 部署 vue 項目
好文我在看?
總結(jié)
以上是生活随笔為你收集整理的访问服务器 request.getheader(origin)为null_服务器磁盘不足,1分钟快速搞定!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中用def实现自动排序_漫画
- 下一篇: gpu处理信号_GPU显卡不仅用来打游戏