Linux管理指令碼之清理空間
在windows環境下,我們可以用圖形介面,根據時間排序,然後用滑鼠框選檔案,然後按下delete鍵,多方便。可是在unix字元介面下,我們沒有滑鼠,沒有框選,只能使用命令了,下面我們就介紹下如何通過命令簡單快速的實現我們的需求。
首先,我們來假設一個應用場景:
接到檔案系統使用率告警,目前主機dbaleading1上的/u01目錄滿了,需要進行清理。
接到這個case後,首先做理論分解,該怎麼去思考。
1. 首先,/u01目錄肯定有很多子目錄,必須得先找到是哪些子目錄佔用了大部分的空間,如果要清理空間,肯定是清理佔用空間多的。
2. 找到佔用空間大的目錄後,需要知道該目錄中存放的是什麼檔案。
3. 根據檔案,確定清理策略後(如保留7天,字尾為.log的應用過期日誌檔案),要根據策略,將需要清理的資料,篩選出來;
4. 對篩選出來的檔案,進行清理。
理論分析清楚了以後,我們按照步驟,一步步來實現,過程很簡單,重要的是,我們在日常運維中,特別是重要系統中做操作的時候,一定要知道自己做的是什麼,會有什麼樣的影響,畢竟,我們是系統的最後一道防線。
1. 在windows下,我們可以點資料夾,右鍵,檢視屬性,就可以知道資料夾大小,在unix字元介面下,我們採用sort排序的方式,命令如下:
[root@dbaleading1 ~]# cd /u01
[root@dbaleading1 u01]# du -sk * | sort -n
有關具體命令的作用,語法等等,可以用 man工具檢視,如unix下輸入 man du,就會出現du的命令手冊。
2. 假設發現/u01/log目錄佔用空間比較大,則進入/u01/log目錄,使用 ls -ltr命令檢視該目錄內的具體檔案資訊,如果仍然存在多個資料夾,則重複第一步。目前的場景,我們假設該目錄中,存放了大量的應用日誌檔案,以.log結尾。
3. 發現大量應用日誌佔用空間,根據策略,我們需要把7天前的日誌檔案給刪除了,這一步,我們使用find命令來實現,如下:
[root@dbaleading1 ~]# find . -mtime +7 |xargs ls -lrt
在這個命令中,主命令是 find . -mtime +7 ,其意義是在當前目錄中,尋找建立時間大於7天前的檔案,管道命令|xargs ls -lrt的作用,是把這些檔案按照時間順序排列好,然後顯示出來。
4. 如果第3步中的檔案經過確認,可以刪除的,那麼,把管道命令中的ls命令替換成刪除命令就可以了,如下:
[root@dbaleading1 ~]# find . -mtime +7 |xargs rm -fr
5. 完成清理後,我們再通過命令 df -m ,進行復查,確認無誤後,這個處理流程就全部完成了。
事情很小,實現也很簡單,不過這裡面也存在著危險的rm操作,作為一個系統維護人員,遇到此類危險操作時,儘量能夠多想一下,確切的清楚自己所做的事情,為自己,也為系統,多承擔一點責任。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24867586/viewspace-713443/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux伺服器硬碟空間清理Linux伺服器硬碟
- SYSAUX表空間清理之SM/OPTSTATUX
- MySQL空間最佳化(空間清理)MySql
- Hbase刪除名稱空間指令碼指令碼
- Linux空間不足怎麼辦?Linux磁碟滿了怎麼清理?Linux
- Centos Linux 清理磁碟佔用空間:/dev/xvda1CentOSLinuxdev
- Linux空間不足怎麼辦?磁碟滿了如何清理?Linux
- Oracle清理SYSAUX表空間OracleUX
- 清理oracle資料庫空間Oracle資料庫
- docker磁碟空間清理辦法Docker
- windows10磁碟空間不足怎麼清理_win10磁碟空間清理的方法WindowsWin10
- Linux 磁碟掛載和swap空間管理Linux
- Linux伺服器磁碟空間佔用情況分析與清理指南Linux伺服器
- Linux Shell指令碼時間排程Linux指令碼
- mac硬碟空間怎麼清理?這樣也能清理出上10G的磁碟空間Mac硬碟
- Docker篇之Overlay2磁碟空間佔用過大清理Docker
- 查詢表空間使用情況的指令碼指令碼
- Oracle 建立表空間和使用者指令碼Oracle指令碼
- Linux使用者空間記憶體管理Linux記憶體
- 如何檢查Mac磁碟空間,mac磁碟空間其他怎麼清理Mac
- windows系統垃圾清理指令碼Windows指令碼
- LINUX 建立swap空間Linux
- linux 修改swap空間Linux
- [Linux]程序地址空間Linux
- win10 磁碟空間清理管理器已停止工作怎麼解決Win10
- Mac技巧14:如何在Mac上清理磁碟空間?Mac
- 清理臨時表規範以及指令碼指令碼
- 【Ubuntu】Ubuntu常用的更新、清理命令指令碼Ubuntu指令碼
- Go的棧空間管理Go
- Linux之rsync同步分發指令碼編寫.Linux指令碼
- 生成 Linux 執行時間報告的 Bash 指令碼Linux指令碼
- Shell指令碼 | 效能測試之啟動時間指令碼
- Linux指令碼分享Linux指令碼
- Linux Shell指令碼Linux指令碼
- 【Linux】Linux安全加固指令碼Linux指令碼
- win10如何徹底清理c盤 win10清理c盤空間教程Win10
- Win10磁碟空間不足怎麼清理 電腦怎麼清理個人磁碟Win10
- 乾貨分享|優炫資料庫管理之表空間資料庫
- elasticsearch 索引清理指令碼及常用命令Elasticsearch索引指令碼