#!/bin/bash ################################################################################################ ## ## Nom: dl_plowshare.sh ## ## Version: 0.1 ## ## Licence: Creative Commons ## ## Comportement: Analyse un répertoire pour savoir si il contient un fichier .down qui ## contiendra des liens ddl (megaupload, DL_FILE). Créée un dossier du même nom que le fichier et ## y télécharge les liens qu'il contient avec plowshare. Change ensuite l'extension du fichier ## en .old pour qu'il ne soit pas retéléchargé. ## ## /!\ Changer la variable DL_DIR /!\ ## ## Appliquer une tache cron du style: ## */2 * * * * /chemin/script/dl_plowshare.sh ## ## ## ################################################################################################ ## ## Date de création: 03-10-2011 ## ## Auteur: Gardouille ## ## ## Dernière modifications: ## 03-10-2011 - 0.1: ## - # ********************************************************************************************** ## //2011 - : ## - ## - # ********************************************************************************************** ## ## À modifier: ## - Possibilité de récupérer le répertoire à analyser en argument ## ## ################################################################################################ # ********************************************************************************************** # # Variables globales # # ----------------------------------------------------------- # Fichier temporaire pour savoir si le script est déjà en cours TMP_FILE="/tmp/dl_plowshare" # Répertoire à analyser pour trouver un fichier contenant une liste de lien DL_DIR="/media/data/download/ddl" # Nom du fichier (sans l'extension) contenant les liens à télécharger #BASE_DL_FILE="" # Extension de fichier à analyser EXTENSION="down" # Fin des variables globales # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Fichiers globaux # # ----------------------------------------------------------- # # Fin des fichiers globaux # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Fonctions globales # # ----------------------------------------------------------- # Divers echos DL_FILE echoi() { echo " (ii) $*" >> "${log}" ; } echok() { echo " (ok) $*" >> "${log}" ; } echow() { echo " (!!) $*" >> "${log}" ; } echnk() { echo " (EE) $*" >> "${log}" ; } # Fin des fonctions globales # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Programme principale # # ----------------------------------------------------------- ## Vérifier que le script n'est pas déjà en cours if [ ! -f "${TMP_FILE}" ]; then ## Créer un fichier temporaire pour indiquer que le script est en cours d'exécution touch "${TMP_FILE}" ## Se placer dans le dossier à analyser pushd "${DL_DIR}" > /dev/null ## Analyser le dossier pour récupérer UN fichier .down (nom de base + extension) DL_FILE=`\ls | \grep ."${EXTENSION}"|head -n 1` ## Récupérer le nom du fichier (sans extension) BASE_DL_FILE=${DL_FILE%.*} ## Créer un dossier du même nom et se placer dedans mkdir "${BASE_DL_FILE}" pushd "${DL_DIR}"/"${BASE_DL_FILE}" > /dev/null ## Déplacer le fichier .down dans le dossier mv "${DL_DIR}"/"${DL_FILE}" . ## Lancer le téléchargement en passant en argument le fichier .down plowdown -m "${DL_FILE}" ## Ressortir du dossier de téléchargement popd > /dev/null ## Ressortir de l'emplacement à analyser popd > /dev/null ## Supprimer le fichier temporaire rm "${TMP_FILE}" else ## Script déjà en cours echo "Script de téléchargement déjà en cours." fi exit 0 # Fin de la boucle principale # ----------------------------------------------------------- # **********************************************************************************************