[20211018]運維中關於history的問題.txt

lfree 發表於 2021-10-19

[20211018]運維中關於history的問題.txt

--//這個是我前一段時間遇到的問題,開始沒注意,仔細檢查發現H3C的監控引起的問題。
--//一般我每次登入檢查伺服器我執行自己寫的指令碼,我一般開啟頭幾個字元,按F8總能出現完整的命令。
--//最近總是不行,我開始以為我很久沒有登入伺服器的原因,連續幾天發現不對。
--//注我修改了/etc/inputrc檔案,加入:
# cat /etc/inputrc
...
"\e[18~": history-search-forward            # F7
"\e[19~": history-search-backward           # F8

#history
...
  850  2021-09-01 18:03:31 =;export LANG; w -h; echo APMCmdErr=$?
  851  2021-09-01 18:03:31 =;export LANG; /usr/bin/vmstat 1 2; echo APMCmdErr=$?
  852  2021-09-01 18:03:32 =;export LANG; cat /proc/cpuinfo ; echo APMCmdErr=$?
  853  2021-09-01 18:03:32 =;export LANG; mpstat -P ALL ; echo APMCmdErr=$?
  854  2021-09-01 18:03:32 =;export LANG; /bin/df -P -k; echo APMCmdErr=$?
  855  2021-09-01 18:03:32 =;export LANG; /bin/df -P -i; echo APMCmdErr=$?
  856  2021-09-01 18:03:32 =;export LANG; /bin/cat /proc/net/dev; echo APMCmdErr=$?
  857  2021-09-01 18:03:42 =;export LANG; /bin/cat /proc/net/dev; echo APMCmdErr=$?
  858  2021-09-01 18:03:42 =;export LANG; /usr/bin/iostat -k 1 2; echo APMCmdErr=$?
  859  2021-09-01 18:03:43 =;export LANG; /bin/cat /proc/meminfo; echo APMCmdErr=$?
  860  2021-09-01 18:03:43 = date +%Y; date +%s -d "2021-09-01 18:03:08"; date +%s -d "2021-09-01 17:16:28"
  861  2021-09-01 18:03:44 =;export LANG;awk 'BEGIN{S=1630490288;E=1630490587;"wc -l /var/log/messages"|getline LINES;LINES=LINES-1000;print 2021} FNR>=LINES&&U($1,$2,$3)>S&&U($1,$2,$3)<=E{print} function U(m,d,t){L=sprintf("date +%%s -d\"%s %s %s\"",m,d,t);L|getline s;close(L);return s}' /var/log/messages;echo APMCmdErr=$?
  862  2021-09-01 18:03:44 =;export LANG; ps -eo %cpu -o %mem -o pid -o ppid -o time -o comm; echo APMCmdErr=$?
  863  2021-09-01 18:03:44 =;export LANG; uptime; echo APMCmdErr=$?
  864  2021-09-01 18:03:44 = date "+%Y-%m-%d %H:%M:%S";uptime;echo APMCmdErr=$?
  865  2021-09-01 18:03:44 =;export LANG; /usr/bin/lsb_release -d; echo APMCmdErr=$?
  866  2021-09-01 18:03:44 =;export LANG; vgdisplay -c 2>/dev/null; echo APMCmdErr=$?
  867  2021-09-01 18:03:44 =;export LANG; ps -eo stat -o %cpu -o %mem -o pid -o ppid -o time -o comm; echo APMCmdErr=$?
...
  987  2021-09-26 10:35:39 = echo PreFix20210926103526;echo PreFix20210926103526;LANG=C;export LANG;if [ -f /etc/redhat-release ]; then echo 1111;cat /etc/redhat-release; else echo 2222;/usr/bin/lsb_release -d; fi;echo APMCmdErr=$?
  988  2021-09-26 10:35:51 = echo PreFix20210926103538;echo PreFix20210926103538;LANG=C;export LANG; vgdisplay -c 2>/dev/null; echo APMCmdErr=$?
  989  2021-09-26 10:36:13 = echo PreFix20210926103600;echo PreFix20210926103600;LANG=C;export LANG; ps -eo stat -o %cpu -o %mem -o pid -o ppid -o time -o comm; echo APMCmdErr=$?

--//也就是有人巡檢,我估計這些是在監控介面發出的命令在服務端執行的。導致我以前輸入的命令被清除出去。

# echo $HISTCMD $HISTFILE  $HISTFILESIZE $HISTSIZE | tr " " "\n"
992
/root/.bash_history
1000
1000

--//實際上原來等保設定更小僅僅10,極度影響我的工作效率與心情。
--//當然解決方法很簡單,安裝tmux,啟動tmux啟動後不退出。這樣自己的history記錄資訊不會清空。

--//還可以使用一種方法解決這個問題,就是利用TMUX環境變數。在.bashrc加入如下程式碼。

if [[ '' != "$TMUX" ]]
then
    export HISTFILE=/root/.bash_history_tmux
$    export HISTFILESIZE=2000
#    export     HISTSIZE=2001
#    export     HISTTIMEFORMAT='%F %T = '
fi

--//這樣兩個系統使用不同HISTFILE。

# echo $HISTCMD $HISTFILE  $HISTFILESIZE $HISTSIZE | tr " " "\n"
3
/root/.bash_history_tmux
1000
1000

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2838003/,如需轉載,請註明出處,否則將追究法律責任。