輸出執(zhí)行操作和打印日志的shell腳本實(shí)例
cat /mnt/log_function.sh #!/bin/bash #log function ####log_correct函數(shù)打印正確的輸出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####顯示打印日志的時(shí)間 USER=$(whoami) ####那個(gè)用戶在操作 echo “${DATE} ${USER} execute $0 [INFO] $@” >>/var/log/log_info.log ######($0腳本本身,$@將參數(shù)作為整體傳輸調(diào)用) }
log_error打印shell腳本中錯(cuò)誤的輸出到日志文件
function log_error () { DATE=`date “+%Y-%m-%d %H:%M:%S”` USER=$(whoami) echo “\${DATE} \${USER} execute \$0 [INFO] \$@” >>/var/log/log_error.log }
###fn_log函數(shù) 通過if判斷執(zhí)行命令的操作是否正確,并打印出相應(yīng)的操作輸出
function fn_log () { if [ $? -eq 0 ] then log_correct “$@ sucessed!” echo -e “\033[32m $@ sucessed. \033[0m” else log_error “$@ failed!” echo -e “\033[41;37m $@ failed. \033[0m” exit fi }
知識(shí)點(diǎn):
(1) $?判斷執(zhí)行命令的返回值,命令執(zhí)行正確返回0,命令執(zhí)行錯(cuò)誤返回1
(2)”$@” 將執(zhí)行命令 以一個(gè)參數(shù)的形式顯示出來。
(3)echo -e “\033[32m $@ sucessed. \033[0m” 成功時(shí)以紅色形式顯示執(zhí)行命令的內(nèi)容。
(4) echo -e “\033[41;37m $@ failed. \033[0m” 失敗時(shí)以綠色的形式顯示執(zhí)行命令的內(nèi)容
(5)date “+%Y-%m-%d %H:%M:%S” 顯示詳細(xì)的日志時(shí)間(年月日時(shí)分秒)
調(diào)用日志函數(shù)腳本的執(zhí)行腳本(log_correct log_error fn_log)
vi log_exec.sh #!/bin/sh if [ -e /mnt/log_function.sh ] then source /mnt/log_function.sh else echo -e “\033[41;37m /mnt/log_function.sh is not exist. \033[0m” exit 1 fi USER=`whoami` if [ $USER == root ] then log_correct “execute by root” else log_error “execute by ${USER}” echo -e “\033[41;37m you must execute this scritp by root. \033[0m” exit 1 fi if [ -e /var/log/message ] then echo 0 > /var/log/message fn_log “echo 0 > /var/log/message” fi
以上這篇輸出執(zhí)行操作和打印日志的shell腳本實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux Shell腳本系列教程(三):變量和環(huán)境變量
這篇文章主要介紹了Linux Shell腳本系列教程(三):變量和環(huán)境變量,本文講解了普通變量、獲取字符串的長度、環(huán)境變量等內(nèi)容,需要的朋友可以參考下2015-06-06Shell腳本自動(dòng)部署項(xiàng)目的方法步驟
本文主要介紹了Shell腳本自動(dòng)部署項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03一天一個(gè)shell命令 linux文本操作系列-tac,rev命令詳解
這篇文章主要介紹了一天一個(gè)shell命令 linux文本操作系列-tac,rev命令詳解,需要的朋友可以參考下2016-06-06Shell腳本中判斷輸入?yún)?shù)個(gè)數(shù)的方法
這篇文章主要介紹了Shell腳本中判斷輸入?yún)?shù)個(gè)數(shù)的方法,使用內(nèi)置變量$#即可實(shí)現(xiàn)判斷輸入了多少個(gè)參數(shù),需要的朋友可以參考下2014-10-10Shell腳本編寫Nagios插件監(jiān)控程序資源占用
這篇文章主要介紹了Shell腳本編寫Nagios插件監(jiān)控程序資源占用,本文先是給出了需求和需求分析,然后給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-12-12