1. 程式人生 > 其它 >使用系統內建script和scriptreplay命令來記錄操作記錄

使用系統內建script和scriptreplay命令來記錄操作記錄

想要記錄整個操作流程,需要使用到兩個工具,script和scriptreplay,實驗環境是CentOS6.6,預設都是安裝的!

script命令用來記錄整個歷史操作流程,但是必須得使用相應的引數和固定的格式。

[root@wy-xxb ~]# script -t 2> test.time -a test.out                                        指定一個時間戳檔案和命令輸出檔案(-a表示追加) Script started, file is test.out

接下來你就可以做自己想要做的操作了,整個操作過程都會記錄在test.out檔案,知道使用exit或者ctrl+d退出。會保留兩個檔案(time和out)

退出提示:

    [root@wy-xxb ~]# exit
    Script done, file is test.out

scriptreplay命令用來動態顯示歷史操作記錄,其實可以理解為無聲的MV了。

[root@wy-xxb ~]# scriptreplay test.time test.out                                注意,時間戳檔案和命令輸出檔案位置不能反

當歷史操作播放完畢後會自動退出!

那麼,問題來了~

        很多人會問到,這個除了好玩之外,還有什麼用處嗎?我想說,只要好玩,有意思,那用處是必須有的啊!

比如說。。。。。。。。。。

你可能讓你的工程師或者某個人遠端訪問你的系統,要確保你的工程師正在幹正確的事,你可以記錄下他在你係統上的所作所為。要讓script命令在登入時自 動執行,我們可以把它新增進shell環境配置檔案中。這樣在出現什麼誤操作之後,你就可以使用scriptreplay命令檢視是哪些誤操作造成的,以免及時的恢復應用。

[root@wy-xxb test]# vim /etc/profile
if [ $UID -ge 500 ];then
   exec /usr/bin/script -qaf -t 2> /var/log/test/$USER-$UID-`date +%Y%m%d%H%M`.time -a /var/log/test/$USER-$UID-`date +%Y%m%d%H%M`.out
fi

[root@wy-xxb test]# ssh xxb@localhost                           模擬登入到遠端使用者,並進行相應操作

會看到,在/var/log/test/目錄下生成相應的檔案

[root@wy-xxb test]# ll /var/log/test/*
-rw-rw-r--. 1 xxb xxb 1075 Apr 15 14:21 /var/log/test/xxb-500-201504151419.time
-rw-rw-r--. 1 xxb xxb 3331 Apr 15 14:21 /var/log/test/xxb-500-201504151419.out

播放遠端操作記錄

[root@wy-xxb test]# scriptreplay xxb-500-201504151419.log xxb-500-201504151419.out