Linux shell指令碼輸出日誌筆記整理
阿新 • • 發佈:2019-02-05
1.日誌方法簡介:
#日誌名稱
log="./upgrade.log" #操作日誌存放路徑
fsize=2000000 #如果日誌大小超過上限,則儲存舊日誌,重新生成日誌檔案
exec 2>>$log #如果執行過程中有錯誤資訊均輸出到日誌檔案中
#日誌函式
#引數
#引數一,級別,INFO ,WARN,ERROR
#引數二,內容
#返回值
function zc_log()
{
#判斷格式
if [ 2 -gt $# ]
then
echo "parameter not right in zc_log function" ;
return ;
fi
if [ -e "$log" ]
then
touch $log
fi
#當前時間
local curtime;
curtime=`date +"%Y%m%d%H%M%S"`
#判斷檔案大小
local cursize ;
cursize=`cat $log | wc -c` ;
if [ $fsize -lt $cursize ]
then
mv $log $curtime".out"
touch $log ;
fi
#寫入檔案
echo "$curtime $*" >> $log;
}
2.使用舉例
shell指令碼內容:
#! /bin/bash
#資料庫變數
localpasswd=xxxx
mysqlhost=xxxxmysqluser=xxxx
mysqlpasswd=xxxx
#日誌名稱
log="./upgrade.log" #操作日誌存放路徑
fsize=2000000
exec 2>>$log #如果執行過程中有錯誤資訊均輸出到日誌檔案中
#日誌函式
#引數
#引數一,級別,INFO ,WARN,ERROR
#引數二,內容
#返回值
function zc_log()
{
#判斷格式
if [ 2 -gt $# ]
then
echo "parameter not right in zc_log function" ;
return ;
fi
if [ -e "$log" ]
then
touch $log
fi
#當前時間
local curtime;
curtime=`date +"%Y%m%d%H%M%S"`
#判斷檔案大小
local cursize ;
cursize=`cat $log | wc -c` ;
if [ $fsize -lt $cursize ]
then
mv $log $curtime".out"
touch $log ;
fi
#寫入檔案
echo "$curtime $*" >> $log;
}
echo "start update shell" ;
mysql -h$sqlip -u$sqluser -p$sqlpasswd -e "use $db;
set names gbk;
--
-- 表的結構 msgm_qdjyly
--
DROP TABLE IF EXISTS msgm_qdjyly;
CREATE TABLE IF NOT EXISTS msgm_qdjyly (
jylyid int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
jylb varchar(20) DEFAULT NULL COMMENT '交易類別',
jylbmc varchar(50) DEFAULT NULL COMMENT '交易類別名稱',
jgm varchar(10) NOT NULL COMMENT '機構碼',
lyfs int(11) NOT NULL COMMENT '路由方式,1指定渠道,2按卡bin渠道',
qdbh varchar(20) DEFAULT NULL COMMENT '渠道編號',
qdmc varchar(50) DEFAULT NULL COMMENT '渠道名稱',
zt int(11) NOT NULL DEFAULT '1' COMMENT '狀態,1正常,2關閉',
bz varchar(100) DEFAULT NULL COMMENT '備註',
PRIMARY KEY (jylyid)
) ENGINE=InnoDB DEFAULT CHARSET=gbk COMMENT='交易路由資訊' AUTO_INCREMENT=7 ;
zc_log INFO "執行 CREATE TABLE msgm_qdjyly 命令的結果為 : $? " ;
echo "執行 CREATE TABLE msgm_qdjyly 命令的結果為 : $? " ;