167 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/sh
 | ||
| ################################################################################################
 | ||
| ## 
 | ||
| ##  Nom: wget_list 
 | ||
| ##
 | ||
| ##  Licence: Creative Commons
 | ||
| ##
 | ||
| ##  Comportement: 
 | ||
| ##    Permet de récupérer tous les liens listés dans un fichier en lancant plusieurs wget 
 | ||
| ##     en parallèle.
 | ||
| ##    Le fichier qui contient les liens est le premier paramètre passé au script.
 | ||
| ##    Le dossier où enregistré tous les liens correspond au deuxième paramètre passé au script,
 | ||
| ##     ou à un dossier prédéfini.
 | ||
| ##
 | ||
| ##
 | ||
| ##
 | ||
| ################################################################################################
 | ||
| ##
 | ||
| ##  Date de création: 03/06/2010
 | ||
| ##
 | ||
| ##  Auteur: Gardouille
 | ||
| ##
 | ||
| ##
 | ||
| ##  Dernière modifications:
 | ||
| ##  O3/O6/2010: - Création
 | ||
| # **********************************************************************************************
 | ||
| ##  02/01/2010: - 
 | ||
| ##              - 
 | ||
| # **********************************************************************************************
 | ||
| ##
 | ||
| ##
 | ||
| ##
 | ||
| ################################################################################################
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Variables globales
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| # Fichier qui contient la liste des liens à télécharger: "${1}"
 | ||
| list_url=${1}
 | ||
| # Répertoire où vont être stockés les fichiers téléchargés
 | ||
| save_dir=${2}
 | ||
| 
 | ||
| # Fin des variables globales
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Fonctions globales
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| # Divers echos ...
 | ||
| echoi() { echo " (ii) $*" >> "${log}" ; }
 | ||
| echok() { echo " (ok) $*" >> "${log}" ; }
 | ||
| echow() { echo " (!!) $*" >> "${log}" ; }
 | ||
| echnk() { echo " (EE) $*" >> "${log}" ; }
 | ||
| 
 | ||
| # Fonction d'aide
 | ||
| help()
 | ||
| {
 | ||
|   cat << EOF
 | ||
|   Description:
 | ||
|    Ce script permet de télécharger tous les liens stockés dans un fichier texte.
 | ||
| 
 | ||
|   Utilisation:
 | ||
|    wget_list FICHIER_URL DOSSIER_OU_SAUVEGARDER
 | ||
| 
 | ||
|   Arguments:
 | ||
|    FICHIER_URL:  Chemin du fichier qui contient la liste des liens à télécharger
 | ||
|    DOSSIER_OU_SAUVEGARDER: Dossier où vont être sauvegardés les fichiers téléchargés
 | ||
| 
 | ||
|   Options:
 | ||
|    -h, --help, help   Affiche cette aide.
 | ||
| EOF
 | ||
| }
 | ||
| # Fin des fonctions globales
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 | ||
| 
 | ||
| # **********************************************************************************************
 | ||
| # 
 | ||
| # Programme principale
 | ||
| # 
 | ||
| # -----------------------------------------------------------
 | ||
| 
 | ||
| ## Gestion des arguments:
 | ||
| # Si l'utilisateur veut afficher l'aide
 | ||
| if [ "${1}" = "-h" ] || [ "${1}" = "--help" ] || [ "${1}" = "help" ]
 | ||
| then
 | ||
|   # On appelle la fonction help
 | ||
|   help
 | ||
|   # Et on quitte le script
 | ||
|   exit 0
 | ||
| fi
 | ||
| 
 | ||
| # Vérification du nombre d'arguments:
 | ||
| case $# in
 | ||
|   2 ) # 2 arguments
 | ||
|     # Si le premier argument n'est pas un fichier
 | ||
|     if [ ! -f "${1}" ]
 | ||
|     then
 | ||
|       echo "!!ERREUR: mauvais premier argument!!"
 | ||
|       # On affiche l'aide
 | ||
|       help
 | ||
|       # Puis on quitte le script
 | ||
|       exit 1
 | ||
|     
 | ||
|     # Sinon, si le deuxième argument n'est pas un dossier
 | ||
|     elif [ ! -d "${2}" ]
 | ||
|     then
 | ||
|       echo "!!ERREUR: mauvais deuxième argument!!"
 | ||
|       # On affiche l'aide
 | ||
|       help
 | ||
|       # Et on termine le script
 | ||
|       exit 1
 | ||
|     
 | ||
|     # Sinon, c'est que tous les arguments sont corrects
 | ||
|     else
 | ||
|       echo "Analyse de ${1} ..."
 | ||
|     fi
 | ||
|     ;;
 | ||
|   0 ) # 0 argument
 | ||
|     echo "!!ERREUR: aucun argument présent!!"
 | ||
|     # On affiche l'aide
 | ||
|     help
 | ||
|     # Et on termine le script 
 | ||
|     exit 1
 | ||
|     ;;
 | ||
|   * ) # Plus d'un argument
 | ||
|     echo "ERREUR: Vous ne pouvez pas mettre plus de deux arguments"
 | ||
|     # On affiche l'aide
 | ||
|     help
 | ||
|     # Et on termine le script
 | ||
|     exit 1
 | ||
|     ;;
 | ||
| esac 
 | ||
| # Fin de la gestion des arguments
 | ||
| 
 | ||
| # On vérifie que le dossier où vont être sauvegardés les fichiers existe
 | ||
| [ ! -d "${save_dir}" ] && mkdir -p "${save_dir}"
 | ||
| 
 | ||
| # On se place dans le dossier où sauvegarder les fichiers télécharger
 | ||
| cd ${save_dir}
 | ||
| 
 | ||
| # On télécharge les liens contenu dans le fichier
 | ||
| #  Options:
 | ||
| #  -n 1: le nombre maximum de paramètre envoyé est de 1
 | ||
| #  -P 10: wget sera lancé 10 fois (en parallèle)
 | ||
| cat ${list_url} | xargs -n -P 10 wget
 | ||
| 
 | ||
| # On revient au dossier précédent
 | ||
| cd - > /dev/null
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| exit 0
 | ||
| # Fin de la boucle principale
 | ||
| # -----------------------------------------------------------
 | ||
| # **********************************************************************************************
 | ||
| 
 |