scripts/wget_list

167 lines
4.6 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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