Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:sysadmin:adminserveur [2018/03/31 00:27] – [sudo] /* formatage */ merlin8282fr:sysadmin:adminserveur [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 ====== Sysadmin, ou comment les geeks s'occupent de faire fonctionner internet... ====== ====== Sysadmin, ou comment les geeks s'occupent de faire fonctionner internet... ======
 +===== Quelques règles de base =====
 +==== Documenter ====
 +Documenter ce que l'on s'apprête à faire, ce que l'on fait réellement et ce qui se passe est le meilleur moyen pour que les choses se passent bien. Ainsi, la chose est déjà préparée, on aura eu plus tendance à penser à des détails auxquels on n'aurait pas nécessairement pensé de prime abord, et en cas de souci on peut se faire aider plus facilement, quelqu'un d'autre peut même reprendre le souci si on n'arrive pas soi-même à le résoudre, etc.
 +
 +
 +==== Communiquer ! ====
 +Si on n'est pas la seule à travailler sur un système, que ce soit de manière générale ou à un instant T, il est vital de communiquer afin de savoir qui fait quoi, où, comment, et a priori pour combien de temps.
 +Imaginez le nombre de choses qui peuvent mal tourner quand plusieurs personnes administrent une même machine... 
 +
 +Par exemple, on est en-train d'éditer un fichier de configuration d'un vhost de nginx. On vérifie la syntaxe avex ''nginx -t'', et il y a une erreur. On cherche, parfois avec acharnement, où peut bien se situer l'erreur dans notre modification. Le souci réel c'est qu'en fait un autre administrateur a édité un autre fichier de configuration de nginx en y introduisant au moins une erreur. Premier souci potentiel.
 +Ensuite, il se peut que l'autre administrateur ne soit pas aussi consciencieux que nous et veuille relancer nginx sans vérifier la syntaxe de sa configuration : *boum* le serveur ne se relance plus !
 +Maintenant imaginez la même chose avec ''sshd''...
 +
 +<WRAP center round info 60%>
 +Sur Khaganat, les sysadmin ont une section dédiée sur le forum, justement destinée à votre "log" des actions du moment. N'y laissez pas traîner les mots de passe, bien sûr...
 +</WRAP>
 +
 +==== Vérifier la syntaxe ====
 +Lors d'une modification, toujours faire un maximum de vérifications avant de valider. Par exemple, procéder systématiquement à une vérification de la syntaxe quand c'est possible, avant de relancer / recharger la configuration d'un démon :
 +
 +  nginx -t
 +  sshd -t
 +  php-fpm -t
 +
 +Dans le même esprit, toujours utiliser un éditeur de texte qui procède automatiquement à cette vérification syntaxique. Cela est valable au moins pour les fichiers/commandes suivantes :
 +  crontab -e
 +  vipw
 +  vipw -s
 +  vigr
 +  vigr -s
 +  visudo
 +
 +==== Plan B ====
 +Quelle que soit la modification que l'on apporte à un système, penser à un plan B (voire un plan C, D, etc.) bref un plan de secours au cas où les choses ne se passeraient pas comme on l'aurait espéré.
 +Cela commence par le fait de faire une copie du fichier que l'on s'apprête à modifier (fichiers de configuration notamment).
 +Cela peut aussi prendre la forme d'un snapshot/freeze du système de fichier sur lequel on veut travailler, voire de la machine virtuelle complète si c'en est une.
 +
 +Bref, vous avez compris l'idée.
 +
 +
 ===== Reboot ===== ===== Reboot =====
 Quoi que l'on fasse comme modification sur un système, il faut toujours veiller à ce qu'après un redémarrage la machine se retrouve dans un état identique à celui dans lequel elle était avant ce redémarrage. Quoi que l'on fasse comme modification sur un système, il faut toujours veiller à ce qu'après un redémarrage la machine se retrouve dans un état identique à celui dans lequel elle était avant ce redémarrage.
Ligne 60: Ligne 100:
  
 Il existe souvent des moyens de contourner ces risques, mais pas toujours. Il existe souvent des moyens de contourner ces risques, mais pas toujours.
 +
 +
 ===== find ===== ===== find =====
 Pour supprimer des fichiers de manière automatisée on pourrait être tenté d'exécuter ce genre de commande : Pour supprimer des fichiers de manière automatisée on pourrait être tenté d'exécuter ce genre de commande :
Ligne 71: Ligne 113:
   find /var/tmp/ -type d -name .svn -exec rm -rf {} \;   find /var/tmp/ -type d -name .svn -exec rm -rf {} \;
  
 +L'exemple ci-dessus est donné à titre de comparaison avec la première commande ''rm -rf'' qui prend le résultat de ''find'' en paramètre. Une version encore plus propre serait :
 +
 +  find /var/tmp/ -type d -name .svn -delete
 +
 +L'option ''-delete'' active automatiquement l'option ''-depth'', qui traite d'abord les sous-répertoires avant le répertoire lui-même.
 +
 +
 +À noter que l'on peut aussi afficher les fichiers supprimés en ajoutant l'option ''-print''.
 +
 +
 +===== Problèmes bizarres et solution =====
 +==== Espace insécable ====
 +Il ne vous est jamais arrivé d'avoir l'erreur étrange suivante ?
 +
 +  $ echo 123 | grep 2
 +  bash:  grep : commande introuvable
 +
 +Moi si, régulièrement. Et j'ai cherché à comprendre ce qui n'allait pas et ai finalement trouvé, après pas mal de recherche. Et l'explication est des plus simples (encore une victime du rasoir d'Occam...) ; lorsqu'on tape (trop) vite au clavier il arrive qu'en voulant taper une espace, notamment après avoir fait une pipe ''|'', on a encore le doigt sur la touche ''AltGr''. ''AltGr + [espace]'', cela donne une espace insécable, indiscernable à l'œil nu d'une espace "classique". Le shell en revanche, lui, fait la différence et considère que '' grep'' ("[espace insécable]grep") est la commande à exécuter. À moins d'avoir une commande de ce nom dans son chemin (''$PATH''), le shell vous retournera une erreur. Certains shells sont plus explicites quant à l'erreur affichée :
 +
 +  bash: $'\302\240grep': commande introuvable
  
 +Je dis "indiscernable à l'œil nu", ce n'est pas tout à fait vrai : en faisant attention on voit bien qu'il y a deux espaces après ''bash:''. Cela dit, ça ne saute pas forcément aux yeux.
  
 {{tag>sysadmin serveur}} {{tag>sysadmin serveur}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/sysadmin/adminserveur.1522448860.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact