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 [2023/03/30 13:38] – ben | informatique:nix:tips_infos [2024/05/15 08:53] (Version actuelle) – ben | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
<note tip> | <note tip> | ||
+ | |||
+ | ===== find most recent files ===== | ||
+ | |||
+ | find /HXLBACKUP/ -type f -printf "%T@ %p\n" | sort -n | cut -d' ' -f 2- | tail -n 1 |xargs ls -ltrh | ||
===== total from find ===== | ===== total from find ===== | ||
- | | + | < |
+ | find . -type f -mtime +14 -name " | ||
+ | |||
+ | </ | ||
====== rclone ====== | ====== rclone ====== | ||
- | / | + | < |
+ | / | ||
+ | |||
+ | </ | ||
* rclone rcat | * rclone rcat | ||
- | | + | < |
- | + | export TMDIR=/ | |
- | + | ||
+ | </ | ||
====== dd, ssh & split ====== | ====== dd, ssh & split ====== | ||
- | | + | < |
- | + | dd if=/ | |
- | ====== Convertir timestamp dmesg ====== | + | |
+ | </ | ||
+ | |||
+ | ====== Convertir timestamp dmesg ====== | ||
< | < | ||
+ | |||
dmesg | sed -r ' | dmesg | sed -r ' | ||
+ | |||
</ | </ | ||
Ligne 29: | Ligne 45: | ||
Pour servir un fichier : | Pour servir un fichier : | ||
- | |||
< | < | ||
- | while true ; do nc -l 80 < test.iso ; done | ||
- | </ | ||
+ | while true ; do nc -l 80 < | ||
+ | |||
+ | </ | ||
====== umask ====== | ====== 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——–) | ||
- | ^ umask ^ fichiers | + | <note important> |
- | | 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 le nb de colonne d'un terminal ====== | + | ====== Masquer le frappe d'un password ====== |
- | 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 | + | ====== Récupérer plus d' |
- | 1 | + | |
- | 2 | + | Avec la commande '' |
- | 3 | + | |
- | 9 | + | ====== Liste des signaux Unix ====== |
- | | + | |
- | | + | < |
- | | + | ___________________________________________________________________________ |
- | | + | 0 |
+ | 1 | ||
+ | 2 | ||
+ | 3 | ||
+ | 9 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | </ | ||
+ | |||
+ | ====== Inverser une chaine de caractères avec sed ====== | ||
+ | |||
+ | < | ||
+ | echo " | ||
+ | uocuoC | ||
+ | |||
+ | </ | ||
- | ======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 491: | 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 526: | 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 539: | 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 550: | 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 561: | 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 586: | 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 595: | 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 628: | 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 655: | 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 669: | 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 709: | 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 752: | 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 779: | 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 807: | 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 815: | 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 829: | 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 838: | Ligne 1109: | ||
Accès console backup : | Accès console backup : | ||
- | | + | |
+ | < | ||
+ | telnet host 8010 | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||