Ubuntu磁盤分析和清理:baobab journalctl
大概也就只有愛折騰的極客們,才敢將Linux系統(tǒng)作為日常操作系統(tǒng)吧。
磁盤清理,在Windows系統(tǒng)中,簡直不要太簡單,各種電腦管家打開磁盤分析清理一鍵搞定。但在Linux系統(tǒng)中,可就沒那么容易了,一不小心執(zhí)行了一些不恰當?shù)拿畋阕屇愫蠡诓灰选?/p>
所以這里給大家分享一些Linux子系統(tǒng)中的Ubuntu桌面版的磁盤分析和日志清理的經(jīng)驗。
首先,磁盤清理嘛,本質無非就是刪一些大文件唄。所以大家只需要會一個命令就夠了:
sudo rm -rf /*
如果是在公司的服務器上執(zhí)行,跑完之后,你也可以跑了。如果是在自己的電腦上跑的,那么恭喜你,可以換回Windows系統(tǒng)的電腦,再也不用經(jīng)受Linux的折磨了。
在此,本著不教大家使壞的原則,嚴正聲明,上面的命令(sudo rm -rf /*)大家千萬不要執(zhí)行,sudo rm -rf ./*的命令大家謹慎執(zhí)行,帶上sudo的命令大家小心執(zhí)行。
baobab——磁盤占用分析
磁盤清理的第一步肯定是要分析磁盤的目錄結構啦,所以baobab(猴面包樹)幫你解決苦惱。
如果只分析當前用戶下的所有目錄直接輸入baobab就夠了,如果分析整個磁盤那就以管理員身份執(zhí)行sudo baobab
什么?你說沒有這個命令,那就安裝一下唄,sudo apt install baobab
執(zhí)行后你就可以看到整個電腦的磁盤使用情況,點到根目錄下你就可以看到類似的界面:
這里就可以根據(jù)目錄大小和結構,去選擇性地清理一些無用的文件或目錄了。
journalctl——系統(tǒng)日志分析和清理
是的,你沒看錯,上面的日志文件已經(jīng)有4.4G了。那這個日志文件要怎么清理?
cd到目錄下,然后直接清理。是個解決方法,但不建議這么做。
journalctl分析一下日志使用情況:
:~$ journalctl --disk-usage
Archived and active journals take up 4.0G in the file system.
從命令的輸出結果看,日志量確實已經(jīng)有4個G多了。
那就清理一下唄:
sudo journalctl --vacuum-time=30d
以管理員身份執(zhí)行,只保留最近30天的日志記錄,當然也支持按磁盤占用大小進行清理換成 --vacuum-size參數(shù)就可以了:
更多journalctl命令相關的信息,執(zhí)行journalctl --help就可以查看,看不懂就自行百度。
執(zhí)行完你會看到類似這樣的輸出:
再次查看一下日志的磁盤占用:
:~$ journalctl --disk-usage
Archived and active journals take up 72.0M in the file system.
只剩下72M的磁盤占用,舒服多了~~
安裝包清理
除了日志還有就是安裝包,一般每次升級或者軟件安裝完后,安裝包是可以清理掉的:
sudo apt autoremove
就能自動將無用安裝包清理掉,系統(tǒng)升級后/boot空間不足也可以將無用的系統(tǒng)內(nèi)核安裝包清理。
內(nèi)核清理
sudo apt autoremove命令并不能將無用的內(nèi)核安裝包完全清理干凈,一般我們還要在檢查一下是否存在未安裝的舊內(nèi)核安裝包。
首先查看我們當前使用的內(nèi)核版本,防止刪除時刪錯版本:
:~$ uname -a
Linux ****-****-***-****** 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
查詢系統(tǒng)已存在的內(nèi)核安裝包:
dpkg --get-selections | grep linux
這里可以看到系統(tǒng)里存在很多個未安裝(deinstall)的舊內(nèi)核版本,這些都是可以清理的:
對于已安裝的舊內(nèi)核,可以執(zhí)行sudo apt remove <內(nèi)核包名>進行卸載,卸載完成后對應的包則會顯示為未安裝(deinstall),在執(zhí)行一下sudo apt purge <內(nèi)核包名>就可以完全清理掉。
清理完后再檢查一下:
清爽極了~~~
總結
Linux磁盤清理不像Windows那樣,有專門的電腦管家可以一鍵清理,需要從多個方面去分析并清理。
以Ubuntu為例,baobab命令可以以可視化的形式對系統(tǒng)的磁盤目錄結構進行磁盤占用分析,journalctl命令則是用來做系統(tǒng)日志分析和清理的。除了文件、系統(tǒng)日志、無用安裝包,我們同時還需要分析一下系統(tǒng)更新產(chǎn)生的舊內(nèi)核,清理系統(tǒng)舊內(nèi)核有利于釋放/boot空間,為以后的系統(tǒng)升級提供足夠的磁盤空間。