このページは新規作成の雛形です。
#!/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日 11:36