167 lines
4.6 KiB
Plaintext
167 lines
4.6 KiB
Plaintext
|
#!/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
|
|||
|
# -----------------------------------------------------------
|
|||
|
# **********************************************************************************************
|
|||
|
|