分享知識 傳遞快樂
在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