scripts/loran_warez.sh

90 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
#-----------------------------------------------------------------------
# VARIABLES
#-----------------------------------------------------------------------
# the warez dir
WAREZ="lib"
# remote
R_USER="warez"
R_HOST="ks3367494.wezee.eu"
R_PATH="/usr/local/warez"
# rsync
# bwlimit peutêtre défini à 2000 pour limiter la conso de bande passante
RSYNC_DAEMON="/usr/local/bin/rsync"
RSYNC_OPT="--quiet --recursive --update --compress --stats --human-readable --ipv4"
RSYNC_BWLIMIT="--bwlimit=6000"
# ssh
SSH_PORT="22420"
SSH_RSA="/home/lsm/.ssh/warez_id_rsa"
#local
L_USER="lsm"
L_GROUP="lsm"
L_PATH="/usr/local/download"
#-----------------------------------------------------------------------
# JOURNAL
#-----------------------------------------------------------------------
LOG_DIR="/var/log/warez"
if [ ! -d ${LOG_DIR} ]; then
mkdir ${LOG_DIR}
fi
LOG="${LOG_DIR}/`date +%Y%m%d%H%M`.log"
touch ${LOG}
#-----------------------------------------------------------------------
# TESTS
#-----------------------------------------------------------------------
# le script est-il déjà en cours d'exécution ?
if [ -f "${LOCK}" ]; then
printf "\n Warez job's is already in progress, we'll try again later...\n\n" >> ${LOG}
exit 1
fi
# es-ce que $R_HOST est reachable ?
ping -c 3 ${R_HOST}
if [ "$?" -eq "0" ]; then
printf "\n ${R_HOST} is reachable, let's go for the warez job's \n" >> ${LOG}
else
printf "\n HOUSTON we've lost ${R_HOST}, no warez job's for now :( \n" >> ${LOG}
exit 1
fi
#
#-----------------------------------------------------------------------
# GRAB MOI TOUT CE VILAIN STUFF BRO'
#-----------------------------------------------------------------------
#
# we're starting bro'
LOCK="/tmp/frw.run"
touch ${LOCK}
# grab all of 'em
SSH="ssh -l ${R_USER} -i ${SSH_RSA} -p ${SSH_PORT}"
RSYNC="${RSYNC_DAEMON} ${RSYNC_OPT} ${RSYNC_BWLIMIT}"
${RSYNC} -e "${SSH}" ${R_USER}@${R_HOST}:${R_PATH}/${WAREZ} ${L_PATH} >> ${LOG} 2>&1
# btw fix owner and permissions
chown -R ${L_USER}:${L_GROUP} ${L_PATH}/${WAREZ} >> ${LOG} 2>&1
find ${L_PATH}/${WAREZ} -type d -exec chmod 755 {} \; >> ${LOG} 2>&1
find ${L_PATH}/${WAREZ} -type f -exec chmod 644 {} \; >> ${LOG} 2>&1
# we're done bro'
rm ${LOCK}
exit 0
#-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
#entrée dans le /etc/crontab
# 1st line is for normal days of the week
# 2nd line have to be commented if you're at home and need full Internet bandwidth!
# 3rd line is for week-end time
#23 1-10 * * mon,tue,wed,thu root /bin/sh /root/fetch_remote_warez.sh
#32 11-17 * * mon,tue,wed,thu root /bin/sh /root/fetch_remote_warez.sh
#23 5-10 * * fri,sat,sun root /bin/sh /root/fetch_remote_warez.sh
#mais je vais modifier ça, et faire tester au script la présence d'un fichier nowarez dans un rep accessible via samba, if true = no warez job else