Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
fr:bestpractices [2018/03/29 23:06] – [Largeur] merlin8282 | fr:bestpractices [2021/12/03 19:19] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 95: | Ligne 95: | ||
- | |||
- | |||
- | ===== Commandes unix ===== | ||
- | ==== sar : System Activity Reporter ==== | ||
- | sar -A | ||
- | |||
- | C'est une sorte de monitoring de la machine locale. | ||
- | |||
- | ==== ethtool ==== | ||
- | ethtool -p eth0 # same as " | ||
- | ethtool -t eth0 # selftest | ||
- | ethtool -S eth0 # same as " | ||
- | |||
- | '' | ||
- | |||
- | |||
- | ==== nc / netcat ==== | ||
- | '' | ||
- | |||
- | '' | ||
- | |||
- | $ nc -l 10.1.1.149 1234 > filename.out # à exécuter côté serveur | ||
- | $ nc 10.1.1.149 1234 < filename.in # à exécuter côté client | ||
- | |||
- | On peut aussi scanner des ports avec netcat, pour voir si un port est ouvert ou fermé : | ||
- | |||
- | $ nc -zv 10.1.1.149 20-30 | ||
- | $ nc -zv 10.1.1.149 22 80 443 | ||
- | |||
- | La première commande scanne les ports 20 à 30, la seconde scanne les ports 22, 80 et 443 de l' | ||
- | |||
- | |||
- | ==== at ==== | ||
- | '' | ||
- | |||
- | echo "tar czf / | ||
- | |||
- | Créer un tarball compressé avec gzip du dossier /home dans le fichier / | ||
- | |||
- | |||
- | ==== cal ==== | ||
- | Calendrier : | ||
- | |||
- | $ cal | ||
- | March 2018 | ||
- | Su Mo Tu We Th Fr Sa | ||
- | | ||
- | | ||
- | 11 12 13 14 15 16 17 | ||
- | 18 19 20 21 22 23 24 | ||
- | 25 26 27 28 29 30 31 | ||
- | | ||
- | $ cal jan 1337 | ||
- | January 1337 | ||
- | Su Mo Tu We Th Fr Sa | ||
- | 1 2 3 4 | ||
- | | ||
- | 12 13 14 15 16 17 18 | ||
- | 19 20 21 22 23 24 25 | ||
- | 26 27 28 29 30 31 | ||
- | | ||
- | $ cal dec 9999 | ||
- | | ||
- | Su Mo Tu We Th Fr Sa | ||
- | 1 2 3 4 | ||
- | | ||
- | 12 13 14 15 16 17 18 | ||
- | 19 20 21 22 23 24 25 | ||
- | 26 27 28 29 30 31 | ||
- | |||
- | |||
- | ==== tr ==== | ||
- | '' | ||
- | |||
- | $ echo "123 456 789" | tr " " " | ||
- | 123 | ||
- | 456 | ||
- | 789 | ||
- | |||
- | Remplacer toutes les espaces par un retour à la ligne. | ||
- | |||
- | echo " | ||
- | pqrs | ||
- | |||
- | Remplacer les caractères de ' | ||
- | |||
- | echo " | ||
- | |||
- | Remplacer les caractères de ' | ||
- | |||
- | echo " | ||
- | 67c8 | ||
- | |||
- | Remplacer les caractères ' | ||
- | |||
- | echo " | ||
- | xbvd | ||
- | |||
- | Remplacer les caractères ' | ||
- | |||
- | |||
- | ==== awk ==== | ||
- | '' | ||
- | |||
- | Voici quelques exemples, qui sont loin d' | ||
- | |||
- | $ sentence=" | ||
- | $ printf " | ||
- | year-month-day | ||
- | |||
- | Cela affiche le premier élément de la phrase, les éléments étant (par défaut) les chaînes de caractères séparées par une espace. | ||
- | |||
- | $ printf " | ||
- | comment" | ||
- | |||
- | '' | ||
- | |||
- | $ printf " | ||
- | this is a comment | ||
- | |||
- | Ici on redéfinit le séparateur, | ||
- | |||
- | |||
- | $ printf " | ||
- | ms "this is a comment" | ||
- | |||
- | Redéfinition du séparateur à '' | ||
- | |||
- | $ printf " | ||
- | year-month-day hours: | ||
- | |||
- | On peut aussi matcher des expressions rationnelles avec '' | ||
- | |||
- | $ printf " | ||
- | :ms | ||
- | |||
- | On peut aussi n' | ||
- | |||
- | $ lines=" | ||
- | $ printf " | ||
- | line2 | ||
- | |||
- | On peut dire à awk de ne chercher une chaîne correspondante que dans un seul élément ; ici on cherche '' | ||
- | |||
- | $ printf " | ||
- | line2 | ||
- | |||
- | Cela revient au final à la même chose que ci-dessus, étant donné que l'on n'a qu'un seul élément par ligne. | ||
- | |||
- | $ printf " | ||
- | line1 | ||
- | line2 | ||
- | line3 | ||
- | |||
- | On matche '' | ||
- | |||
- | $ printf " | ||
- | line3 | ||
- | |||
- | Eh oui, seul '' | ||
- | |||
- | |||
- | |||
- | ===== Options peu utilisées/ | ||
- | On trouve souvent des exemples de commandes sur le web, sur comment effectuer telle ou telle action. Cependant, ce que l'on voit de ces commandes pourtant si puissantes n'est que la partie émergée de l' | ||
- | ==== find ==== | ||
- | |||
- | find /var/ -mount -maxdepth 1 -type f -exec ls -lh {} \; | ||
- | |||
- | La commande '' | ||
- | |||
- | '' | ||
- | |||
- | '' | ||
- | |||
- | Enfin '' | ||
- | Il est possible de mettre le signe ' | ||
- | |||
- | |||
- | ==== grep / wc ==== | ||
- | On voit très très souvent des oneliners qui, pour compter le nombre de lignes font ceci : | ||
- | |||
- | [commande] | wc -l | ||
- | |||
- | Jusque là aucun souci. En revanche, quand on veut filtrer, très souvent on utilise '' | ||
- | |||
- | [commande] | grep " | ||
- | |||
- | Là, ça commence à piquer les yeux. OK, vous allez dire que je suis un vieux de la vieille qui voit le mal partout, qui cherche à économiser le moindre octet en mémoire, qu'on n'est plus à une époque où la mémoire était chère et rare... Qu'à cela ne tienne ! Plus c'est court, plus c'est élégant, mieux c'est ! | ||
- | |||
- | Ça commence à piquer les yeux parce-que grep sait très bien compter tout seul ! | ||
- | |||
- | [commande] | grep -c " | ||
- | |||
- | Et voilà ! L' | ||
- | |||
- | |||
- | |||
- | ===== Sysadmin en général ===== | ||
- | ==== Reboot ==== | ||
- | Quoi que l'on fasse comme modification sur un système, il faut toujours veiller à ce qu' | ||
- | |||
- | Par exemple, quand on ajoute une route sur la CLI, bien veiller à ce que la route soit aussi configurée "en dur". Dans le cas de Debian, on peut mettre la commande dans par exemple ''/ | ||
- | |||
- | CLI : | ||
- | route add -host ftp.fr.debian.org gw 192.168.100.253 | ||
- | |||
- | / | ||
- | iface eth0 inet static | ||
- | address [...] | ||
- | up route add -host ftp.fr.debian.org gw 192.168.100.253 | ||
- | down route del -host ftp.fr.debian.org gw 192.168.100.253 | ||
- | |||
- | Attention à la seconde ligne avec '' | ||
- | |||
- | Cela n'est qu'un exemple. À chaque modification il faut se poser la question : " | ||
- | |||
- | |||
- | ==== find ==== | ||
- | Pour supprimer des fichiers de manière automatisée on pourrait être tenté d' | ||
- | |||
- | rm -rf `find /var/tmp/ -type d -name .svn` | ||
- | |||
- | Cette commande cherche tous les dossiers nommés '' | ||
- | |||
- | Pour bien faire les choses, autant dire directement à la commande '' | ||
- | |||
- | find /var/tmp/ -type d -name .svn -exec rm -rf {} \; | ||
{{tag> | {{tag> |