Linux必備的小技巧——查看歷史操作和屏顯信息

通常在linux查看歷史操作信息,都是查看日誌文件,Linux的日誌文件一般都保存在/var/log文件夾下:

用如下命令即可查看:

cat     filename           查看日誌,會打開整個文件,直接跑到最後面

tac     filename           查看日誌,會打開整個文件,倒序顯示,不常用

more  filename           查看日誌,可以上下翻頁,上下行移動顯示

less    filename           查看日誌,和more命令類似,但不能往回翻頁

tail   -f   filename         查看文件,實時顯示最後一頁

vim        filename           查看或編輯文件

將實時日誌打印到文件newlog.log內,方便查找

 執行命令:   tail  -f  nohup.out   >newlog.log

備註:newlog.log文件可以不存在,命令執行時會自動新建

查看日誌文件的確可以檢查操作Linux過程中發生的錯誤,但是有時候,我們更想直觀地查看屏顯信息。

查看屏顯信息可以使用tee指令:

tee [-ai][--help][--version][文件...]


-a或--append  附加到既有文件的後面,而非覆蓋它.
-i或--ignore-interrupts  忽略中斷信號。
--help  在線幫助。
--version  顯示版本信息。

例如:

tee -a ./screen.log   #把屏顯的信息保存到screen.log文件中

tee也可以實現同時向多個文件複製信息:

tee file1 file2                   #在兩個文件中複製內容 

單獨使用tee的時候,會在命令下面出現待輸入的位置,這樣就無法輸入其他命令。一般是這麼使用,如要保存ll輸出的屏顯:

ll | tee -a ./screen.log

查看輸出結果:

但是使用tee只能看到命令操作後輸出的結果,實在是很雞肋,沒啥大用。要是可以查看輸入的命令就要方便很多了。

要同時記錄輸入的命令和命令執行的輸出屏顯,可以使用script 和 scriptreplay爲了可以實現按照時間順序輸出命令的執行屏顯,script需要保存兩個文件:一個是記錄時間線,一個是記錄屏顯。然後用scriptreplay復現記錄的命令執行過程,還可以實現慢速播放和加速播放。具體實現如下:

script的操作:

 script -t 2>time.file -a scriptfile

執行完這個命令,接下來的任何操作都會被記錄到time.file、scriptfile兩個文件裏,這兩個文件可以自動新建。
time.file用來記錄時間線;

scriptfile是命令執行記錄文件,記錄下執行是哪些命令。

加上-q, - -quiet 參數可以使script命令以靜默模式運行,不顯示script啓動和exit的命令,用戶可以完全察覺不到在錄屏。
像這樣:

script -q -t 2>time.file -a scriptfile

要停下來,只用按下按下組合鍵 Ctrl+D 結束錄製,執行exit命令也行。

script常用的參數
-t     指明輸出錄製的時間數據
-f         如果需要在輸出到日誌文件的同時,也可以查看日誌文件的內容,可以使用 -f 參數。PS:可以用於教學,兩個命令行接-f可以實時演示
-a         輸出錄製的文件,在現有內容上追加新的內容
-q         可以使script命令以靜默模式運行

然後用scriptreplay來播放錄製的過程:兩個文件,第一個是時間線文件,第二個是命令文件:

scriptreplay time.file scriptfile

添加這個參數-d, –divisor number 可以調整播放速度的倍數(可以是小數:放慢)。

如果需要實現實時顯示操作過程,可以使用 -f(--flush)刷新緩存。

script -f demo

scriptreplay -f demo   

#如果不能用scriptreplay -f demo的話,可以用

tail -f demo

script其實也有類似tee的功能:只記錄當面命令的執行結果:

script -qa "file.out" -c "/root/hello.sh" 

#把/root/hello.sh執行的結果保存到file.out

使用開機靜默啓動的script甚至可以實現監控用戶登陸的操作與實時監控。

mkdir -p /home/log/user_record
vim ~/.profile

 在配置文件的末尾加上:

# 添加登陸時自動記錄
script -t -f -q 2>/home/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.time -a /home/log/user_record/$USER-$UID-`date +%Y%m%d%H%M%S`.his
if [ "$SHLVL" = 1 ]; then
   exit
fi

參考了:https://mp.weixin.qq.com/s?timestamp=1562287017&src=3&ver=1&signature=lpConCv5A1HmW8WGApfR2GOkpRqUxGbg8PS-741zr7hVHahGnnMLS3XZiMXlmL6h655oN7RQYynw3udLEOBOq3Q5VkWD1RLUo7e*1jtQT0pLxYIimVPRFO6uDHcQ9JxCgtkD88xVD5FcxmRaHC9cewE6ezHwPyE1yXfaAPvf4y8=

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章