Des scripts que j'utilise au quotidien

Latest commit b0b9a25 5 years ago
README.md

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
    gawk admin
    pour lire de la conf, est assez flexible

  2. monitoring (et monitoring.d/)
    bash admin
    pour faire du monitoring

  3. menuadm
    bash admin
    pour gérer les accès à certaines ressources, et proposer un menu d'administration

  4. smsapi
    bash Free
    pour envoyer des SMS depuis la freebox vers le numéro FreeMobile associé

  5. colors
    bash
    juste pour afficher les codes couleurs pour rendre plus joli de la sortie terminal

  6. checkmusic
    python
    vérifie que les tags des fichiers musicaux seront bien lus par cherrymusic

  7. printer
    bash SNMP
    récupère des infos sur une imprimante via SNMP

  8. 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

  9. 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:
    • $HOME/.config/${basename}
    • ${0}.d
    • /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 <modulo> : 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