前言: 經(jīng)常操作服務(wù)器的運維工程師經(jīng)常有這樣的一個顧慮,如果我或者其他同事操作服務(wù)器,這樣造成問題后我該怎么查看到底哪一步錯誤了瑰剃,沒有記錄,查找造成問題的原因就相當困難筝野,今天介紹兩個神一樣的命令來幫助你解決這樣的問題晌姚,這兩個命令分別是: script 和 scriptreplay
-
命令介紹
script :使用來記錄你的操作命令粤剧,并且可以進行同時記錄到的緩存存放到一個文件進行實時保存
scriptreplay : 是進行播放的命令,使用這個命令加載之前使用script命令記錄存放的文件便可以進行播放挥唠,完整地回放當時的操作抵恋,畫面高清無碼的小電影,哈哈哈宝磨,有沒有很激動首先來看一下script這個命令的使用幫助說明:
[root@gz--vm-workstation-0001 ~]# script --help
幾個常用的參數(shù)講一下:
-a 是進行進行追加方式添加到文件之中弧关,也就是說如果已經(jīng)存在這個文件就不會清空覆蓋掉之前的數(shù)據(jù)
-f 進行強制刷新緩存,也就是說每輸入一個命令就會將緩存里的數(shù)據(jù)進行存儲到文件
-q 是安靜模式唤锉,不會打印出任何提示語句表明在錄制你的命令世囊,這個參數(shù)很好的在后臺進行默認記錄
-t 是將時間數(shù)據(jù)輸出到標準錯誤文件,使用scriptreplay播放時候也會使用這個文件進行時間
再看一下scriptreplay的使用幫助說明:
[root@gz--vm-workstation-0001 ~]# scriptreplay --help
常用的參數(shù)說明:
-t 是對應(yīng)的存儲的時間文件窿祥,也就是下面將提到的RecordCommand.time
-s 對應(yīng)的是緩存的session記錄文件株憾,也就是下面提到的RecordCommand.session
- 命令例子說明
- script
我們要記錄操作的終端進行操作,在shell命令行輸入
[root@gz--vm-workstation-0001 ~]# script -t 2>/tmp/RecordCommand.time -af /tmp/RecordCommand.session
- script
沒添加 -q 參數(shù)晒衩,就把 script started嗤瞎,file ****這句話打印出來,如果添加 -q 參數(shù)就沒有提示這句話听系,建議在生產(chǎn)環(huán)境添加 -q 進行屏蔽打印出這類信息
這樣加-q參數(shù)就屏蔽了啟動提示語了
- scriptreplay
下面我們就可以使用scriptreplay來進行播放我們的小電影了
[root@gz--vm-workstation-0001 ~]#scriptreplay -t
/tmp/RecordCommand.time -s /tmp/RecordCommand.session
- 或者可以做成一個shell腳本贝奇,不用一個一個命令這樣敲,直接運行進行記錄或者直接播放靠胜,寫這個腳本就幾句代碼掉瞳,相信你們可以的
-
下面還說一個script在實際中使用,它結(jié)合mkifo可以進行實時播放直播髓帽,就是你在敲命令的時候別人可以通過另一個窗口看到菠赚,在教學或者監(jiān)督部門同事在操作重要步驟時候有很好的作用
先說明一下mkfifo命令
mkfifo 使用指定的文件名創(chuàng)建FIFO(也稱為"命名管道")."FIFO"是一種特殊的文件類型,它允許獨立的進程通訊. 一個進程打開FIFO文件進行寫操作,而另一個進程對之進行讀操作, 然后數(shù)據(jù)便可以如同在shell或者其它地方常見的的匿名管道一樣流線執(zhí)行.
當你想進行廣播讓別人看到你操作時候郑藏,就可以在linux下面/tmp目錄(目錄自己定義衡查,個人建議而已)使用mkfifo 創(chuàng)建一個文件,并且使用script命令啟動
mkfifo /tmp/TestMkfifo.log;script -f /tmp/TestMkfifo.log
這樣就啟動完成了必盖,其他人在其他窗口或者終端進行登陸這臺服務(wù)器拌牲,并且切換到/tmp目錄下,執(zhí)行命令 cat /tmp/TestMkfifo.log 歌粥,這樣在他所在的窗口就可以看到你操作的任何操作并且實時在他的窗口進行顯示