# Des scripts que j'utilise Ici il n'y a ques des trucs "récents". Les vieux scripts oubliés, mal écrits (enfin à mon goût plus mal écrits que ceux-ci ;)), ou obsolètes n'y sont pas encore (peut-être bientôt une branche "oldies") 1. [readconf](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/readconf) gawk admin pour lire de la conf, est assez flexible 1. [monitoring](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/monitoring) (et monitoring.d/) bash admin pour faire du monitoring 1. [menuadm](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/readconf) bash admin pour gérer les accès à certaines ressources, et proposer un menu d'administration 1. [smsapi](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/smsapi) bash Free pour envoyer des SMS depuis la freebox vers le numéro FreeMobile associé 1. [colors](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/colors) bash juste pour afficher les codes couleurs pour rendre plus joli de la sortie terminal 1. [checkmusic](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/checkmusic) python vérifie que les tags des fichiers musicaux seront bien lus par cherrymusic 1. [printer](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/printer) bash SNMP récupère des infos sur une imprimante via SNMP 1. [thumbnails](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/thumbnails) bash ImageMagick Piwigo crée des vignettes de toutes les tailles pour les galeries photos, pratique sur un raspberry pour éviter la génération à la demande qui ralenti le visonnage des galeries 1. [upgrade_status](https://sebmarque.hd.free.fr/git/seb/scripts/raw/master/upgrade_status) awk debian admin affiche l'état des mises à jour sur une machine debian # Guides d'utilisation tous les scripts peuvent prendre un autre nom que celui fourni, et ils peuvent être installés n'importe où, ce n'est pas un problème. ## readconf `readconf help` pour afficher l'aide dans le pager ## monitoring * Le script est un moteur _bash_ qui `source` les fichiers passés en paramètres, ou ceux par défaut, contenus dans un ou plusieurs répertoires. Pour le moment ces répertoires sont fixés et dépendent du nom du script (`${basename}`), dans l'ordre: 1. `$HOME/.config/${basename}` 2. `${0}.d` 3. `/usr/local/share/${basename}` * Les fonctions ne commençant pas par un caractère alphabétique sont ignorées, et toutes celles commençant par un caractère alphanumérique sont exécutées les unes après les autres, sans ordre défini. Pour exécuter les fontions dans un ordre précis il suffit de les préfixer par *underscore* et de les lister dans une fonction qui sera exécutée. * fonctions prédéfinies: * `_turns ` : permet de ne lancer la fonction que tous les *modulo* tours * `_load fichier [fichier [fichier...]]` : permet de sourcer de la configuration supplémentaire * Le code de sortie est ignoré, seule la sortie standard de chaque fonction exécutée est prise en compte (via `echo` ou `printf` par exemple). * Les messages collectés sont rassemblés en un message unique hiérarchisé qui reprend les informations sur les fichiers sourcés, la fonction qui génère le message reporté, et le message lui-même, formatté pour un envoi par SMS (cf. smsapi). * Si aucun message n'est apparu depuis 24h après le dernier envoi d'alerte le plus ancien alors rien n'est envoyé, mais il est possible d'obtenir toutes les alertes actuelles sur la sortie standard (sans formattage SMS). ## upgrade_status * affiche le résultat des mouvements de paquets gérés par dpkg (erreurs, mises-à-jour, suppression, ajout, ...) * `upgrade_status [[-]stdin] [date] [help]` * `-stdin` ou `stdin` pour lire les entrées depuis un autre fichier que `/var/log/dpkg.log` exemple: `zcat /var/log/dpkg.log.3.gz | upgrade_status stdin 2016-12-03` * date sous la forme **yyyy-mm-dd**, si aucune date n'est fournie prend la date du jour * chaque nom de paquet est préfixé par ` -> ` * ne gère pas encore correctement la suppression de résidus de configuration (perçue comme une erreur) ## smsapi * ne fonctionne qu'avec Freebox (et Freemobile ?) * la configuration tient dans un fichier sourcé par le script, au format bash: * `ID=` identifiant * `PASS=` mot de passe (foruni par la console de gestion du compte freebox * `HSUP=` nombre compris entre 1 et 23 définissant l'heure au-delà de laquelle l'envoi sera reporté à HINF. l'envoi ne se fera pas exactement à partir de $HINF, mais selon un algorithme qui permet de répartir sur plusieurs minutes les éventuels multiples envois pour ne pas se faire bloquer par l'API de Free * `HINF=` nombre compris entre 0 et 22 définissant l'heure à partir de laquelle l'envoi est immédiat