shell指令碼列印日誌方法

2021-07-10 16:04:50 字數 1544 閱讀 5296

在shell指令碼執行過程中如果沒有日誌記錄,特別是指令碼比較長的情況下在執行完再定位問題很難發現問題原因,因此在指令碼中增加日誌顯得十分重要。如何在日誌中記錄是哪個使用者什麼時間執行的哪個指令碼,執行結果又是什麼呢?下面介紹日誌列印方法

example 1

呼叫log_info函式,如果希望只記錄相關資訊,不對命令執行結果進行判斷

判斷/etc/passwd是否存在,如果存在就記錄一條日誌「/etc/passwd is exist.」

if [ -f  /etc/passwd  ]

then

echo -e "\033[32m /etc/passwd is exit \033[0m"

log_info "/etc/passwd is exist."

fi

example 2呼叫fn_log函式,如果命令執行成功就回顯綠色資訊,失敗回顯紅色資訊。並在日誌中記錄成功或失敗資訊。

如果指令碼在執行過程中使用者按了ctr+c 終止指令碼執行,回顯「do not send ctr + c when execute script !!!!」,並在日誌中記錄。

記錄日誌函式**如下:

#!/bin/bash

#log path is /var/log/openstack-kilo

#if commod execute sucessed,it will return 0 else return 1

function log_info ()

$ execute $0 [info] $@" >>/var/log/openstack-kilo #執行成功日誌列印路徑

}function log_error ()

$ execute $0 [error] $@ \033[0m" >>/var/log/openstack-kilo #執行失敗日誌列印路徑

}function fn_log ()

trap 'fn_log "do not send ctr + c when execute script !!!! "' 2

shell指令碼列印日誌方法

在shell指令碼執行過程中如果沒有日誌記錄,特別是指令碼比較長的情況下在執行完再定位問題很難發現問題原因,因此在指令碼中增加日誌顯得十分重要。如何在日誌中記錄是哪個使用者什麼時間執行的哪個指令碼,執行結果又是什麼呢?下面介紹日誌列印方法 example 1 呼叫log info函式,如果希望只記錄...

日誌分析的shell指令碼

bin sh 顯示指令碼說明,不同顏色 echo e e 34 1m e 0m echo e e 34 1m format like analysis log.sh 2007 07 01 e 0m echo e e 34 1m default parameters is today e 0m ech...

shell指令碼實踐清除日誌

在生產環境中日誌是運維人員了解和分析生產環境的第一手資料,但是日誌資訊的內容量相當龐大,特別在公有雲環境中執行的業務系統,一般系統盤在20g 40g左右,如果沒有合理的日誌管理方案,很容易出現儲存空間不夠的現象,總結了以下幾種日誌處理的簡單方式,作為自己的實踐筆記,同時和大家一起交流學習。1 部分日...