歡迎光臨
每天分享高質量文章

你的一舉一動,我可都看著!Linux超騷技巧三分鐘Get

來源:編程三分鐘

ID:coding3min

作者:小熊愛編程

今天看到一個超級的linux命令,可以完整記錄屏幕上的命令與輸出結果。

有人問這有什麼的,不就是儲存歷史操作記錄嗎?我看看日誌也能看出來。

不不不,我要說的“完整記錄”包括第幾秒執行什麼命令,就像真的有人在操作一樣!放視屏一樣的播放出來,還可以調整播放速度,放慢、加快、想調幾倍速就調幾倍速!

開通會員好嗎!

更爽的是自己的服務器,誰想登陸操作直接就被監視起來,一舉一動看的清清楚楚,是不是很過癮!!

一般來說,這次用到的script 和 scriptreplay兩個命令在 Linux 發行版中都有預設安裝。

錄播屏幕操作

錄製

 script -t 2>time.file -a scriptfile

執行完這個命令,接下來的任何操作都會被記錄。
其中的time.file是時序記錄檔案,記錄了幾秒執行的命令;scriptfile是命令執行記錄檔案,記錄下執行是哪些命令,這兩個檔案名稱都可以自定義。

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

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


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

exit

有錄製就有播放,就像錄視頻一樣,執行下麵這個命令即可,時序檔案在前,命令檔案在後

scriptreplay time.file scriptfile


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

scriptfile檔案記錄了我每間隔1秒執行一個date命令的操作,現在加速10倍來播放看看效果(可惜有的版本scriptreplay命令沒有-d這個引數):

同步演示

-f, - -flush 每次操作後都立即掃清快取。如果不設置這個選項,則不會實時寫入檔案,這個功能

使用端:

script -f demo

演示端:

scriptreplay -f demo

但是很遺憾,可能因為版本問題,我的scriptreplay沒有-f引數。

沒關係,因為實時寫入檔案里的,我們拿出平時看日誌常用的tail -f命令,直接在演示端tail -f demo即可

錄製腳本執行過程

引數-c, - -command 可以直接執行命令,而非是交互式的shell,可以直接傳入一個腳本,像這樣:

$ script -qa "file.out" -c "/root/hello.sh" 
123
234
345
$ cat file.out 
Script started on Fri 28 Jun 2019 07:38:55 PM CST
123
234
345

但是我覺得這個功能有點雞肋,只能記錄下輸出不能記錄執行了哪些命令和鹹魚有什麼區別?

不要謊,那讓我們來感受點牛逼的

自動觸發監控用戶登陸的操作與實時監控

有時候某個人偷偷遠程訪問了你的系統,或者運維人員遠程操作了一些東西,我們可以設置自動記錄下這個人在系統上做了什麼事情,是誰闖的禍,該誰背的鍋,一目瞭然!

這個時候就只要讓script命令在登錄時自動運行,我們可以把它添加進shell環境配置檔案中。

這樣在出現什麼誤操作之後,就可以在排查的時候查到歷史記錄。

mkdir -p /var/log/user_record
vi /etc/profile


在檔案末尾追加

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

在這裡我已經提前添加到腳本里了,後邊是監控端,見演示

暢想幾個場景:

  1. 通過錄製終端記錄,來製作一個命令列技巧視頻

  2. 直接分享幾十k的記錄檔案給朋友,就可以讓好友體驗到站在你旁邊看你操作的感覺

  3. 大神來面前幫忙,這時候根本來不及打開錄屏軟體,還容易遭大神的反感;一頓操作猛如虎,菜鳥什麼都記不住好嗎(哭唧唧)。但有了這個工具,一秒開啟記錄,回去慢慢看唄,還能慢放,多爽。

  4. 完整記錄腳本的執行步驟與輸出,沒有什麼比完整輸出的腳本更能排查操作,特別是不能debug的shell。

  5. 監控登陸用戶的一舉一動,再也不怕找不到人背鍋了,但是自己的也就甩不出去了,發現自己的鍋千萬別告訴別人!

  6. 什麼?你還想用這個來監聽輸入的密碼

已同步到看一看
赞(0)

分享創造快樂