Vous administrez un ou plusieurs annuaires ?
Vous possédez un serveur dédié sous linux (hop hop hop, circulez, pas de windows ici) ?
Vous souhaitez vérifier l’intégralité de vos liens, sans cliquer sur chaque lien bien sur ?
Toutes nos lignes sont occupées, ne quittez pas, une opératrice va prendre votre appel. Votre temps d’attente est inférieur a 1 minute.
Commençons donc par ouvrir notre boite a outil pour savoir de quoi nous allons avoir besoin, et définissons un roadbook pour savoir ou nous allons.
1 – Ma boite a outil :
Je vous paste le code du script commenté, et une petite explication viendra après.
– Nous allons utiliser linklint pour vérifier nos liens => aptitude install linklint.
– Savoir se servir un minimum du client mysql (je vous rassure l’exemple est commenté).
– Si vous souhaitez recevoir les rapports par email, un MTA fonctionnel.
– Un peu de graisse, une cle de 25, un compresseur, une bonne biere et on y va …
2 – La feuille de route :
Je vais en fait vous expliquer ce que va faire ce gentil script BASH qui va travailler pour nous.
– Il va commencer par extraire les urls présentes dans votre BDD.
– Il va ensuite passer un coup de linklint sur ces urls pour vérifier leur validité.
– Et il va au choix envoyer le rapport par email, ou placer le CR de linklint au format HTML dans un répertoire de votre site web.
3 – On enfile le bleu de travail et on y va
Je vous paste le code du script commenté et on verra après son fonctionnement.
linkchecker.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #!/bin/bash export PATH; # On load le fichier de config CONFFILE="./linkchecker.config" [ -f $CONFFILE ] && source $CONFFILE # Si on a un fichier en parametre, on check ce fichier if [ $# -eq 1 ] then urls_list=$1 else # Sinon on travail sur la BDD # On genere la liste des url echo "SELECT " $mysql_field " FROM " $mysql_table " WHERE "$mysql_field"!=''" | mysql -h $mysql_host -u $mysql_user -p''$mysql_pas sword'' -N -D $mysql_bdd > urls_list fi # Ensuite pour chaque url on va utiliser linklint linklint @@urls_list -quiet -error -doc report # On efface le fichier urls_list si on # a pas passe le fichier en parametre if [ $# -ne 1 ] then rm urls_list fi # On recupere le fichier urlfail.html SI il existe if [ -e "report/urlfail.html" ] then # On souhaite un rapport par email if ${report_by_email:=true} ; then cat ./report/urlfail.html | mail -a"Content-Type: text/html;" -s "Linkchecker Report" $mail_dest else # Pas de rapport par mail, mais copie du fichier dans un rep cp ./report/urlfail.html $html_report_path fi fi # C'est termine, alors on delete le directory "report" rm -rf ./report |
Maintenant passons au fichier de configuration :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | # Un rapport par email ou pas report_by_email=true; # Si rapport par email, votre email mail_dest="you@domain.tld"; # Si pas de rapport mail, path ou l'on va copier le report html_report_path="/tmp"; #html_report_path="/var/www/monsite.com"; ############################################################ # Infos relatives a votre BDD pour aller recuperer les urls ############################################################ # Host Mysql mysql_host="localhost" # User Mysql mysql_user="my_user" # Password Mysql mysql_password="my_password" # BDD Mysql mysql_bdd="my_bdd" # Table mysql mysql_table="my_table" # Champ contenant l'url mysql_field="url" |
Enfin pour le fonctionnement, vous disposez de 2 modes :
I – Lecture du fichier passé en paramètre :
./linkchecker.sh urls_file
Dans ce cas, votre fichier doit contenir une url par ligne
II – Verification des urls de votre BDD
./linkchecker
Ici le script va se débrouiller comme un grand pour checker a partir de votre BDD.
Dans tous les cas, n’oubliez surtout pas de modifier le fichier de configuration pour définir le mode de rapport souhaité (envoi d’un email ou copie du fichier dans un répertoire web [ou autre] ).
Maintenant le package All-in-one :
Une réponse sur « Verifiez vos urls grace a linklint »
Mise à part le script formidable que tu nous donne, le top de cette source ce trouve dans le fichier de licence 🙂
Que du bonheur !
Sinon ta un souci sur les input des commentaires un padding-left 3px irait amplement 😉
merci