lkd-planet/sync-kisisel
Oğuz Yarımtepe ca88379231 Syntax fix
2010-06-15 05:46:30 +00:00

115 lines
2.8 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# sync.sh
#
# this script is written to syncronize the lkd planet..
#
# author: Alper KANAT <alper.kanat@linux.org.tr>
PLANET_DIR="${HOME}/public_html/gezegen"
LOG_DIR="$PLANET_DIR/logs"
LOG_FILE="planet-$(date +"%d.%m.%Y")-KISISEL.log"
LOCK_FILE="planet-sync-kisisel.lck"
VERBOSE=0
usage() {
cat << EOF
Synchronizes the planet by invoking the necessary commands and logges everything.
Options:
-h, --help this help
-p, --planetdir useful if the planet dir is somewhere else than the
default one
-v, --verbose print the log instead of writing it to the log file..
Usage: $(basename $0) [--help] [--planetdir /path/to/planet]
EOF
}
while (( $# > 0 )); do
case "$1" in
--help|-h)
usage
shift
exit 0
;;
--planetdir|-p)
case "$2" in
[a-zA-Z0-9\/]*)
PLANET_DIR="$2"
LOG_DIR="$PLANET_DIR/logs"
;;
*)
usage
exit 1
;;
esac
shift 2
;;
--verbose|-v)
VERBOSE=1
shift
;;
-*)
usage
exit 1
;;
?*)
usage
exit 1
;;
esac
done
# checking planet dir
if [[ ! -d "$PLANET_DIR" ]]; then
echo "invalid planet directory.. please specify the correct planet dir with --planetdir /path/to/planet"
exit 1
fi
# checking if the log file created for the current date
if [[ ! -f "$LOG_DIR/$LOG_FILE" ]]; then
touch "$LOG_DIR/$LOG_FILE"
fi
if [[ -f "$PLANET_DIR/$LOCK_FILE" ]]; then
cur_date=`date +%Y%m%d%H%M`
file_date=`cat "$PLANET_DIR/$LOCK_FILE"`
sub=$((cur_date - file_date))
#if the difference is bigger than the 10 minutes interval of cron job, that means we have lock file that requires delete
if [ $sub -gt 15 ]; then
echo "Removing the lock file" >> "$LOG_DIR/$LOG_FILE" 2>&1
rm -f "$PLANET_DIR/$LOCK_FILE"
else
echo "there's a sync process running behind, please try again later.."
exit 1
fi
touch "$PLANET_DIR/$LOCK_FILE"
# lets add the runtime of the script to the lock file
echo "$(date +"%Y%m%d%H%M")" > "$PLANET_DIR/$LOCK_FILE"
cd "$PLANET_DIR"
if (( $VERBOSE == 0 )); then
echo >> "$LOG_DIR/$LOG_FILE" 2>&1
echo "starting new sync ($(date +"%d.%m.%Y, %H:%M"))" >> "$LOG_DIR/$LOG_FILE" 2>&1
echo "-----------------------------------------------------------" >> "$LOG_DIR/$LOG_FILE" 2>&1
"$PLANET_DIR/planet.py" "$PLANET_DIR/gezegen-kisisel/config.ini" >> "$LOG_DIR/$LOG_FILE" 2>&1
echo "-----------------------------------------------------------" >> "$LOG_DIR/$LOG_FILE" 2>&1
else
echo
echo "starting new sync ($(date +"%d.%m.%Y, %H:%M"))"
echo "-----------------------------------------------------------"
"$PLANET_DIR/planet.py" "$PLANET_DIR/gezegen-kisisel/config.ini"
echo "-----------------------------------------------------------"
fi
# if ended successfully delete the lock file
rm "$PLANET_DIR/$LOCK_FILE"