90 lines
2.8 KiB
Bash
Executable File
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
|