小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux磁盤(pán)爆滿(mǎn)?別慌!這幾個(gè)命令輕松搞定

 攻城獅成長(zhǎng)日志 2024-12-16 發(fā)布于廣東

?

大家好!我是一個(gè)熱衷于分享IT技術(shù)的up主。在這個(gè)公眾號(hào)里,我將為大家?guī)?lái)最新、最實(shí)用的技術(shù)干貨,從編程語(yǔ)言到前沿科技,從軟件開(kāi)發(fā)到網(wǎng)絡(luò)安全。希望通過(guò)我的分享,能夠幫助更多的小伙伴提升技術(shù)水平,共同成長(zhǎng)!歡迎關(guān)注,一起探索科技的魅力吧!

在日常維護(hù)Linux系統(tǒng)時(shí),磁盤(pán)空間不夠用是個(gè)挺常見(jiàn)的麻煩事。如果磁盤(pán)滿(mǎn)了,可能會(huì)導(dǎo)致程序出錯(cuò)、服務(wù)掛掉,嚴(yán)重時(shí)連系統(tǒng)都啟動(dòng)不了!不過(guò)別擔(dān)心,學(xué)會(huì)幾個(gè)常用的命令就能幫你快速定位問(wèn)題,甚至輕松解決磁盤(pán)滿(mǎn)的問(wèn)題。接下來(lái),我會(huì)介紹一些命令,幫你應(yīng)對(duì)這種情況,確保系統(tǒng)穩(wěn)定運(yùn)行。

先看一眼磁盤(pán)空間

首先,要了解當(dāng)前磁盤(pán)空間的使用情況,得使用df 命令:

df -h

-h 選項(xiàng)會(huì)以可讀性較強(qiáng)的方式顯示磁盤(pán)空間,輸出類(lèi)似:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       100G  90G   5G  95% /
tmpfs            16G  4G    12G  25% /dev/shm
/dev/sdb1       200G  100G  100G 50% /data

從輸出可以看出,/dev/sda1 分區(qū)的使用率達(dá)到了 95%,說(shuō)明系統(tǒng)根分區(qū)的空間已經(jīng)接近滿(mǎn)了。此時(shí)我們要針對(duì)/ 分區(qū)進(jìn)行排查。

查看每個(gè)目錄占用的空間

想要找出哪些目錄占用了大量磁盤(pán)空間,可以使用du 命令:

du -sh /* | sort -h

這個(gè)命令會(huì)顯示每個(gè)頂級(jí)目錄的空間占用情況,并通過(guò)sort 排序。輸出大概是這樣:

1.3G    /snap
2.6G    /opt
3.3G    /usr
7.8G    /var

通過(guò)上面的結(jié)果,我們可以快速發(fā)現(xiàn)/var 占用了7.8G空間,可能是我們需要關(guān)注的重點(diǎn)。

找出大文件并清理

如果我們需要深入了解某個(gè)目錄或子目錄的文件占用情況,可以進(jìn)入目錄后使用find 命令來(lái)查找大文件。例如,在/var目錄下找出所有大于100MB的文件:

find /var -type f -size +100M

這將列出所有符合條件的文件,可以幫助我們快速定位大文件。接下來(lái),根據(jù)文件的用途決定是否刪除或者備份。

root@didiplus:~# find /var -type f -size +100M
/var/lib/docker/overlay2/d868589f060052fd1543bf393e4ebc0759e5f521384e34ead32a08f45352ba6b/diff/opt/java/openjdk/lib/modules
/var/lib/docker/overlay2/1a1009115bd48b6df32e87f305c5022ff191c45315baed88271d61c686264365/diff/opt/java/openjdk/lib/modules
/var/lib/docker/overlay2/e2b58562f389558a896f78855f4a3a4dab2967f614b054e8dc05b72aab8abe25/merged/opt/java/openjdk/lib/modules
root@didiplus:~# find /usr -type f -size +100M
/usr/local/bin/1panel
/usr/local/cloudmonitor/bin/argusagent
/usr/bin/dockerd

清理日志文件

日志文件是磁盤(pán)空間的另一個(gè)大敵,尤其是在生產(chǎn)環(huán)境中。我們可以通過(guò)以下命令查看哪些日志文件占用了大量空間:

root@didiplus:~# du -h /var/log/* | sort -rh
2.0G    /var/log/journal/949ee72b23b94d4aa7e2f5f7612118d6
2.0G    /var/log/journal
533M    /var/log/atop

查了之后發(fā)現(xiàn),日志文件里有兩個(gè)文件夾特別大,一個(gè)是journal,另一個(gè)是atop。接下來(lái)可以根據(jù)具體情況來(lái)處理這些日志文件。

如果某些日志文件過(guò)大,可以根據(jù)需求進(jìn)行清理。比如清空syslog 文件:

sudo truncate -s 0 /var/log/syslog

或者通過(guò)logrotate 工具設(shè)置日志輪換策略,避免日志文件無(wú)限制增長(zhǎng)。

清理臨時(shí)文件

臨時(shí)文件夾通常會(huì)存放一些不必要的臨時(shí)文件,定期清理這些文件可以有效釋放空間。使用tmpwatch 或rm 命令清理/tmp 目錄:

sudo rm -rf /tmp/*
?

注意,/tmp 目錄中的文件一般都是不重要的臨時(shí)文件,但清理前最好確認(rèn)沒(méi)有正在使用的程序或服務(wù)依賴(lài)其中的文件。

卸載不必要的軟件包

除了清理文件,有時(shí)不再使用的軟件包也是磁盤(pán)占用的一大來(lái)源??梢允褂?/span>dpkg(Debian 系)或rpm(RedHat 系)來(lái)卸載不需要的軟件包。

例如,在 Debian 系統(tǒng)中,我們可以通過(guò)以下命令查找并刪除不必要的軟件包:

sudo apt-get autoremove
sudo apt-get clean

autoremove 命令會(huì)刪除那些自動(dòng)安裝的、現(xiàn)在不再需要的依賴(lài)包;clean 會(huì)清理緩存文件。

使用lsof 查找占用空間的文件

有時(shí)候,磁盤(pán)空間被占滿(mǎn)是因?yàn)槟承┏绦蛘加昧颂嗟目臻g。你可以用lsof 命令(這個(gè)命令是用來(lái)列出所有被打開(kāi)的文件)來(lái)看看哪些文件正被這些程序占用。

例如,通過(guò)lsof命令查看被刪除的文件。

lsof | grep deleted

這個(gè)命令能幫你找出那些已經(jīng)被刪了但還被某些程序占著的文件。雖然這些文件看起來(lái)像是被刪掉了,但實(shí)際上只要相關(guān)程序還在運(yùn)行,它們就會(huì)繼續(xù)占用硬盤(pán)空間。

如果發(fā)現(xiàn)有這種情況,可以嘗試重啟相關(guān)的程序,這樣就能釋放出被占用的空間了。

通過(guò)腳本方式檢測(cè)磁盤(pán)情況

定期用腳本來(lái)檢查服務(wù)器的磁盤(pán)空間是個(gè)不錯(cuò)的方法,這樣可以早點(diǎn)發(fā)現(xiàn)磁盤(pán)快滿(mǎn)的問(wèn)題。下面有個(gè)簡(jiǎn)單的腳本,它能查看磁盤(pán)用了多少空間,如果使用率超過(guò)了80%,就會(huì)自動(dòng)發(fā)警告到釘釘上。

#!/bin/bash

# 設(shè)置警告閾值
THRESHOLD=80

# 獲取磁盤(pán)使用情況
DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')

# 獲取當(dāng)前日期時(shí)間并進(jìn)行 URL 編碼
DATE=$(date '+%Y-%m-%d %H:%M:%S')
ENCODED_DATE=$(echo "$DATE" | sed 's/ /%20/g; s/:/%3A/g')

# 檢查磁盤(pán)使用情況是否超過(guò)閾值
if [ $DISK_USAGE -gt $THRESHOLD ]; then
    # 如果超過(guò)閾值,輸出警告信息
    echo "$DATE - WARNING: Disk usage is above $THRESHOLD% - Current usage is $DISK_USAGE%"
    
    # 用 curl 發(fā)送 HTTP 請(qǐng)求,代入編碼后的日期時(shí)間
    curl "https://push./send/1QGmWWdzmlRD?DATE=${ENCODED_DATE}&THRESHOLD=${THRESHOLD}&DISK_USAGE=${DISK_USAGE}"
else
    # 如果沒(méi)有超過(guò)閾值,輸出正常信息
    echo "$DATE - Disk usage is normal: $DISK_USAGE%"
    
    # 用 curl 發(fā)送正常信息(也可以不發(fā)送)
    curl "https://push./send/1QGmWWdzmlRD?DATE=${ENCODED_DATE}&THRESHOLD=${THRESHOLD}&DISK_USAGE=${DISK_USAGE}"
fi


當(dāng)腳本發(fā)現(xiàn)服務(wù)的根目錄使用量超過(guò)80%時(shí),就會(huì)給釘釘發(fā)一條告警消息,如下圖所示。

總結(jié)

當(dāng)Linux磁盤(pán)空間不足時(shí),首先通過(guò)df 和du 命令了解磁盤(pán)使用情況,然后使用find 查找大文件,清理不必要的日志和臨時(shí)文件,卸載不必要的包,最后考慮擴(kuò)展磁盤(pán)。掌握這些命令,你就能有效應(yīng)對(duì)磁盤(pán)空間不足的問(wèn)題,保證系統(tǒng)順暢運(yùn)行。遇到問(wèn)題不要慌,這幾個(gè)命令幫你輕松梭哈解決!

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多