Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| informatique:nix:tips_infos [2018/03/21 14:25] – ben | informatique:nix:tips_infos [2024/05/15 08:53] (Version actuelle) – ben | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| <note tip> | <note tip> | ||
| - | ====== Serveur web light ====== | + | ===== find most recent files ===== |
| - | Pour servir un fichier : | + | find /HXLBACKUP/ -type f -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1 |xargs ls -ltrh |
| + | |||
| + | ===== total from find ===== | ||
| < | < | ||
| - | while true ; do nc -l 80 < test.iso ; done | + | find . -type f -mtime +14 -name " |
| </ | </ | ||
| + | ====== rclone ====== | ||
| + | < | ||
| - | ====== umask ====== | + | / |
| + | </ | ||
| - | ^ umask ^ fichiers | + | * rclone rcat |
| - | | 000 | 666 (rw-rw-rw-) | + | |
| - | | 002 | 664 (rw-rw-r--) | + | |
| - | | 022 | 644 (rw-r--r--) | + | |
| - | | 027 | 640 (rw-r-----) | + | |
| - | | 077 | 600 (rw-------) | + | |
| - | | 277 | 400 (r--------) | + | |
| - | <note important> | + | < |
| + | export TMDIR=/ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== dd, ssh & split ====== | ||
| + | |||
| + | < | ||
| + | dd if=/ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Convertir timestamp dmesg ====== | ||
| + | < | ||
| + | |||
| + | dmesg | sed -r ' | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Serveur web light ====== | ||
| + | |||
| + | Pour servir un fichier : | ||
| + | < | ||
| + | |||
| + | while true ; do nc -l 80 < | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== umask ====== | ||
| + | |||
| + | ^ umask ^ fichiers | ||
| + | | 000 | 666 (rw-rw-rw-) | ||
| + | | 002 | 664 (rw-rw-r–) | ||
| + | | 022 | 644 (rw-r–r–) | ||
| + | | 027 | 640 (rw-r—–) | ||
| + | | 077 | 600 (rw——-) | ||
| + | | 277 | 400 (r——–) | ||
| + | |||
| + | <note important> | ||
| ====== unix.txt ====== | ====== unix.txt ====== | ||
| - | {{: | + | {{: |
| ====== VI ====== | ====== VI ====== | ||
| Ouvrir le fichier à la ligne 15 : | Ouvrir le fichier à la ligne 15 : | ||
| + | < | ||
| - | | + | vi +15 /etc/passwd |
| - | Ouvrir le fichier à la première occurence commençant par //toto// : | + | </code> |
| - | | + | Ouvrir le fichier à la première occurence commençant par // |
| + | |||
| + | < | ||
| + | vi +/^toto /etc/passwd | ||
| + | |||
| + | </ | ||
| ====== diff remote ====== | ====== diff remote ====== | ||
| - | | + | < |
| + | remsh machine1 cat /etc/passw |diff - /etc/passwd | ||
| + | |||
| + | </ | ||
| ====== find sous AIX, le backslash ne fonctionne pas ====== | ====== find sous AIX, le backslash ne fonctionne pas ====== | ||
| + | |||
| Il suffit de les doubler. | Il suffit de les doubler. | ||
| ====== Utiliser tar, gzip et cie ====== | ====== Utiliser tar, gzip et cie ====== | ||
| + | |||
| Compresser un tar à la volée | Compresser un tar à la volée | ||
| - | | + | < |
| + | |||
| + | tar cvf - files |gzip -9> file.tar.gz | ||
| + | |||
| + | </ | ||
| Transférer un tar.gz le décompresser et le détarrer sur une machine distante ? (tout ça en une ligne) | Transférer un tar.gz le décompresser et le détarrer sur une machine distante ? (tout ça en une ligne) | ||
| - | | + | < |
| + | |||
| + | gzip -d < | ||
| + | |||
| + | </ | ||
| ====== Avec 7z ====== | ====== Avec 7z ====== | ||
| + | < | ||
| - | | + | 7za x -so directory.tar.7z | tar xf - |
| + | |||
| + | </ | ||
| + | |||
| + | ====== Comment mettre de la couleur dans des scripts via les séquences escapes (xterm only) ? ====== | ||
| - | ======Comment mettre de la couleur dans des scripts via les séquences escapes (xterm only) ?====== | ||
| En utilisant ces variables : | En utilisant ces variables : | ||
| + | < | ||
| - | | + | ESC=' |
| - | NORM=${ESC}' | + | NORM=${ESC}' |
| - | BOLD=${ESC}' | + | BOLD=${ESC}' |
| - | UNDERSCORE=${ESC}' | + | UNDERSCORE=${ESC}' |
| - | BLINK=${ESC}' | + | BLINK=${ESC}' |
| - | REVERSE=${ESC}' | + | REVERSE=${ESC}' |
| - | BLINK=${ESC}' | + | BLINK=${ESC}' |
| - | REVERSE=${ESC}' | + | REVERSE=${ESC}' |
| - | BLACK=${ESC}' | + | BLACK=${ESC}' |
| - | RED=${ESC}' | + | RED=${ESC}' |
| - | GREEN=${ESC}' | + | GREEN=${ESC}' |
| - | YELLOW=${ESC}' | + | YELLOW=${ESC}' |
| - | BLUE=${ESC}' | + | BLUE=${ESC}' |
| - | PINK=${ESC}' | + | PINK=${ESC}' |
| - | MAGENTA=${ESC}' | + | MAGENTA=${ESC}' |
| - | WHITE=${ESC}' | + | WHITE=${ESC}' |
| - | FONDROUGE=${ESC}' | + | FONDROUGE=${ESC}' |
| - | FONDVERT=${ESC}' | + | FONDVERT=${ESC}' |
| - | FONDJAUNE=${ESC}' | + | FONDJAUNE=${ESC}' |
| - | FONDBLEU=${ESC}' | + | FONDBLEU=${ESC}' |
| - | FONDPOURPRE=${ESC}' | + | FONDPOURPRE=${ESC}' |
| - | FONDBLEUCLAIR=${ESC}' | + | FONDBLEUCLAIR=${ESC}' |
| - | | + | </ |
| - | echo " | + | |
| + | < | ||
| + | echo " | ||
| + | echo " | ||
| + | |||
| + | </ | ||
| Sous linux : | Sous linux : | ||
| - | | + | < |
| + | echo -e " | ||
| - | ======Masquer le frappe d'un password ====== | + | </ |
| - | stty -echo | + | |
| - | read VAR | + | |
| - | stty echo | + | |
| - | ======Redimensionner | + | ====== |
| - | stty cols 163 | + | |
| + | < | ||
| + | stty -echo | ||
| + | read VAR | ||
| + | stty echo | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Redimensionner le nb de colonne d'un terminal ====== | ||
| + | |||
| + | < | ||
| + | stty cols 163 | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Cron sous Solaris ====== | ||
| - | ======Cron sous Solaris====== | ||
| Ne pas mettre de ligne(s) vide(s) dans la cron. | Ne pas mettre de ligne(s) vide(s) dans la cron. | ||
| - | ======Faire prendre en compte un pattern spécifique par egrep ====== | + | ====== Faire prendre en compte un pattern spécifique par egrep ====== |
| - | egrep -iv "/proc |/mnttab |/fd |swap |/ | + | |
| - | ======/etc/shadow sous Solaris ====== | + | < |
| - | '' | + | egrep -iv "/proc |/mnttab |/fd |swap |/ |
| - | '' | + | </ |
| - | ======Substitution rapide de répertoires avec cd====== | + | ====== |
| - | {{info: | + | |
| - | ======Liste des erreurs SHELL classiques (patterns)====== | + | '' |
| - | error | + | |
| - | failed | + | |
| - | aborted | + | |
| - | permission denied | + | |
| - | can't create | + | |
| - | can't access | + | |
| - | can't change | + | |
| - | cannot access | + | |
| - | cannot open | + | |
| - | could not read | + | |
| - | could not be written | + | |
| - | no such file or directory | + | |
| - | already exist | + | |
| - | file exists | + | |
| - | is a directory | + | |
| - | not found | + | |
| - | command garbled | + | |
| - | No such device | + | |
| - | Not a directory | + | |
| - | No such device or address | + | |
| - | Read only file system | + | |
| - | No space left on device | + | |
| - | syntax error | + | |
| - | malformed | + | |
| - | does not exist | + | |
| - | could not be written | + | |
| - | argument expected | + | |
| - | Segmentation Fault | + | |
| - | core dumped | + | |
| - | parameter not set | + | |
| - | ======Affectation et tests sous unix====== | + | '' |
| - | =====Affectation===== | + | ====== Substitution rapide de répertoires avec cd ====== |
| + | |||
| + | [[https:// | ||
| + | |||
| + | ====== Liste des erreurs SHELL classiques (patterns) ====== | ||
| + | < | ||
| + | |||
| + | error | ||
| + | failed | ||
| + | aborted | ||
| + | permission denied | ||
| + | can't create | ||
| + | can't access | ||
| + | can't change | ||
| + | cannot access | ||
| + | cannot open | ||
| + | could not read | ||
| + | could not be written | ||
| + | no such file or directory | ||
| + | already exist | ||
| + | file exists | ||
| + | is a directory | ||
| + | not found | ||
| + | command garbled | ||
| + | No such device | ||
| + | Not a directory | ||
| + | No such device or address | ||
| + | Read only file system | ||
| + | No space left on device | ||
| + | syntax error | ||
| + | malformed | ||
| + | does not exist | ||
| + | could not be written | ||
| + | argument expected | ||
| + | Segmentation Fault | ||
| + | core dumped | ||
| + | parameter not set | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Affectation | ||
| + | |||
| + | ===== Affectation ===== | ||
| + | |||
| + | < | ||
| + | i=`echo " | ||
| + | |||
| + | </ | ||
| - | i=`echo " | ||
| ou | ou | ||
| - | ((i=i+3)) | + | < |
| - | =====Tests===== | + | ((i=i+3)) |
| + | |||
| + | </ | ||
| + | |||
| + | ===== Tests ===== | ||
| + | |||
| + | < | ||
| + | if [ " | ||
| + | |||
| + | </ | ||
| - | if [ " | ||
| ou | ou | ||
| - | if ((i< | ||
| - | ======Exécuter un 'find -older' | + | < |
| - | find /tmp -name " | + | if ((i<=5))||((i> |
| + | </ | ||
| - | ======Récupérer plus d'infos sur un process====== | + | ====== |
| - | Avec la commande '' | + | < |
| + | find /tmp -name " | ||
| - | ======Liste des signaux Unix====== | + | </ |
| - | | + | |
| - | 0 | + | |
| - | 1 | + | |
| - | 2 | + | |
| - | 3 | + | |
| - | 9 | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | ======Inverser une chaine de caractères avec sed====== | + | ====== Récupérer plus d' |
| - | echo " | + | |
| - | uocuoC | + | Avec la commande '' |
| + | |||
| + | ====== Liste des signaux Unix ====== | ||
| + | |||
| + | < | ||
| + | | ||
| + | 0 | ||
| + | 1 | ||
| + | 2 | ||
| + | 3 | ||
| + | 9 | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Inverser une chaine de caractères avec sed ====== | ||
| + | |||
| + | < | ||
| + | echo " | ||
| + | uocuoC | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== / | ||
| - | ======/ | ||
| Utiliser xargs : | Utiliser xargs : | ||
| - | | + | < |
| + | |||
| + | cat liste_de_fichiers|xargs rm | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Modifier un binaire .exe Windows sous Unix ====== | ||
| - | ======Modifier un binaire .exe Windows sous Unix====== | ||
| On recherche la position de la chaîne Configuration dans le binaire Putty.exe | On recherche la position de la chaîne Configuration dans le binaire Putty.exe | ||
| + | < | ||
| - | | + | machine:/ |
| - | 3 58476 %s Configuration | + | 3 58476 %s Configuration |
| + | |||
| + | </ | ||
| On check sa position exacte : | On check sa position exacte : | ||
| + | < | ||
| - | | + | machine:/ |
| - | 30+0 records in | + | 30+0 records in |
| - | 30+0 records out | + | 30+0 records out |
| - | 0000000 | + | 0000000 |
| - | 0000020 | + | 0000020 |
| - | 0000036 | + | 0000036 |
| + | |||
| + | </ | ||
| Soit précisément : | Soit précisément : | ||
| - | | + | < |
| - | 13+0 records in | + | |
| - | 13+0 records out | + | machine:/ |
| - | 0000000 | + | 13+0 records in |
| + | 13+0 records out | ||
| + | 0000000 | ||
| + | |||
| + | </ | ||
| Le mot est en position 358480 (on skip les 358479 premiers ) et fait 13 caractere de long. On peut alors decouper le fichier en 3 parties : | Le mot est en position 358480 (on skip les 358479 premiers ) et fait 13 caractere de long. On peut alors decouper le fichier en 3 parties : | ||
| + | < | ||
| - | | + | machine:/ |
| - | machine:/ | + | machine:/ |
| - | machine:/ | + | machine:/ |
| + | |||
| + | </ | ||
| On verifie de ne rien avoir perdu en route : | On verifie de ne rien avoir perdu en route : | ||
| - | | + | < |
| - | 1022851399 380928 | + | machine:/ |
| - | machine:/ | + | 1022851399 380928 |
| - | 1022851399 380928 | + | machine:/ |
| + | 1022851399 380928 | ||
| - | On Check la taille de la futur chaîne de caractère (l' | + | </code> |
| - | | + | On Check la taille de la futur chaîne de caractère (l' |
| - | 13 | + | < |
| - | machine:/ | + | |
| - | 13 | + | machine:/ |
| + | 13 | ||
| + | machine:/ | ||
| + | 13 | ||
| + | |||
| + | </ | ||
| On modifie la partie 2 (+check) : | On modifie la partie 2 (+check) : | ||
| + | < | ||
| - | | + | machine:/ |
| - | machine:/ | + | machine:/ |
| - | 1425792615 380928 | + | 1425792615 380928 |
| + | |||
| + | </ | ||
| On réassemble le binaire + check : | On réassemble le binaire + check : | ||
| + | < | ||
| - | | + | machine:/ |
| - | machine:/ | + | machine:/ |
| - | 1425792615 380928 Putty.exe | + | 1425792615 380928 Putty.exe |
| + | </ | ||
| - | ======Effacer un fichier ' | + | ====== Effacer un fichier ' |
| - | //ls -ib// : pour voir les inodes et les caractères spéciaux | + | |
| - | find < | + | //ls -ib// : pour voir les inodes et les caractères spéciaux |
| - | => Attention, le paramètre | + | < |
| + | find <chemin> -xdev -inum <inode> -exec rm -f {} \; | ||
| + | </ | ||
| + | ⇒ Attention, le paramètre -xdev permet de rester dans le même FS, en effet le n° d' | ||
| + | ====== Accélerer la création d'un LV et son mirroir ====== | ||
| - | ======Accélerer la création d'un LV et son mirroir====== | ||
| La méthode pour accélerer est de créer le volume avec une petite taille, de le mirrorer et ensuite de l' | La méthode pour accélerer est de créer le volume avec une petite taille, de le mirrorer et ensuite de l' | ||
| - | ======Transformer un CSV en HTML====== | + | ====== Transformer un CSV en HTML ====== |
| - | # | + | |
| - | + | ||
| - | CSV=$1 | + | |
| - | CAPTION=$2 | + | |
| - | VERSION=$3 | + | |
| - | + | ||
| - | awk -F, -v CAPTION=" | + | |
| - | BEGIN { | + | |
| - | print "< | + | |
| - | print "< | + | |
| - | print "< | + | |
| - | print "< | + | |
| - | } | + | |
| - | { | + | |
| - | x=1 | + | |
| - | print"< | + | |
| - | while ( x <= NF ) { | + | |
| - | if ( NR ==1) print "\t < | + | |
| - | else print "\t < | + | |
| - | ++x | + | |
| - | } | + | |
| - | print "</ | + | |
| - | } | + | |
| - | END { | + | |
| - | print "</ | + | |
| - | print "</ | + | |
| - | }' $CSV | + | |
| - | ======Lancer un process en background, checker sa présence, le killer si besoin====== | + | < |
| - | + | #!/path/to/ksh | |
| - | | + | |
| - | ( dsmc q ar "/ | + | |
| - | DPID=$!; echo " | + | |
| - | + | ||
| - | # LANCEMENT DU KILLER | + | |
| - | ( touch ${REP_FIC_TMP}/ | + | |
| - | sleep 120 | + | |
| - | if [ -f ${REP_FIC_TMP}/ | + | |
| - | echo " | + | |
| - | kill $DPID 2>/ | + | |
| - | fi | + | |
| - | ) & | + | |
| - | + | ||
| - | # Attente de la fin du process DSMC | + | |
| - | wait $DPID | + | |
| - | [ -f ${REP_FIC_TMP}/timeout_dsmc.$DPID ] && rm ${REP_FIC_TMP}/timeout_dsmc.$DPID | + | |
| + | CSV=$1 | ||
| + | CAPTION=$2 | ||
| + | VERSION=$3 | ||
| + | awk -F, -v CAPTION=" | ||
| + | BEGIN { | ||
| + | print "< | ||
| + | print "< | ||
| + | print "< | ||
| + | print "< | ||
| + | } | ||
| + | { | ||
| + | x=1 | ||
| + | print"< | ||
| + | while ( x <= NF ) { | ||
| + | if ( NR ==1) print "\t < | ||
| + | else print "\t < | ||
| + | ++x | ||
| + | } | ||
| + | print "</ | ||
| + | } | ||
| + | END { | ||
| + | print "</ | ||
| + | print "</ | ||
| + | }' $CSV | ||
| - | ======VI Reference====== | + | </code> |
| - | Un petit PDF à récupérer :[[http:// | + | |
| - | ======Shift J====== | + | ====== |
| - | cat MACHINE_disques|awk '/ | + | |
| - | + | ||
| - | disk 976 0/ | + | |
| - | / | + | |
| - | disk 983 0/ | + | |
| - | / | + | |
| - | disk 130 0/ | + | |
| - | / | + | |
| - | disk 183 0/ | + | |
| - | / | + | |
| - | + | ||
| - | disk 976 0/ | + | |
| - | disk 983 0/ | + | |
| - | disk 130 0/ | + | |
| - | disk 183 0/ | + | |
| - | + | ||
| + | # Appel dsmc avec mise en place d'un timeout si la commande dsmc ne repond pas | ||
| + | < | ||
| + | ( dsmc q ar "/ | ||
| + | DPID=$!; echo " | ||
| + | # LANCEMENT DU KILLER / TIMEOUT | ||
| + | ( touch ${REP_FIC_TMP}/ | ||
| + | sleep 120 | ||
| + | if [ -f ${REP_FIC_TMP}/ | ||
| + | echo " | ||
| + | kill $DPID 2>/ | ||
| + | fi | ||
| + | ) & | ||
| + | # Attente de la fin du process DSMC | ||
| + | wait $DPID | ||
| + | [ -f ${REP_FIC_TMP}/ | ||
| + | </ | ||
| + | |||
| + | ====== VI Reference ====== | ||
| + | |||
| + | Un petit PDF à récupérer : | ||
| + | |||
| + | ====== Shift J ====== | ||
| + | < | ||
| + | |||
| + | cat MACHINE_disques|awk '/ | ||
| + | |||
| + | disk 976 0/ | ||
| + | / | ||
| + | disk 983 0/ | ||
| + | / | ||
| + | disk 130 0/ | ||
| + | / | ||
| + | disk 183 0/ | ||
| + | / | ||
| + | |||
| + | disk 976 0/ | ||
| + | disk 983 0/ | ||
| + | disk 130 0/ | ||
| + | disk 183 0/ | ||
| + | |||
| + | </ | ||
| ====== Backup via FTP avec tar, gzip et gpg ====== | ====== Backup via FTP avec tar, gzip et gpg ====== | ||
| + | |||
| * En backup full | * En backup full | ||
| + | < | ||
| - | tar cvf - /var/ --exclude=" | + | tar cvf - /var/ --exclude=" |
| - | dedibackup.dedibox.fr var.tar.gpg | + | dedibackup.dedibox.fr var.tar.gpg |
| + | |||
| + | </ | ||
| * En backup incrémental | * En backup incrémental | ||
| + | < | ||
| - | | + | tar cvf - $(find /var -mtime 1 -print) |gpg -e -r '' |
| - | dedibackup.dedibox.fr var.tar.gpg | + | dedibackup.dedibox.fr var.tar.gpg |
| + | |||
| + | </ | ||
| '' | '' | ||
| Utiliser plutôt : | Utiliser plutôt : | ||
| + | < | ||
| - | | + | find /home/$dir -type f -mtime 1 -print | tar cvT - |gpg -e -r ' |
| - | INC/ | + | INC/ |
| + | </ | ||
| ====== Convertif un PDF en n images ====== | ====== Convertif un PDF en n images ====== | ||
| + | |||
| Avec [[http:// | Avec [[http:// | ||
| + | < | ||
| - | | + | gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r200 -g640x480 -sOutputFile=20min_Apple_%03d.jpeg 20min_Apple.pdf |
| + | |||
| + | </ | ||
| ====== Fichiers sensibles ====== | ====== Fichiers sensibles ====== | ||
| + | |||
| ===== Liste des fichiers sensibles AIX ===== | ===== Liste des fichiers sensibles AIX ===== | ||
| ==== Usage stand-alone ==== | ==== Usage stand-alone ==== | ||
| - | | + | |
| - | */ | + | |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| + | * / | ||
| Pour SP : | Pour SP : | ||
| - | | + | |
| + | | ||
| ==== Usage HA-CMP ==== | ==== Usage HA-CMP ==== | ||
| - | | + | |
| - | */.rhosts | + | |
| - | */ | + | * /.rhosts |
| - | */ | + | * / |
| + | * / | ||
| ===== Liste des fichiers sensibles HP ===== | ===== Liste des fichiers sensibles HP ===== | ||
| ==== Usage stand-alone ==== | ==== Usage stand-alone ==== | ||
| - | | + | |
| - | */ | + | |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| + | * /etc/group | ||
| ==== Usage MCServiceGuard ==== | ==== Usage MCServiceGuard ==== | ||
| - | */ | + | |
| + | | ||
| ===== Liste des fichiers sensibles SUN ===== | ===== Liste des fichiers sensibles SUN ===== | ||
| ==== Usage stand-alone ==== | ==== Usage stand-alone ==== | ||
| - | | + | |
| - | */ | + | |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */ | + | * / |
| - | */.rhosts | + | * / |
| + | * /.rhosts | ||
| ====== Envoyer un mail au format HTML ====== | ====== Envoyer un mail au format HTML ====== | ||
| + | |||
| Pour envoyer un mail au format HTML à partir d'Unix ou de Linux on peut, par exemple, utiliser les commandes suivantes. Par contre je n'ai testé qu' | Pour envoyer un mail au format HTML à partir d'Unix ou de Linux on peut, par exemple, utiliser les commandes suivantes. Par contre je n'ai testé qu' | ||
| - | | + | < |
| - | df -kh |grep $FS|grep " | + | echo "< |
| - | echo "< | + | df -kh |grep $FS|grep " |
| - | echo "< | + | echo "< |
| - | echo "< | + | echo "< |
| - | echo "< | + | echo "< |
| - | + | echo "< | |
| - | | + | |
| - | echo " | + | { |
| - | echo "To: toto@titi.com, | + | echo " |
| - | echo " | + | echo "To: toto@titi.com, |
| - | echo " | + | echo " |
| - | echo " | + | echo " |
| - | cat / | + | echo " |
| - | uuencode /etc/hosts /etc/hosts (pour une pièce jointe) | + | cat / |
| - | } | / | + | uuencode /etc/hosts /etc/hosts (pour une pièce jointe) |
| + | } | / | ||
| + | |||
| + | </ | ||
| ====== Envoyer un mail avec une pièce jointe ====== | ====== Envoyer un mail avec une pièce jointe ====== | ||
| - | On peut également envoyer un mail avec une pièce jointe en utilisant '' | ||
| - | | + | On peut également envoyer un mail avec une pièce jointe en utilisant '' |
| - | |mailx -s "Aucun fichier pour encodage" | + | < |
| + | |||
| + | (cat / | ||
| + | |mailx -s "Aucun fichier pour encodage" | ||
| + | |||
| + | </ | ||
| On peut aussi combiner avec du HTML. | On peut aussi combiner avec du HTML. | ||
| ====== Modification du fichier ''/ | ====== Modification du fichier ''/ | ||
| + | |||
| On crée un ou plusieurs alias : | On crée un ou plusieurs alias : | ||
| - | | + | < |
| + | |||
| + | toto toto@domain.com | ||
| + | |||
| + | </ | ||
| ====== Rechargement de la configuration pour prise en compte par sendmail ====== | ====== Rechargement de la configuration pour prise en compte par sendmail ====== | ||
| - | *HP-UX | ||
| - | | + | * HP-UX |
| - | *AIX | + | < |
| + | | ||
| - | | + | </code> |
| + | * AIX | ||
| + | |||
| + | < | ||
| + | | ||
| + | |||
| + | </ | ||
| ====== Mixer 2 fichiers en colonne ====== | ====== Mixer 2 fichiers en colonne ====== | ||
| - | | + | < |
| + | paste fic1 fic2> fic.out | ||
| + | |||
| + | </ | ||
| ====== Ports utilisés par un process ====== | ====== Ports utilisés par un process ====== | ||
| - | | + | < |
| + | lsof -a -p 22231 -i | ||
| + | |||
| + | </ | ||
| ====== Débugger un process ====== | ====== Débugger un process ====== | ||
| - | | + | < |
| + | tusc -o / | ||
| + | </ | ||
| ====== Config Panasas ====== | ====== Config Panasas ====== | ||
| Ligne 468: | Ligne 667: | ||
| '' | '' | ||
| - | | + | < |
| + | / | ||
| + | </ | ||
| ====== sar ====== | ====== sar ====== | ||
| - | | ||
| - | sar | tr -s "&# | ||
| - | uuencode sar.data sar.xls | sendmail yourname@yourdomain.com | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| + | < | ||
| + | sar | tr -s "[ ]" | sed 's/ /,/ | ||
| + | uuencode sar.data sar.xls | sendmail yourname@yourdomain.com | ||
| + | </ | ||
| ====== Créer un fichier de 1 Go ====== | ====== Créer un fichier de 1 Go ====== | ||
| - | dd if=/ | + | < |
| + | dd if=/ | ||
| + | </ | ||
| ====== bad interpreter: | ====== bad interpreter: | ||
| - | Le FS a peut-être l' | + | Le FS a peut-être l' |
| ====== tar > 2 Go ====== | ====== tar > 2 Go ====== | ||
| Ligne 503: | Ligne 700: | ||
| / | / | ||
| (lv size: 104857600, fs size: 102432768, frag size: 4096, nbpi: 4096, compress: no, bf: false, ag: 8) | (lv size: 104857600, fs size: 102432768, frag size: 4096, nbpi: 4096, compress: no, bf: false, ag: 8) | ||
| + | |||
| </ | </ | ||
| - | | + | < |
| + | tar -cvf - / | ||
| - | cat mon_prefixe* | + | </ |
| + | <code> | ||
| + | cat mon_prefixe*> | ||
| + | |||
| + | </ | ||
| ====== Déterminer le process bloquant la suppression d'un fichier ====== | ====== Déterminer le process bloquant la suppression d'un fichier ====== | ||
| Ligne 516: | Ligne 719: | ||
| ====== Tester le débit en FTP ====== | ====== Tester le débit en FTP ====== | ||
| - | | + | < |
| + | put "| dd if=/ | ||
| + | </ | ||
| < | < | ||
| + | |||
| ftp> put "| dd if=/ | ftp> put "| dd if=/ | ||
| local: | dd if=/ | local: | dd if=/ | ||
| Ligne 527: | Ligne 733: | ||
| 226 File receive OK. | 226 File receive OK. | ||
| 52428800 bytes sent in 4.45 secs (1.1e+04 Kbytes/sec) | 52428800 bytes sent in 4.45 secs (1.1e+04 Kbytes/sec) | ||
| + | |||
| </ | </ | ||
| ====== /etc/shadow ====== | ====== /etc/shadow ====== | ||
| - | Si vous créez un fichier /// | + | Si vous créez un fichier /// |
| ====== Bosser sans | ====== | ====== Bosser sans | ====== | ||
| Ligne 538: | Ligne 744: | ||
| Dans certains cas il peut arriver que le | ne fonctionne pas (consoles foireuses, clavier mal configuré, etc). Ca rend les investigations un peu compliqué quand il faut faire des trucs du genre //ps -ef |grep titi//. En dépannage rapide on peut utiliser les fonctions basiques du named pipe. | Dans certains cas il peut arriver que le | ne fonctionne pas (consoles foireuses, clavier mal configuré, etc). Ca rend les investigations un peu compliqué quand il faut faire des trucs du genre //ps -ef |grep titi//. En dépannage rapide on peut utiliser les fonctions basiques du named pipe. | ||
| - | * Vous voulez la liste des process appartenant à root et vous ne connaissez pas l' | + | * Vous voulez la liste des process appartenant à root et vous ne connaissez pas l' |
| Avec un pipe, on fait : | Avec un pipe, on fait : | ||
| + | < | ||
| - | | + | ps -ef|grep ^root |
| - | Sans pipe | + | </ |
| + | Sans pipe | ||
| < | < | ||
| + | |||
| mkfifo MonPipe (on reconnait le device ainsi: | mkfifo MonPipe (on reconnait le device ainsi: | ||
| - | puis ps -ef > MonPipe & | + | puis ps -ef> MonPipe & |
| grep ^root MonPipe | grep ^root MonPipe | ||
| + | |||
| </ | </ | ||
| Quand c'est fini : | Quand c'est fini : | ||
| - | | + | < |
| + | rm -f MonPipe | ||
| - | **&**: On lance le //ps -ef > | + | </ |
| + | |||
| + | **&**: On lance le //ps -ef > | ||
| Pour ceux qui veulent jouer un peu plus avec les pipe nommés: | Pour ceux qui veulent jouer un peu plus avec les pipe nommés: | ||
| Ligne 563: | Ligne 776: | ||
| mkfifo fifo_jgab | mkfifo fifo_jgab | ||
| - | echo 1 > | + | echo 1> |
| - | echo 2 > | + | echo 2> |
| - | echo 3 > | + | echo 3> |
| cat fifo_jgab | cat fifo_jgab | ||
| Ligne 572: | Ligne 785: | ||
| 2 | 2 | ||
| 1 | 1 | ||
| - | [1] | + | [1] |
| - | [2]- Done echo 2 > | + | [2]- Done echo 2> |
| - | [3]+ Done echo 3 > | + | [3]+ Done echo 3> |
| </ | </ | ||
| Sinon on a le code ASCII : < | Sinon on a le code ASCII : < | ||
| - | |||
| ====== Conversion HEXA <-> Decimal ====== | ====== Conversion HEXA <-> Decimal ====== | ||
| - | | + | < |
| - | + | echo " | |
| - | printf " | + | |
| + | printf " | ||
| + | |||
| + | </ | ||
| ====== highlighted grep ====== | ====== highlighted grep ====== | ||
| - | {{: | + | [[https:// |
| - | ====== Empêcher vi d' | + | ====== Empêcher vi d' |
| - | Lorsqu' | + | Lorsqu' |
| - | Il suffit d' | + | Il suffit d' |
| + | < | ||
| - | | + | set t_ti= t_te= |
| - | ====== Supprimer les espaces d'un fichier ====== | + | </ |
| + | |||
| + | ====== Supprimer les espaces d'un fichier ====== | ||
| < | < | ||
| Ligne 605: | Ligne 824: | ||
| wq | wq | ||
| ! | ! | ||
| + | |||
| </ | </ | ||
| - | ====== Sendmail, écoute sur localhost ====== | + | ====== Sendmail, écoute sur localhost ====== |
| - | Plutôt que de regénérer le fichier // | + | Plutôt que de regénérer le fichier // |
| - | | + | < |
| + | MODE=" | ||
| + | |||
| + | </ | ||
| par | par | ||
| - | | + | < |
| + | MODE=" | ||
| - | ====== sar -d reformaté ====== | + | </ |
| - | + | ||
| - | sar -d |awk '{if (NF==1) {next};if (NF==8) {DEV=$1} else {$0=DEV$0}; | + | |
| - | ====== Coupure SAN ====== | + | ====== sar -d reformaté ====== |
| + | |||
| + | < | ||
| + | sar -d |awk '{if (NF==1) {next};if (NF==8) {DEV=$1} else {$0=DEV$0}; | ||
| + | |||
| + | </ | ||
| + | |||
| + | ====== Coupure SAN ====== | ||
| * Vérifier les chemins EMC : | * Vérifier les chemins EMC : | ||
| + | < | ||
| - | | + | powermt display |
| - | powermt restore (si certains disques n' | + | powermt restore (si certains disques n' |
| + | |||
| + | </ | ||
| ==== AIX ==== | ==== AIX ==== | ||
| Ligne 632: | Ligne 864: | ||
| * Vérifier la synchro des LVs : | * Vérifier la synchro des LVs : | ||
| - | | + | < |
| + | lsvg -o | grep -v rootvg | lsvg -i -l | ||
| - | * Resynchroniser | + | </ |
| + | * Resynchroniser | ||
| < | < | ||
| + | |||
| for i in `lsvg –o | grep –v rootvg` | for i in `lsvg –o | grep –v rootvg` | ||
| do | do | ||
| | | ||
| done | done | ||
| + | |||
| </ | </ | ||
| Ligne 646: | Ligne 882: | ||
| * Vérifier la synchro des LVs : | * Vérifier la synchro des LVs : | ||
| + | < | ||
| - | | + | vgdisplay –v <vg name> | egrep « stale|unavailable » |
| + | |||
| + | </ | ||
| * Resynchroniser | * Resynchroniser | ||
| + | < | ||
| - | | + | vgchange -a e -q n -s </ |
| - | vgchange –a y -s </ | + | vgchange –a y -s </ |
| + | |||
| + | </code> | ||
| ==== Solaris (Veritas) ==== | ==== Solaris (Veritas) ==== | ||
| - | * Vérifier la synchro des LVs | + | * Vérifier la synchro des LVs |
| - | | + | < |
| - | vxdisk list | + | vxdiskconfig |
| + | vxdisk list | ||
| - | Si //failed// : | + | </code> |
| - | | + | Si // |
| - | vxreattach < | + | |
| + | < | ||
| + | vxreattach –c < | ||
| + | vxreattach <device> | ||
| + | |||
| + | </code> | ||
| * Resynchroniser | * Resynchroniser | ||
| - | | + | < |
| - | vxtask list | + | vxrecover –b <device name> |
| + | vxtask list | ||
| + | |||
| + | </ | ||
| ====== Convertir une chaine en MD5 ====== | ====== Convertir une chaine en MD5 ====== | ||
| - | | + | < |
| - | f71dbe52628a3f83a77ab494817525c6 | + | WEBvm:/tmp# echo -n " |
| + | f71dbe52628a3f83a77ab494817525c6 | ||
| + | |||
| + | </ | ||
| ====== ssh et background ====== | ====== ssh et background ====== | ||
| - | Quand on lance plusieurs commandes distantes en ssh dans une boucle seule la première commande peut passer. Il faut appeler les commandes SSH avec **-n** : | + | Quand on lance plusieurs commandes distantes en ssh dans une boucle seule la première commande peut passer. Il faut appeler les commandes SSH avec **-n** |
| + | < | ||
| - | | + | ssh -n localhost ps -ef |
| + | |||
| + | </ | ||
| ====== Utiliser ed ====== | ====== Utiliser ed ====== | ||
| Ligne 686: | Ligne 943: | ||
| * Pour lancer ed | * Pour lancer ed | ||
| - | | + | < |
| + | ed fic.txt | ||
| + | |||
| + | </ | ||
| * Pour connaitre le n° de ligne courante | * Pour connaitre le n° de ligne courante | ||
| - | | + | < |
| + | n | ||
| + | |||
| + | </ | ||
| * Autres flags rigolos | * Autres flags rigolos | ||
| + | |||
| < | < | ||
| - | . affiche la ligne courante | + | . affiche la ligne courante |
| - | - aller à la ligne precedente | + | - aller à la ligne precedente |
| - | -3 aller 3 lignes avant | + | -3 aller 3 lignes avant |
| - | + aller à la ligne suivante | + | + aller à la ligne suivante |
| - | +2 aller 2 lignes plus loin | + | +2 aller 2 lignes plus loin |
| - | 5 aller à la ligne 5 | + | 5 aller à la ligne 5 |
| - | d supprime la ligne | + | d supprime la ligne |
| - | a ajoute une ligne | + | a ajoute une ligne |
| - | r remplace la ligne courante | + | r remplace la ligne courante |
| - | s/ | + | s/ |
| - | s/ | + | s/ |
| - | , | + | , |
| - | /toto aller à la prochaine occurence de toto | + | /toto aller à la prochaine occurence de toto |
| - | ?toto aller à l' | + | ?toto aller à l' |
| + | w sauvegarde le fichier | ||
| + | w fic2.txt | ||
| + | q quitter | ||
| - | w sauvegarde le fichier | ||
| - | w fic2.txt sauvegarde sous fic2.txt | ||
| - | q quitter | ||
| </ | </ | ||
| ====== Customiser son historique ====== | ====== Customiser son historique ====== | ||
| - | | + | < |
| + | export HISTTIMEFORMAT=" | ||
| + | |||
| + | </ | ||
| Dans le fichier / | Dans le fichier / | ||
| Ligne 729: | Ligne 996: | ||
| 1331 [ 03/02/2009 08:19:55 ] ls -l /etc/passwd | 1331 [ 03/02/2009 08:19:55 ] ls -l /etc/passwd | ||
| 1332 [ 03/02/2009 08:19:58 ] history | 1332 [ 03/02/2009 08:19:58 ] history | ||
| + | |||
| </ | </ | ||
| On peut customiser la sortie et on peut aussi virer certaines commandes pour ne pas alourdir les fichiers histo : | On peut customiser la sortie et on peut aussi virer certaines commandes pour ne pas alourdir les fichiers histo : | ||
| - | | + | < |
| + | HISTIGNORE=" | ||
| + | |||
| + | </ | ||
| ====== Configuration de (x)inetd ====== | ====== Configuration de (x)inetd ====== | ||
| + | |||
| Pour ajouter un nouveau démon en utilisant le serveur de demon inetd (xinetd sous linux) | Pour ajouter un nouveau démon en utilisant le serveur de demon inetd (xinetd sous linux) | ||
| - | * 1) Ajouter les infos dans / | + | * 1) Ajouter les infos dans / |
| - | < | + | |
| - | * 2.1) Modifier / | + | < |
| - | | + | mondemon |
| - | | + | </ |
| - | < | + | |
| + | * 2.1) Modifier / | ||
| + | |||
| + | < | ||
| + | | ||
| + | |||
| + | </ | ||
| + | |||
| + | | ||
| + | |||
| + | < | ||
| + | service mondemon | ||
| { | { | ||
| disable = no | disable = no | ||
| Ligne 756: | Ligne 1038: | ||
| log_on_failure | log_on_failure | ||
| } | } | ||
| + | |||
| </ | </ | ||
| * 3) Refresh de inetd | * 3) Refresh de inetd | ||
| - | service xinetd reload sur linux | ||
| - | ou kill -HUP <pid du process inetd> | ||
| - | | + | service xinetd reload sur linux |
| + | |||
| + | < | ||
| + | ou kill -HUP <pid du process inetd> | ||
| + | |||
| + | </ | ||
| + | |||
| + | | ||
| < | < | ||
| netstat -an |grep 1234 | netstat -an |grep 1234 | ||
| tcp 0 0 0.0.0.0: | tcp 0 0 0.0.0.0: | ||
| => on ecoute (LISTEN) sur le port 1234 renseigné dans / | => on ecoute (LISTEN) sur le port 1234 renseigné dans / | ||
| - | |||
| depuis un autre serveur, lancer un telnet < | depuis un autre serveur, lancer un telnet < | ||
| + | |||
| </ | </ | ||
| ====== Aligner les colonnes en shell ====== | ====== Aligner les colonnes en shell ====== | ||
| + | < | ||
| - | | + | awk ' |
| + | |||
| + | </ | ||
| ====== Restaurer des droits ====== | ====== Restaurer des droits ====== | ||
| Ligne 784: | Ligne 1076: | ||
| o=substr($1, | o=substr($1, | ||
| print "chmod u=" | print "chmod u=" | ||
| - | }' > / | + | }'> / |
| find /etc/ -type d -exec ls -ld {} \;|awk ' | find /etc/ -type d -exec ls -ld {} \;|awk ' | ||
| Ligne 792: | Ligne 1083: | ||
| o=substr($1, | o=substr($1, | ||
| print "chmod u=" | print "chmod u=" | ||
| - | }' > / | + | }'> / |
| </ | </ | ||
| ====== Tunnel SSH ====== | ====== Tunnel SSH ====== | ||
| - | |||
| < | < | ||
| + | |||
| ssh -L 9999: | ssh -L 9999: | ||
| + | |||
| </ | </ | ||
| Ligne 806: | Ligne 1099: | ||
| PATHS=( "// | PATHS=( "// | ||
| MOUNTS=( | MOUNTS=( | ||
| - | for (( i = 0 ; i < ${# | + | for (( i = 0 ; i < |
| do | do | ||
| echo ${PATHS[$i]} ${MOUNTS[$i]} | echo ${PATHS[$i]} ${MOUNTS[$i]} | ||
| done | done | ||
| + | |||
| </ | </ | ||
| Ligne 815: | Ligne 1109: | ||
| Accès console backup : | Accès console backup : | ||
| - | | + | |
| + | < | ||
| + | telnet host 8010 | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||