使用shell指令碼編寫程式定時查詢資料庫,根據資料庫結果傳送簡訊和郵件。定時任務使用crontab實現,具體實現如下。
crontab -e進行編輯,使用方法類似於vi,
例子:0 * * * * bash /home/work/opt/nginx/sbin/nginx_log.sh
#!/bin/bash
if [ $# -lt 2 ]
then
echo "params error";
exit;
fi#建立日誌檔案
log_file_name="/home/work/monitor/***"$1".log"
if [ ! -e "$log_file_name" ]
then
touch $log_file_name;
filog=$(date "+%y-%m-%d %h:%m:%s");
#當前時間
current_time=$(date +%s);
echo $current_time
#查詢開始時間
start_time=$(($current_time-$3))
echo $start_time;
tag=$
query_total_num_sql="select count(1) from unionsdkmonitor where tag like '%$%' and timestamp>='$' and timestamp<='$'"
total_num=$(/usr/bin/mysql -h10.11.0.90 -p4051 -uuser -ppassword -n gamesdkmonitor -s -e "$");
echo $;
error_result="0";
query_error_num_sql="select count(1) from unionsdkmonitor where tag like '%$%' and timestamp>='$' and timestamp<='$' and result=$";
error_num=$(/usr/bin/mysql -h10.11.0.90 -p4051 -uuser -ppassword -n gamesdkmonitor -s -e "$");
echo $
#總條數小於5條不報警。
if [ 5 -gt $ ]
then
exit;
fierror_per=$[error_num*100/total_num];
time=$[$3/60];
log=$" "$2" totalnum="$" error_num="$" error_per="$"%";
#記錄日誌
echo $log >> $log_file_name
#大於閥值,傳送簡訊和郵件
echo $error_per
if [ $error_per -gt 50 ]
then
message="$2介面過去$time分鐘訪問$total_num次,失敗$error_num次,錯誤率為百分之$error_per,時間"$(date "+%y-%m-%d %h:%m:%s")".";
#***
phones=(***x ***x)
#phones=(15011549635)
for var1 in $
do#傳送簡訊
#傳送郵件
/home/liuqi/sendemail -t ***@***.com,***@***.com -f mail@***.com -s smtp.qiye.163.com:25 -xu ***@***.com -xp lv6byumw8a -m $message -u "標題"
echo $message;
fiexit;
php實現查詢資料庫返回json資料
示例 一 設定返回json格式資料 連線資料庫 link mysql connect localhost root root or die unable to connect to the mysql mysql query set names utf8 mysql select db jilinw...
shell中使用SQL實現查詢
先把文字進行格式處理,然後以空格為分隔符,取第二個空格後的字串,排序,去重,再降序排列,取前5個 arr cat 0100055f detail.txt sed e d awk f sort uniq c sort nr head 5 awk len 獲取陣列長度 for i 0 i len i d...
資料庫執行SQL語言實現查詢功能的方法
一 首先建立了三個關係 table 分別存放以下資訊 student 一部分 score 一部分 course 一部分 二 結合具體問題執行資料庫的sql語言,實現查詢的功能,先是詳細的查詢問題實踐,後面是關於查詢的我所總結的知識點 1 從 student 表中查詢 1994 年出生的所有學生,並將...