117 lines
2.8 KiB
Bash
Executable File
117 lines
2.8 KiB
Bash
Executable File
#!/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")-LKD.log"
|
||
LOCK_FILE="planet-sync-lkd.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
|
||
|
||
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-lkd/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-lkd/config.ini"
|
||
echo "-----------------------------------------------------------"
|
||
fi
|
||
|
||
# if ended successfully delete the lock file
|
||
rm "$PLANET_DIR/$LOCK_FILE"
|