天天看點

Linux記錄終端互動輸出到螢幕上的日志(script指令)

分享知識 傳遞快樂

在Linux中,有很多的指令在執行完後不知道得不到傳回結果,是以不能判斷是否執行成功,比如:scp、ftp、unzip等指令,如果是手動執行則會列印在目前螢幕上,根據螢幕上所顯示的日志可以判斷出是否執行成功。

那麼如果是用腳本執行呢?比如:scp、ftp、unzip等指令,這些列印在螢幕上的日志我們沒法直接通過重定向來儲存,因為它不是标準輸出;這個時候看不到日志了,怎麼判斷指令是否執行成功呢?

經過查找各種Linux文檔,後來找到一個 script 的指令可以完成。如下所示:

script -q -a /temp/temp.log -c "zip 1001.zip 20191122.csv"      

script 指令不僅可以在目前螢幕前列印出現,同時也儲存到指定檔案中。

script指令 – 記錄終端互動會話過程

script指令可以用作互動終端會話過程的記錄,保留使用者輸入和系統輸出的全過程。

在下述文法中,輸出檔案是用于存儲所有的上機會話過程。如果未指定輸出檔案,所有的會話過程将會寫到目前工作目錄的預設檔案typescript中。

文法格式:script [參數] [檔案]

常用參數:

-a 把會話記錄附加到typescript檔案或指定的檔案後面,保留先前的内容
-c 運作指定的指令而非互動shell
-q 安靜運作模式

參考執行個體

一個簡單的會話過程記錄:

[root@linuxcool ~]# script
 Script started, file is typescript
[root@linuxcool ~]# date
 Mon Sep 23 21:07:14 CST 2019
[root@linuxcool ~]# uname -r
 3.10.0-123.el7.x86_64
[root@linuxcool ~]# exit
 exit
 Script done, file is typescript
[root@linuxcool ~]# cat typescript
 Script started on Mon 23 Sep 2019 09:07:09 PM CST
[root@linuxcool ~]# date
 Mon Sep 23 21:07:14 CST 2019
[root@linuxcool ~]# uname -r
 3.10.0-123.el7.x86_64
[root@linuxcool ~]# exit
 exit
 Script done on Mon 23 Sep 2019 09:07:23 PM CST      

繼續閱讀