Linux終端記錄神器

咱們在調試程序的時候,免不了要去抓一些 log ,而後進行分析。若是 log 量不是很大的話,那很簡單,只需簡單的複製粘貼就好。可是若是作一些壓力測試,產生大量 log ,並且系統內存又比較小(好比嵌入式設備),那要怎麼處理呢?固然,secureCRT 和 mobaXterm 都有將日誌保存到本地的功能,使用起來也是很方便。可是有些工具,好比 putty,就沒這樣的功能了。這時終端裏的記錄器—— script 就派上用場了。

使用場景linux

一、調試會產生大量 log 的應用程序,而且須要保存到本地進行進一步分析;typescript

二、與同事協同工做,本身將工做完成了一半,能夠將操做過程記錄下來,發給同事,同事能夠根據記錄接着工做;vim

三、讓人遠程協助你,擔憂對方使壞,同時也能夠留下案底,最好將他的操做記錄下來centos

如何使用 script 命令?bash

默認狀況下,直接輸入 script 這個命令便可,它會在當前目錄自動建立一個 typescript 文件,以後你在此終端的全部操做都會被記錄在這個文件裏。app

記錄文件是一個文本文件,可使用任意的文本工具打開查看。工具

若是要退出記錄,能夠在終端裏按快捷鍵 ctrl + D 或直接輸入 exit 。在退出 script 前,你會發現,記錄文件大小爲 0 Kb,當退出後,文件大小會變大。oop

[alvin@VM_0_16_centos test]$ 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

若是咱們想要本身起個文件名,或者將文件放在其它位置,那麼咱們能夠直接在 script 後面跟上文件名便可。測試

[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

學會這兩個基本操做,能夠應付不少場景下須要記錄終端的場景。this

如何使用 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

工做完成以後,將記錄文件發給同事,他可使用文本工具打開,就能夠知道你的進度了,而後接着你的進度幹活。

若是他要接着在你的記錄文件裏記錄他的操做的話,能夠加一個 -a 選項,即 append 的縮寫。

[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 就會自動運行,並將記錄文件保存在你所指定的位置。

在這裏,-q 選項表明靜默記錄,對方將不知道你在後臺記錄。若是不使用這個選項,則他會收到這個提示:

Last login: Fri Jan 11 15:13:37 2019 from 119.33.28.6
Script started, file is /home/alvin/test/script-file  #提示
[alvin@VM_0_16_centos ~]$
相關文章
相關標籤/搜索