Skip to content

Instantly share code, notes, and snippets.

@webtroter
Created August 9, 2021 20:28
Show Gist options
  • Save webtroter/ff8eb89b7c2152795197875979b95487 to your computer and use it in GitHub Desktop.
Save webtroter/ff8eb89b7c2152795197875979b95487 to your computer and use it in GitHub Desktop.
Sync Seedbox
#!/bin/bash
# Variable Section
SERVER="[email protected]"
SRC=$SERVER":/media/sdf1/username/Completed"
DEST="/media/Share/"
LOGDIR="/var/log/sync-seedbox/"
LOGFILE="/var/log/sync-seedbox/rsync_`date +%Y%m%d-%Hh%M`.log"
LOCKDIR="/var/lock/"
LOCKFILE="/var/lock/`basename $0`.lock"
SCHEDFROM=2
SCHEDTO=14
#HOUR=`date +%H`
if [ -z $1 ]
then
HOUR=`date +%H`
else
echo "
DEBUG MODE Dry Run
"
HOUR=3
fi
# Set HOUR to 3 to disable the scheduling
# HOUR=3
if [ $HOUR -ge $SCHEDFROM ] && [ $HOUR -lt $SCHEDTO ] ;
then
echo "Off-Peak. DOWNLOAD ALL THE THINGS!"
else
echo "Not Off-Peak. ABORT!"
# Check if process is running
if [ -f $LOCKFILE ]; then
MYPID=`head -n 1 "${LOCKFILE}"`
TEST_RUNNING=`ps -p ${MYPID} | grep ${MYPID}`
if [ -n "${TEST_RUNNING}" ]; then
echo "The process is running, killing!"
kill -9 $MYPID
rm $LOCKFILE
else
echo "Not previously running"
fi
fi
echo "Exiting..."
echo "
"
exit 1
fi
# Lock
mkdir "${LOCKDIR}" &>/dev/null
if [ -f $LOCKFILE ]; then
echo "Lockfile Exists"
# Check if process is running
MYPID=`head -n 1 "${LOCKFILE}"`
TEST_RUNNING=`ps -p ${MYPID} | grep ${MYPID}`
if [ -z "${TEST_RUNNING}" ]; then
echo "The process is not running, resuming normal operation!"
rm $LOCKFILE
else
echo "`basename $0` is already running [${MYPID}]"
echo "
"
exit 1
fi
fi
echo $$ > "${LOCKFILE}"
# Sync Process
mkdir "${LOGDIR}" &>/dev/null
rm -f $DEST\rsync_20*
if [ -z $1 ]
then rsync -rlvuz -P -e ssh $SRC $DEST --progress --remove-source-files --log-file=$LOGFILE
else touch $LOGFILE
fi
cp $LOGFILE $DEST # Link Log File
echo "SSH"
#ssh $SERVER "cd Completed/ ; rm -r * ; cd" # Remove Empty Dir in seedbox
echo "SSH fin"
find $LOGDIR/rsync* -mtime +3 -exec rm {} \; # Remove old logs
# Remove Lock
rm $LOCKFILE
echo "
"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment