我們在除錯程式的時候,免不了要去抓一些 log ,然後進行分析。如果 log 量不是很大的話,那很簡單,只需簡單的複製貼上就好。但是如果做一些壓力測試,產生大量 log ,而且系統記憶體又比較小(比如嵌入式裝置),那要怎麼處理呢?當然,securecrt 和 mobaxterm 都有將日誌儲存到本地的功能,使用起來也是很方便。但是有些工具,比如 putty,就沒這樣的功能了。這時終端裡的記錄器—— script 就派上用場了。
使用場景
1、除錯會產生大量 log 的應用程式,並且需要儲存到本地進行進一步分析;
2、與同事協同工作,自己將工作完成了一半,可以將操作過程記錄下來,發給同事,同事可以根據記錄接著工作;
3、讓人遠端協助你,擔心對方使壞,同時也可以留下案底,最好將他的操作記錄下來
如何使用 script 命令?
預設情況下,直接輸入 script 這個命令即可,它會在當前目錄自動建立乙個typescript
檔案,之後你在此終端的所有操作都會被記錄在這個檔案裡。
記錄檔案是乙個文字檔案,可以使用任意的文字工具開啟檢視。
如果要退出記錄,可以在終端裡按快捷鍵ctrl + d
或直接輸入exit
。在退出 script 前,你會發現,記錄檔案大小為 0 kb,當退出後,檔案大小會變大。
[alvin@vm_0_16_centos test]$ script如果我們想要自己起個檔名,或者將檔案放在其它位置,那麼我們可以直接在 script 後面跟上檔名即可。script started, file is typescript
[alvin@vm_0_16_centos test]$ echo hello
hello
[alvin@vm_0_16_centos test]$ ls
test1.py test2 test2.cpp test2.py test3 test3.c test.py typescript weixinbot wxpy wxrobot
[alvin@vm_0_16_centos test]$ exit
exit
script done, file is typescript
[alvin@vm_0_16_centos test]$ script ~/alvin-script學會這兩個基本操作,可以應付很多場景下需要記錄終端的場景。script started, file is /home/alvin/alvin-script
[alvin@vm_0_16_centos test]$ ll
total 64
-rw-rw-r-- 1 alvin alvin 21 nov 10 09:40 test1.py
-rwxrwxr-x 1 alvin alvin 14074 dec 31 07:35 test2
-rw-rw-r-- 1 alvin alvin 403 dec 31 07:35 test2.cpp
-rw-rw-r-- 1 alvin alvin 2093 nov 10 10:50 test2.py
-rwxrwxr-x 1 alvin alvin 8553 jan 7 20:03 test3
-rw-rw-r-- 1 alvin alvin 78 jan 7 20:03 test3.c
-rw-rw-r-- 1 alvin alvin 94 nov 9 23:25 test.py
-rw-rw-r-- 1 alvin alvin 489 jan 11 12:07 typescript
drwxrwxr-x 6 alvin alvin 4096 nov 10 11:19 weixinbot
drwxrwxr-x 6 alvin alvin 4096 nov 10 11:30 wxpy
drwxrwxr-x 11 alvin alvin 4096 nov 10 11:34 wxrobot
[alvin@vm_0_16_centos test]$ echo hello
hello
[alvin@vm_0_16_centos test]$ exit
exit
script done, file is /home/alvin/alvin-script
如何使用 script 與同事協作?
現在有一項工作,需要與同事一起協作,我完成一半,他完成另一半。
首先,我來做我的工作,用 script 記錄一下我的工作過程:
[alvin@vm_0_16_centos test]$ script cooperate-job工作完成之後,將記錄檔案發給同事,他可以使用文字工具開啟,就可以知道你的進度了,然後接著你的進度幹活。script started, file is cooperate-job
[alvin@vm_0_16_centos test]$ echo this is alvin_s job
this is alvin_s job
[alvin@vm_0_16_centos test]$ ls
cooperate-job test1.py test2 test2.cpp test2.py test3 test3.c test.py typescript weixinbot wxpy wxrobot
[alvin@vm_0_16_centos test]$ exit
exit
script done, file is cooperate-job
[alvin@vm_0_16_centos test]$ script -a cooperate-job請他人遠端協助時,如何記錄他的操作過程?script started, file is cooperate-job
[alvin@vm_0_16_centos test]$ echo this is harry_s job
this is harry_s job
[alvin@vm_0_16_centos test]$ pwd
/home/alvin/test
[alvin@vm_0_16_centos test]$ exit
exit
script done, file is cooperate-job
讓他人登陸到自己的電腦,如果是熟人還好,是陌生人的話心裡多少會有些不踏實。為了放心一下,我們還是偷偷記錄一下他的所作所為吧。
我們可以將 script 命令新增到 shell 配置檔案中,使用者一旦登入進來,script 命令就自動啟動,並記錄操作者的所有操作過程。
實現這個目的,我們可以修改.bash_profile
檔案。
vim ~/.bash_profile在最後一行,我們將 script 命令新增進去:
/usr/bin/script -qa your_path #補齊自己的路徑然後儲存,使用 source 或 . 命令使它生效。下次其它人登入到系統時,script 就會自動執行,並將記錄檔案儲存在你所指定的位置。
last login: fri jan 11 15:13:37 2019 from 119.33.28.6script started, file is /home/alvin/test/script-file #提示
[alvin@vm_0_16_centos ~]$
Linux終端記錄神器
我們在除錯程式的時候,免不了要去抓一些 log 然後進行分析。如果 log 量不是很大的話,那很簡單,只需簡單的複製貼上就好。但是如果做一些壓力測試,產生大量 log 而且系統記憶體又比較小 比如嵌入式裝置 那要怎麼處理呢?當然,securecrt 和 mobaxterm 都有將日誌儲存到本地的功能...
Linux終端神器tmux
tmux是linux終端連線的乙個工具。相對於linux自帶的終端tmux有很多新加入的功能,但是對我來說tmux主要有兩個作用,乙個是分屏,乙個是在後台執行服務 在已經安裝好tmux的機器上,只要在終端輸入tmux這個命令就可以進入tmux環境了。1.分屏 ctrl b 左右分屏 ctrl b 上...
Tmux 終端復用神器
sudo yum install y tmux新建會話,如新建立乙個會話以 testsession 命名 tmux new s testsession檢視建立得所有會話 tmux ls登入乙個已有會話。即從終端環境進入會話。第乙個引數a也可以寫成attach。後面的test是會話名稱。tmux a ...