Wiki adminsys - Cebador.fr

Wiki d'administration systèmes et réseaux.
Simples notes personnelles et non réelle documentation exhaustive.
Donc désolé pour les coquilles et les inexactitudes.
Doc sous licence GNU FDL 1.3

Outils pour utilisateurs

Outils du site


bash

Bash

Chaque fichier commence par le shebang

#!/bin/bash

Faire le plus possible que le code soit Posix compliant bashism : utiliser de la syntaxe bash qui n'est pas posix compliant

Tester son script avec

shellcheck NOM_SCRIPT

Redirections

  • Rediriger la sortie d’erreur (STDERR) vers la sortie standard (STDOUT) dans /dev/null :
    COMMANDE > /dev/null 2>&1
  • Rediriger la sortie d’erreur (STDERR) et le sortie standard (STDOUT) dans un fichier de log :
    COMMANDE > /var/log/mon.log 2>&1

Variables

Tests

Tests sur les objets du système de fichiers

Les opérateurs de tests disponibles sont, pour les objets du système de fichiers :

  • vrai si l'objet désigné par $FILE existe dans le répertoire courant
    [ -e $FILE ] 
  • vrai si l'objet désigné par $FILE existe dans le répertoire courant et si sa taille est supérieure à zéro
    [ -s $FILE ]
  • vrai si l'objet désigné par $FILE est un fichier dans le répertoire courant,
    [ -f $FILE ]
  • vrai si l'objet désigné par $FILE est un fichier lisible dans le répertoire courant,
    [ -r $FILE ]
  • vrai si l'objet désigné par $FILE est un fichier inscriptible dans le répertoire courant,
    [ -w $FILE ]
  • vrai si l'objet désigné par $FILE est un fichier exécutable dans le répertoire courant,
    [ -x $FILE ]
  • vrai si l'objet désigné par $FILE est un répertoire dans le répertoire courant,
    [ -d $FILE ]
  • vrai si l'objet désigné par $FILE à été modifié depuis la dernière lecture.
    [ -N $FILE ]
Tests sur les chaînes de caractères

Les opérateurs de tests disponibles sont, pour les chaînes :

  • vrai si c1 et c2 sont égaux,
    [ c1 = c2 ]
  • vrai si c1 et c2 sont différents,
    [ c1 != c2 ]
  • vrai si c est une chaîne vide (Zero),
    [ -z c ]
  • vrai si c n'est pas une chaîne vide (Non zero).
    [ -n c ]
Table de vérité de « -a »
Comparaison Résultat Calcul
0 et 0 0 0 × 0 = 0
0 et 1 0 0 × 1 = 0
1 et 0 0 1 × 0 = 0
1 et 1 1 1 × 1 = 1

Les deux assertions doivent être vérifiées pour que la condition le soit aussi.

Table de vérité de « -o »
Comparaison Résultat Calcul
0 ou 0 0 0 + 0 = 0
0 ou 1 1 0 + 1 = 1
1 ou 0 1 1 + 0 = 1
1 ou 1 1 1 + 1 = 1

Dès que l'une des deux assertions est vérifiée, la condition globale l'est aussi.

Astuces diverses

Logging

  • Afficher la date au format YYY:MM:DD HH:MM:SS :
    echo "$(date '+%F %T') test"

Getopts

cat « EOF permet d'afficher du texte avec le même formatage jusqu'au caractère EOF.

cat << EOF
Tool for Security Patch Management.
 
Usage: $0 [options]
 
OPTIONS:
    -h      Display help
    -v      Be verbose
    -u      Update & Download only Security updates
    -f      Force Security Upgrade
    -s      Safe Security Upgrade (ask host server before, need to define --host and --port)
    -i      Ignore package during upgrade whose name contains one of this param, separated with ',' or '|' or ' '. Example : "mysql,apache"
    -l      Log file (Default : /var/log/securityUpgrades.log)
    -r      Host asked for safe upgrade
    -p      Remote host's port
EOF

Analyse de paramètres et message d'erreurs avec Getops : http://www.quennec.fr/book/export/html/341

Lire et traiter les lignes d'un fichier

#!/bin/bash
while read ligne; do
    echo $ligne
done < fichier.txt

Divers

Raccourcis Atom

Commenter blocs de texte ⇒ ctrl+maj+/

Sources

bash.txt · Dernière modification : de Administrateur