Linux > BASH > URL監視

このページは新規作成の雛形です。




#!/bin/bash

########################################################################################
# URL監視スクリプト
#   必要な設定は設定ファイル(*.ini)に設定する必要があります。
#---------------------------------------------------------------------------------------

LHOME=`dirname "$0"`;
LNAME=`basename "$0"`;
LTITLE=`basename "$0" .sh`;

# * message
function msg() {
    /bin/echo `date +"[%Y-%m-%d %H:%M:%S] \"${LNAME}\"($$) $*"` | tee -a "${LOG_PATH}";
}

# * commnd
function os_cmd() {
    msg "command: \"$*\"";
    eval $* 2>&1 | tee -a "${LOG_PATH}";
    RTN=${PIPESTATUS[0]};

    msg "command: \"$*\" return $RTN";
    return $RTN;
}


###
export LOG_PATH=${LHOME}/${LTITLE}.log
if [ -f "${LHOME}/${LTITLE}.ini" ]; then
    . "${LHOME}/${LTITLE}.ini";
else
    msg "ERR: \"${LHOME}/${LTITLE}.ini\" does not found."
    msg "NOTICE: ${LNAME} is end with exitcode(1)."
    exit 1;
fi;


###
if [ -f "${LHOME}/logs/${LNAME}.pid" ]; then
    PID=`cat "${LHOME}/logs/${LNAME}.pid"`;
    /bin/ps "${PID}" 2>&1 >/dev/null;
    if [ $? -eq 0 ]; then
        msg "ERR: \"${LNAME}\" is already started."
        msg "NOTICE: ${LNAME} is end with exitcode(2)."
        exit 2;
    fi;
fi;
echo $$ >"${LHOME}/logs/${LNAME}.pid";

###
msg "NOTICE: ${LNAME} is started."

find "${LHOME}/url.d" -maxdepth 1 -type f -name "*.url"  | while read URLFILE
do
    export TARGET_URL=
    export TARGET_NAME=
    export DESCRIPTION=
    . "${URLFILE}";
    
    OUTPUT=`basename "${URLFILE}" .url`;
    os_cmd wget --no-check-certificate "${TARGET_URL}" -O "${LHOME}/logs/${OUTPUT}.output";
    if [ $? -eq 0 ]; then
        msg "INFO: ${TARGET_URL} is valid state.";
    else
        msg "ERROR: ${TARGET_URL} is invalid state.";
    fi;
done;

/bin/rm -f "${LHOME}/logs/${LNAME}.pid" 2>&1 >/dev/null;

msg "NOTICE: ${LNAME} is end with exitcode(0)."

exit 0; 




最終更新日 : [2013-12-01]
最終更新:2013年12月01日 11:36