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
|
||
# -----------------------------------------------------------
|
||
# **********************************************************************************************
|
||
|