Created
August 9, 2021 20:28
-
-
Save webtroter/ff8eb89b7c2152795197875979b95487 to your computer and use it in GitHub Desktop.
Sync Seedbox
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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