《Linux性能優(yōu)化之定期清理和保留 history 記錄》要點:
本文介紹了Linux性能優(yōu)化之定期清理和保留 history 記錄,希望對您有用。如果有疑問,可以聯(lián)系我們。
有經(jīng)驗的 Linux 系統(tǒng)工程師都喜歡把 Bash 的 HISTSIZE/HISTFILESIZE 設(shè)置的很大,這樣可以記錄更多的歷史命令以便以后查閱,這是個好習(xí)慣,但有個小問題就是 history 記錄了的大量信息在系統(tǒng)啟動后就被 load 到內(nèi)存里,并且一直保存在內(nèi)存里,這樣浪費了不少內(nèi)存,據(jù)統(tǒng)計100000條歷史記錄大概占用 10MB 左右的內(nèi)存.要知道,現(xiàn)在的IT運維系統(tǒng)已經(jīng)趨向于云計算和虛擬化,其特別就是根據(jù)你對硬件資源的需求為你定制的分配.因此,history所占用的內(nèi)存完全是沒必要的,10MB的可用內(nèi)存可以干很多事情,比如啟用一個 MySQL 服務(wù),開個 syslogd等.
那么如何保存盡量多的歷史記錄而又不浪費內(nèi)存呢?一個辦法就是把歷史記錄定期保存到硬盤上,bash 的當(dāng)前歷史記錄保存在 .bash_history 里,只要定期清理這個文件的記錄就可以了:
[code language=”bash”]
#!/bin/bash
# archive linux command history files
umask 077
maxlines=2000
lines=$(wc -l < ~/.bash_history)
if (($lines > $maxlines)); then
cut=$(($lines – $maxlines))
head -$cut ~/.bash_history >> ~/.bash_history.sav
sed -e "1,${cut}d" ~/.bash_history > ~/.bash_history.tmp
mv ~/.bash_history.tmp ~/.bash_history
fi
[/code]
上面腳本所做的事情很簡單,檢查 .bash_history 文件,如果行數(shù)超過2000行就剪裁2000行記錄(這個值可以自定義,修改maxlines參數(shù)即可)并添加到 .bash_history.sav 這個文件里,這樣我們就可以保存所有的歷史記錄,而且當(dāng)前的歷史記錄不超過2000行,只占用少量資源.
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4640.html