informatique:nix:tips_infos

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
informatique:nix:tips_infos [2015/03/20 17:40] – modification externe 127.0.0.1informatique:nix:tips_infos [2024/05/15 08:53] (Version actuelle) ben
Ligne 3: Ligne 3:
 <note tip>**Astuces en vrac** non triées et multi-OS (presque)</note> <note tip>**Astuces en vrac** non triées et multi-OS (presque)</note>
  
-====== 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 =====
  
 <code> <code>
-while true ; do nc -l 80  < test.iso ; done+find -type f -mtime +14 -name "arch*" -print0 | du --files0-from=- -hc|tail -4 
 </code> </code>
  
 +====== rclone ======
 +<code>
  
-====== umask ======+/usr/bin/rclone --config /root/.config/rclone/rclone.conf  copy secret:ndlp/nas-bck/win7-bck/ /ZP_backup/win7-bck/ -P --include "lv_win7B"
  
 +</code>
  
-^  umask  ^  fichiers  ^  répertoires +  * rclone rcat
-|  000 |  666 (rw-rw-rw-)  | 777 (rwxrwxrwx) +
-|  002 |  664 (rw-rw-r--)  | 775 (rwxrwxr-x) +
-|  022 |  644 (rw-r--r--)  | 755 (rwxr-xr-x) +
-|  027 |  640 (rw-r-----)  | 750 (rwxr-x---) +
-|  077 |  600 (rw-------)  | 700 (rwx------) +
-|  277 |  400 (r--------)  | 500 (r-x------)  |+
  
-<note important>Ne pas confondre avec Samba où les paramètres //create mask// s'utilisent sous la forme 0775 par ex.</note>+<code> 
 +export TMDIR=/ZP_vDisks/tmp 
 + 
 +</code> 
 + 
 +====== dd, ssh & split ====== 
 + 
 +<code> 
 +dd if=/dev/datavg/lv_win10 conv=sync status=progress |ssh nas "split -b 8G - /ZP_backup/win10-bck/lv_win10."
 + 
 +</code> 
 + 
 +====== Convertir timestamp dmesg ====== 
 +<code> 
 + 
 +dmesg | sed -r 's#^\[([0-9]+\.[0-9]+)\](.*)#echo -n "[";echo -n $(date --date="@$(echo "$(grep btime /proc/stat|cut -d " " -f 2)+\1" | bc)" +"%c");echo -n "]";echo -n "\2"#e' 
 + 
 +</code> 
 + 
 +====== Serveur web light ====== 
 + 
 +Pour servir un fichier : 
 +<code> 
 + 
 +while true ; do nc -l 80  <test.iso ; done 
 + 
 +</code> 
 + 
 +====== umask ====== 
 + 
 +^  umask  ^  fichiers  ^  répertoires 
 +|  000  |  666 (rw-rw-rw-)  |  777 (rwxrwxrwx) 
 +|  002  |  664 (rw-rw-r–)  |  775 (rwxrwxr-x) 
 +|  022  |  644 (rw-r–r–)  |  755 (rwxr-xr-x) 
 +|  027  |  640 (rw-r—–)  |  750 (rwxr-x—) 
 +|  077  |  600 (rw——-)  |  700 (rwx——) 
 +|  277  |  400 (r——–)  |  500 (r-x——) 
 + 
 +<note important>Ne pas confondre avec Samba où les paramètres //create mask//  s'utilisent sous la forme 0775 par ex.</note>
  
 ====== unix.txt ====== ====== unix.txt ======
  
-{{:informatique:nix:unix.zip}}+{{:informatique:nix:unix.zip|unix.zip}}
  
 ====== VI ====== ====== VI ======
  
 Ouvrir le fichier à la ligne 15 : Ouvrir le fichier à la ligne 15 :
 +<code>
  
-  vi +15 /etc/passwd+vi +15 /etc/passwd
  
-Ouvrir le fichier à la première occurence commençant par //toto// :+</code>
  
-  vi +/^toto /etc/passwd+Ouvrir le fichier à la première occurence commençant par //toto// 
 + 
 +<code> 
 +vi +/^toto /etc/passwd 
 + 
 +</code>
  
 ====== diff remote ====== ====== diff remote ======
  
-  remsh machine1 cat /etc/passw |diff - /etc/passwd+<code> 
 +remsh machine1 cat /etc/passw |diff - /etc/passwd 
 + 
 +</code>
  
 ====== 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+<code> 
 + 
 +tar cvf - files |gzip -9> file.tar.gz 
 + 
 +</code>
  
 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 < fichier.tar.gz | remsh machine "cd /path/ ;tar xvf -"+<code> 
 + 
 +gzip -d <fichier.tar.gz | remsh machine "cd /path/ ;tar xvf -" 
 + 
 +</code>
  
 ====== Avec 7z ====== ====== Avec 7z ======
 +<code>
  
-  7za x -so directory.tar.7z | tar xf -+7za x -so directory.tar.7z | tar xf - 
 + 
 +</code> 
 + 
 +====== 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 :
 +<code>
  
-  ESC='\033' +ESC='\033' 
-  NORM=${ESC}'[0m' +NORM=${ESC}'[0m' 
-  BOLD=${ESC}'[1m' +BOLD=${ESC}'[1m' 
-  UNDERSCORE=${ESC}'[4m' +UNDERSCORE=${ESC}'[4m' 
-  BLINK=${ESC}'[5m' +BLINK=${ESC}'[5m' 
-  REVERSE=${ESC}'[7m' +REVERSE=${ESC}'[7m' 
-  BLINK=${ESC}'[5m' +BLINK=${ESC}'[5m' 
-  REVERSE=${ESC}'[7m' +REVERSE=${ESC}'[7m' 
-  BLACK=${ESC}'[30m' +BLACK=${ESC}'[30m' 
-  RED=${ESC}'[31;1m' +RED=${ESC}'[31;1m' 
-  GREEN=${ESC}'[32;1m' +GREEN=${ESC}'[32;1m' 
-  YELLOW=${ESC}'[33m' +YELLOW=${ESC}'[33m' 
-  BLUE=${ESC}'[34m' +BLUE=${ESC}'[34m' 
-  PINK=${ESC}'[35m' +PINK=${ESC}'[35m' 
-  MAGENTA=${ESC}'[36m' +MAGENTA=${ESC}'[36m' 
-  WHITE=${ESC}'[37m' +WHITE=${ESC}'[37m' 
-  FONDROUGE=${ESC}'[41m' +FONDROUGE=${ESC}'[41m' 
-  FONDVERT=${ESC}'[42m' +FONDVERT=${ESC}'[42m' 
-  FONDJAUNE=${ESC}'[43m' +FONDJAUNE=${ESC}'[43m' 
-  FONDBLEU=${ESC}'[44m' +FONDBLEU=${ESC}'[44m' 
-  FONDPOURPRE=${ESC}'[45m' +FONDPOURPRE=${ESC}'[45m' 
-  FONDBLEUCLAIR=${ESC}'[46m'+FONDBLEUCLAIR=${ESC}'[46m'
  
-  echo "${GREEN}Bonjour le monde ${NORM}" +</code> 
-  echo "${FONDROUGE}${BLUE}Bonjour le monde${NORM}"+ 
 +<code> 
 +echo "${GREEN}Bonjour le monde ${NORM}" 
 +echo "${FONDROUGE}${BLUE}Bonjour le monde${NORM}" 
 + 
 +</code>
  
 Sous linux : Sous linux :
  
-  echo -e "${GREEN}Bonjour le monde ${NORM}"+<code> 
 +echo -e "${GREEN}Bonjour le monde ${NORM}"
  
-======Masquer le frappe d'un password ====== +</code>
-  stty -echo +
-  read VAR +
-  stty echo+
  
-======Redimensionner le nb de colonne d'un terminal ====== +====== Masquer le frappe d'un password ======
-  stty cols 163+
  
 +<code>
 +stty -echo
 +read VAR
 +stty echo
 +
 +</code>
 +
 +====== Redimensionner le nb de colonne d'un terminal ======
 +
 +<code>
 +stty cols 163
 +
 +</code>
 +
 +====== 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 |/mnt|/cdrom"+
  
-======/etc/shadow sous Solaris ====== +<code> 
-''*LK*'' : account locked : la crontab ne marche pas+egrep -iv "/proc |/mnttab |/fd |swap |/mnt|/cdrom"
  
-''NP'' : mot de passe impossible mais compte actif+</code>
  
-======Substitution rapide de répertoires avec cd====== +====== /etc/shadow sous Solaris ======
-{{info:sub_rep.png}}+
  
-======Liste des erreurs SHELL classiques (patterns)====== +''*LK*''  : account locked : la crontab ne marche pas
-  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======+''NP''  : mot de passe impossible mais compte actif
  
-=====Affectation=====+====== Substitution rapide de répertoires avec cd ====== 
 + 
 +[[https://unix.ndlp.info/lib/exe/detail.php?id=informatique:nix:tips_infos&media=info:sub_rep.png|{{:info:sub_rep.png}}]] 
 + 
 +====== Liste des erreurs SHELL classiques (patterns) ====== 
 +<code> 
 + 
 +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 
 + 
 +</code> 
 + 
 +====== Affectation et tests sous unix ====== 
 + 
 +===== Affectation ===== 
 + 
 +<code> 
 +i=`echo "$i+3"|bc` 
 + 
 +</code>
  
-  i=`echo "$i+3"|bc` 
 ou ou
-  ((i=i+3))+<code>
  
-=====Tests=====+((i=i+3)) 
 + 
 +</code> 
 + 
 +===== Tests ===== 
 + 
 +<code> 
 +if [ "$i" -le 5 -o "$i" -gt 15 ] 
 + 
 +</code>
  
-  if [ "$i" -le 5 -o "$i" -gt 15 ] 
 ou ou
-  if ((i<=5))||((i>15)) 
  
-======Exécuter un 'find -older'====== +<code> 
-  find /tmp -name "somefile" ! -newer /somepath/somefile/+if ((i<=5))||((i>15))
  
 +</code>
  
-======Récupérer plus d'infos sur un process====== +====== Exécuter un 'find -older' ====== 
-Avec la commande ''ptree'' ... (à suivre).+<code>
  
 +find /tmp -name "somefile" ! -newer /somepath/somefile/
  
-======Liste des signaux Unix====== +</code>
-   ___________________________________________________________________________ +
-      0     SIGNULL   Null            Check access to pid +
-      1     SIGHUP    Hangup          Terminate; can be trapped +
-      2     SIGINT    Interrupt       Terminate; can be trapped +
-      3     SIGQUIT   Quit            Terminate with core dump; can be trapped +
-      9     SIGKILL   Kill            Forced termination; cannot be trapped +
-     15     SIGTERM   Terminate       Terminate; can be trapped +
-     24     SIGSTOP   Stop            Pause the process; cannot be trapped +
-     25     SIGTSTP   Terminal stop   Pause the process; can be trapped +
-     26     SIGCONT   Continue        Run a stopped process+
  
-======Inverser une chaine de caractères avec sed====== +====== Récupérer plus d'infos sur un process ====== 
-  echo "Coucou"|sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' + 
-  uocuoC+Avec la commande ''ptree''  … (à suivre). 
 + 
 +====== Liste des signaux Unix ====== 
 + 
 +<code> 
 + ___________________________________________________________________________ 
 +    0     SIGNULL   Null            Check access to pid 
 +    1     SIGHUP    Hangup          Terminate; can be trapped 
 +    2     SIGINT    Interrupt       Terminate; can be trapped 
 +    3     SIGQUIT   Quit            Terminate with core dump; can be trapped 
 +    9     SIGKILL   Kill            Forced termination; cannot be trapped 
 +   15     SIGTERM   Terminate       Terminate; can be trapped 
 +   24     SIGSTOP   Stop            Pause the process; cannot be trapped 
 +   25     SIGTSTP   Terminal stop   Pause the process; can be trapped 
 +   26     SIGCONT   Continue        Run a stopped process 
 + 
 +</code> 
 + 
 +====== Inverser une chaine de caractères avec sed ====== 
 + 
 +<code> 
 +echo "Coucou"|sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//' 
 +uocuoC 
 + 
 +</code> 
 + 
 +====== /usr/bin/rm: arg list too long ======
  
-======/usr/bin/rm: arg list too long====== 
 Utiliser xargs : Utiliser xargs :
-  cat liste_de_fichiers|xargs rm+<code> 
 + 
 +cat liste_de_fichiers|xargs rm 
 + 
 +</code> 
 + 
 +====== 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
 +<code>
  
-  machine:/home/user# strings -t d Putty.exe |grep Configuration +machine:/home/user# strings -t d Putty.exe |grep Configuration 
-  3 58476 %s Configuration+3 58476 %s Configuration 
 + 
 +</code>
  
 On check sa position exacte : On check sa position exacte :
 +<code>
  
-  machine:/home/user# dd if=Putty.exe  bs=1 skip=358476 count=30|od -c +machine:/home/user# dd if=Putty.exe  bs=1 skip=358476 count=30|od -c 
-  30+0 records in +30+0 records in 
-  30+0 records out +30+0 records out 
-  0000000                                   n +0000000                                   n 
-  0000020  \0  \0  \0  \0        =========== ===========      c         _ +0000020  \0  \0  \0  \0        =========== ===========      c         _ 
-  0000036+0000036 
 + 
 +</code>
  
 Soit précisément : Soit précisément :
-  machine:/home/user# dd if=Putty.exe  bs=1 skip=358479 count=13|od -c +<code> 
-  13+0 records in + 
-  13+0 records out +machine:/home/user# dd if=Putty.exe  bs=1 skip=358479 count=13|od -c 
-  0000000                           n+13+0 records in 
 +13+0 records out 
 +0000000                           n 
 + 
 +</code>
  
 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 :
 +<code>
  
-  machine:/home/user# dd if=Putty.exe  bs=1 count=358479 of=Putty.1 +machine:/home/user# dd if=Putty.exe  bs=1 count=358479 of=Putty.1 
-  machine:/home/user# dd if=Putty.exe  bs=1 skip=358479 count=13 of=Putty.2 +machine:/home/user# dd if=Putty.exe  bs=1 skip=358479 count=13 of=Putty.2 
-  machine:/home/user# dd if=Putty.exe  bs=1 skip=$((358479+13)) of=Putty.3+machine:/home/user# dd if=Putty.exe  bs=1 skip=$((358479+13)) of=Putty.3 
 + 
 +</code>
  
 On verifie de ne rien avoir perdu en route : On verifie de ne rien avoir perdu en route :
  
-  machine:/home/user# cat Putty.[1-3]|cksum +<code> 
-  1022851399 380928 +machine:/home/user# cat Putty.[1-3]|cksum 
-  machine:/home/user# cat Putty.exe|cksum +1022851399 380928 
-  1022851399 380928+machine:/home/user# cat Putty.exe|cksum 
 +1022851399 380928
  
-On Check la taille de la futur chaîne de caractère (l'adressage ne doit pas varier <=on remplace une chaîne par une autre de taille identique...) :+</code>
  
-  machine:/home/user# cat Putty.2|wc -c +On Check la taille de la futur chaîne de caractère (l'adressage ne doit pas varier <⇒ on remplace une chaîne par une autre de taille identique…) : 
-  13 +<code> 
-  machine:/home/user# echo "Hacked By JG.\c"|wc -c + 
-  13+machine:/home/user# cat Putty.2|wc -c 
 +13 
 +machine:/home/user# echo "Hacked By JG.\c"|wc -c 
 +13 
 + 
 +</code>
  
 On modifie la partie 2 (+check) : On modifie la partie 2 (+check) :
 +<code>
  
-  machine:/home/user# echo "Hacked By JG.\c">Putty.2 +machine:/home/user# echo "Hacked By JG.\c">Putty.2 
-  machine:/home/user# cat Putty.[1-3]|cksum +machine:/home/user# cat Putty.[1-3]|cksum 
-  1425792615 380928+1425792615 380928 
 + 
 +</code>
  
 On réassemble le binaire + check : On réassemble le binaire + check :
 +<code>
  
-  machine:/home/user# cat Putty.[1-3]>Putty.exe +machine:/home/user# cat Putty.[1-3]>Putty.exe 
-  machine:/home/user# cksum Putty.exe +machine:/home/user# cksum Putty.exe 
-  1425792615 380928 Putty.exe+1425792615 380928 Putty.exe
  
 +</code>
  
-======Effacer un fichier 'ineffaçable'====== +====== Effacer un fichier 'ineffaçable' ======
-//ls -ib// : pour voir les inodes et les caractères spéciaux+
  
-  find <chemin> -xdev -inum <inode> -exec rm -f {} \;+//ls -ib//  : pour voir les inodes et les caractères spéciaux
  
-=Attention, le paramètre -xdev permet de rester dans le même FS, en effet le n° d'inode n'est identique **que dans le même FS** !+<code> 
 +find <chemin> -xdev -inum <inode> -exec rm -f {} \;
  
 +</code>
  
 +⇒ Attention, le paramètre -xdev permet de rester dans le même FS, en effet le n° d'inode n'est identique **que dans le même FS**  !
  
 +====== 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'étendre à la taille désirée. La méthode pour accélerer est de créer le volume avec une petite taille, de le mirrorer et ensuite de l'étendre à la taille désirée.
  
-======Transformer un CSV en HTML====== +====== Transformer un CSV en HTML ======
-  #!/path/to/ksh +
-   +
-  CSV=$1 +
-  CAPTION=$2 +
-  VERSION=$3  +
-   +
-  awk -F, -v CAPTION="$CAPTION" -v VERSION="$VERSION"+
-  BEGIN { +
-         print "<center>" +
-         print "<table border cellspacing=0 cellpadding=5>" +
-         print "<caption><B><FONT SIZE=4 FACE=TERMINAL>" CAPTION "</caption></B></FONT>" +
-         print "<caption><B><FONT SIZE=1 FACE=TERMINAL>" VERSION "</caption></B></FONT>" +
-         } +
-  { +
-  x=1 +
-  print"<tr>" +
-         while ( x <= NF ) { +
-                 if ( NR ==1) print "\t <th><FONT FACE=TERMINAL SIZE=3>" $x "</FONT></th>" +
-                 else print  "\t <td><FONT FACE=TERMINAL SIZE=2><DIV ALIGN=CENTER>" $x "</DIV></FONT></td>" +
-                 ++x +
-                 } +
-         print "</tr>" +
-  } +
-  END { +
-         print "</table>" +
-         print "</center>" +
-  }' $CSV+
  
-======Lancer un process en background, checker sa présence, le killer si besoin====== +<code> 
-  +#!/path/to/ksh
-  Appel dsmc avec mise en place d'un timeout si la commande dsmc ne repond pas +
-      ( dsmc q ar "/apps/oracle/backup/${INSTANCE}/" -fromdate=${DateMoins7Jours} >>  ${REP_FIC_TMP}/dumpCheck.${INSTANCE}.$$ 2>&1 ) & +
-      DPID=$!; echo "DBA_INFO: ${PROG} DUMP PID de $INSTANCE: $DPID"  +
-   +
-      # LANCEMENT DU KILLER TIMEOUT +
-      ( touch ${REP_FIC_TMP}/timeout_dsmc.$DPID +
-        sleep 120 +
-        if [ -f ${REP_FIC_TMP}/timeout_dsmc.$DPID ] ; then +
-            echo "$(date '+%d/%m/%Y %X') : DBA_WARNING ORACLE : ${PROG} KO TIMEOUT REACHED on $INSTANCE [PID: $DPID]" >> ${TNG} +
-            kill $DPID 2>/dev/null +
-        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="$CAPTION" -v VERSION="$VERSION" '
 +BEGIN {
 +       print "<center>"
 +       print "<table border cellspacing=0 cellpadding=5>"
 +       print "<caption><B><FONT SIZE=4 FACE=TERMINAL>" CAPTION "</caption></B></FONT>"
 +       print "<caption><B><FONT SIZE=1 FACE=TERMINAL>" VERSION "</caption></B></FONT>"
 +       }
 +{
 +x=1
 +print"<tr>"
 +       while ( x <= NF ) {
 +               if ( NR ==1) print "\t <th><FONT FACE=TERMINAL SIZE=3>" $x "</FONT></th>"
 +               else print  "\t <td><FONT FACE=TERMINAL SIZE=2><DIV ALIGN=CENTER>" $x "</DIV></FONT></td>"
 +               ++x
 +               }
 +       print "</tr>"
 +}
 +END {
 +       print "</table>"
 +       print "</center>"
 +}' $CSV
  
-======VI Reference====== +</code>
-Un petit PDF à récupérer :[[http://files.ndlp.info/bazar/info/Linux-Vi-Reference.pdf|http://files.ndlp.info/bazar/info/Linux-Vi-Reference.pdf]]+
  
-======Shift J====== +====== Lancer un process en background, checker sa présence, le killer si besoin ======
-  cat MACHINE_disques|awk '/disk/ {ligne=$0} /\dev\/dsk/ {print ligne" "$1" "$2}' +
-   +
-  disk    976  0/0/14/1/0.119.36.19.0.14.6   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX +
-                              /dev/dsk/c96t14d6   /dev/rdsk/c96t14d6 +
-  disk    983  0/0/14/1/0.119.36.19.0.14.7   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX +
-                              /dev/dsk/c96t14d7   /dev/rdsk/c96t14d7 +
-  disk    130  0/0/14/1/0.119.36.19.0.15.0   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX +
-                              /dev/dsk/c96t15d0   /dev/rdsk/c96t15d0 +
-  disk    183  0/0/14/1/0.119.36.19.1.0.0    sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX +
-                              /dev/dsk/c108t0d0   /dev/rdsk/c108t0d0 +
-   +
-  disk    976  0/0/14/1/0.119.36.19.0.14.6   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX /dev/dsk/c96t14d6 /dev/rdsk/c96t14d6 +
-  disk    983  0/0/14/1/0.119.36.19.0.14.7   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX /dev/dsk/c96t14d7 /dev/rdsk/c96t14d7 +
-  disk    130  0/0/14/1/0.119.36.19.0.15.0   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX /dev/dsk/c96t15d0 /dev/rdsk/c96t15d0 +
-  disk    183  0/0/14/1/0.119.36.19.1.0.0    sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX /dev/dsk/c108t0d0 /dev/rdsk/c108t0d0 +
- +
  
 +# Appel dsmc avec mise en place d'un timeout si la commande dsmc ne repond pas
  
 +<code>
 +    ( dsmc q ar "/apps/oracle/backup/${INSTANCE}/" -fromdate=${DateMoins7Jours}>>  ${REP_FIC_TMP}/dumpCheck.${INSTANCE}.$$ 2>&1 ) &
 +    DPID=$!; echo "DBA_INFO: ${PROG} DUMP PID de $INSTANCE: $DPID"
  
 +    # LANCEMENT DU KILLER / TIMEOUT
 +    ( touch ${REP_FIC_TMP}/timeout_dsmc.$DPID
 +      sleep 120
 +      if [ -f ${REP_FIC_TMP}/timeout_dsmc.$DPID ] ; then
 +          echo "$(date '+%d/%m/%Y %X') : DBA_WARNING ORACLE : ${PROG} KO TIMEOUT REACHED on $INSTANCE [PID: $DPID]">> ${TNG}
 +          kill $DPID 2>/dev/null
 +      fi
 +    ) &
  
 +    # Attente de la fin du process DSMC
 +    wait $DPID
 +    [ -f ${REP_FIC_TMP}/timeout_dsmc.$DPID ] && rm ${REP_FIC_TMP}/timeout_dsmc.$DPID
  
 +</code>
 +
 +====== VI Reference ======
 +
 +Un petit PDF à récupérer :[[http://files.ndlp.info/bazar/info/Linux-Vi-Reference.pdf|http://files.ndlp.info/bazar/info/Linux-Vi-Reference.pdf]]
 +
 +====== Shift J ======
 +<code>
 +
 +cat MACHINE_disques|awk '/disk/ {ligne=$0} /\dev\/dsk/ {print ligne" "$1" "$2}'
 +
 +disk    976  0/0/14/1/0.119.36.19.0.14.6   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX
 +                            /dev/dsk/c96t14d6   /dev/rdsk/c96t14d6
 +disk    983  0/0/14/1/0.119.36.19.0.14.7   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX
 +                            /dev/dsk/c96t14d7   /dev/rdsk/c96t14d7
 +disk    130  0/0/14/1/0.119.36.19.0.15.0   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX
 +                            /dev/dsk/c96t15d0   /dev/rdsk/c96t15d0
 +disk    183  0/0/14/1/0.119.36.19.1.0.0    sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX
 +                            /dev/dsk/c108t0d0   /dev/rdsk/c108t0d0
 +
 +disk    976  0/0/14/1/0.119.36.19.0.14.6   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX /dev/dsk/c96t14d6 /dev/rdsk/c96t14d6
 +disk    983  0/0/14/1/0.119.36.19.0.14.7   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX /dev/dsk/c96t14d7 /dev/rdsk/c96t14d7
 +disk    130  0/0/14/1/0.119.36.19.0.15.0   sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX /dev/dsk/c96t15d0 /dev/rdsk/c96t15d0
 +disk    183  0/0/14/1/0.119.36.19.1.0.0    sdisk    CLAIMED     DEVICE       EMC     SYMMETRIX /dev/dsk/c108t0d0 /dev/rdsk/c108t0d0
 +
 +</code>
  
 ====== Backup via FTP avec tar, gzip et gpg ====== ====== Backup via FTP avec tar, gzip et gpg ======
 +
   * En backup full   * En backup full
 +<code>
  
-   tar cvf - /var/ --exclude="ftp" --exclude="www" |gpg -e -r ''votreclé'' - | ncftpput -c -u ''login'' -p ''password''+ tar cvf - /var/ --exclude="ftp" --exclude="www" |gpg -e -r ''votreclé'' - | ncftpput -c -u ''login'' -p ''password''
-  dedibackup.dedibox.fr var.tar.gpg+dedibackup.dedibox.fr var.tar.gpg 
 + 
 +</code>
  
   * En backup incrémental   * En backup incrémental
 +<code>
  
-  tar cvf - $(find /var -mtime 1 -print) |gpg -e -r ''votreclé'' - | ncftpput -c -u ''login'' -p ''password''+tar cvf - $(find /var -mtime 1 -print) |gpg -e -r ''votreclé'' - | ncftpput -c -u ''login'' -p ''password''
-  dedibackup.dedibox.fr var.tar.gpg+dedibackup.dedibox.fr var.tar.gpg 
 + 
 +</code>
  
 ''note : ne fonctionne pas avec des noms de fichiers contenant des espaces'' ''note : ne fonctionne pas avec des noms de fichiers contenant des espaces''
  
 Utiliser plutôt : Utiliser plutôt :
 +<code>
  
-  find /home/$dir -type f -mtime 1 -print | tar cvT - |gpg -e -r 'votreclé' - | ncftpput -c -u ''login'' -p ''password''+find /home/$dir -type f -mtime 1 -print | tar cvT - |gpg -e -r 'votreclé' - | ncftpput -c -u ''login'' -p ''password''
-  INC/home/$DATE/home_${dir}.tar.gpg+INC/home/$DATE/home_${dir}.tar.gpg
  
 +</code>
  
 ====== Convertif un PDF en n images ====== ====== Convertif un PDF en n images ======
 +
 Avec [[http://pages.cs.wisc.edu/~ghost|Ghostscript]] : Avec [[http://pages.cs.wisc.edu/~ghost|Ghostscript]] :
 +<code>
  
-  gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r200 -g640x480 -sOutputFile=20min_Apple_%03d.jpeg 20min_Apple.pdf+gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r200 -g640x480 -sOutputFile=20min_Apple_%03d.jpeg 20min_Apple.pdf 
 + 
 +</code>
  
 ====== Fichiers sensibles ====== ====== Fichiers sensibles ======
 +
 ===== Liste des fichiers sensibles AIX ===== ===== Liste des fichiers sensibles AIX =====
  
-===== Usage stand-alone ===== +==== Usage stand-alone ==== 
-  */etc/filesystems + 
-  */etc/resolv.conf +  * /etc/filesystems 
-  */etc/inittab +  * /etc/resolv.conf 
-  */etc/inetd.conf +  * /etc/inittab 
-  */etc/rc.local +  * /etc/inetd.conf 
-  */etc/passwd +  * /etc/rc.local 
-  */etc/group +  * /etc/passwd 
-  */etc/security/passwd +  * /etc/group 
-  */etc/security/login +  * /etc/security/passwd 
-  */etc/security/users +  * /etc/security/login 
-  */etc/environment +  * /etc/security/users 
-  */etc/shutdown+  * /etc/environment 
 +  * /etc/shutdown
  
 Pour SP : Pour SP :
-  */etc/rc.sp 
  
-===== Usage HA-CMP ===== +  * /etc/rc.sp 
-  */etc/hosts + 
-  */.rhosts +==== Usage HA-CMP ==== 
-  */usr/hacmp/script/+ 
-  */usr/hacmp/exec/*+  * /etc/hosts 
 +  * /.rhosts 
 +  * /usr/hacmp/script/
 +  * /usr/hacmp/exec/*
  
 ===== Liste des fichiers sensibles HP ===== ===== Liste des fichiers sensibles HP =====
  
-===== Usage stand-alone ===== +==== Usage stand-alone ==== 
-  */etc/fstab + 
-  */etc/resolv.conf +  * /etc/fstab 
-  */etc/nswitch.conf +  * /etc/resolv.conf 
-  */etc/inittab +  * /etc/nswitch.conf 
-  */etc/inetd.conf +  * /etc/inittab 
-  */etc/passwd +  * /etc/inetd.conf 
-  */etc/group +  * /etc/passwd 
 +  * /etc/group 
 + 
 +==== Usage MCServiceGuard ====
  
-===== Usage MCServiceGuard ===== +  * /etc/cmcluster/*
-   */etc/cmcluster/*+
  
 ===== Liste des fichiers sensibles SUN ===== ===== Liste des fichiers sensibles SUN =====
  
-===== Usage stand-alone ===== +==== Usage stand-alone ==== 
-  */etc/vfstab + 
-  */etc/resolv.conf +  * /etc/vfstab 
-  */etc/nsswitch.conf +  * /etc/resolv.conf 
-  */etc/inittab +  * /etc/nsswitch.conf 
-  */etc/inetd.conf +  * /etc/inittab 
-  */etc/passwd +  * /etc/inetd.conf 
-  */etc/group +  * /etc/passwd 
-  */etc/hosts +  * /etc/group 
-  */etc/project +  * /etc/hosts 
-  */etc/pam.conf +  * /etc/project 
-  */.rhosts+  * /etc/pam.conf 
 +  * /.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'avec du HTML simple. 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'avec du HTML simple.
  
-  echo "<html>" >> /tmp/mail.check_fs +<code> 
-  df -kh |grep $FS|grep "%" >> /tmp/mail.check_fs +echo "<html>">> /tmp/mail.check_fs 
-  echo "<br><br>" >> /tmp/mail.check_fs +df -kh |grep $FS|grep "%">> /tmp/mail.check_fs 
-  echo "<img src="HTTP://www.domain.com/uneimage.jpg"></a>" >> /tmp/mail.check_fs +echo "<br><br>">> /tmp/mail.check_fs 
-  echo "<br><br>" >> /tmp/mail.check_fs +echo "<img src="HTTP://www.domain.com/uneimage.jpg"></a>">> /tmp/mail.check_fs 
-  echo "<html>" >> /tmp/mail.check_fs +echo "<br><br>">> /tmp/mail.check_fs 
-     +echo "<html>">> /tmp/mail.check_fs 
-   + 
-      echo "Message-Id: <`date +%Y%m%d%H%M%S`.QAA$$@ndlp.info>" + { 
-      echo "To: toto@titi.com,tata@titi.com" +    echo "Message-Id: <`date +%Y%m%d%H%M%S`.QAA$$@ndlp.info>" 
-      echo "Subject: Filesystems > ? 85%" +    echo "To: toto@titi.com,tata@titi.com" 
-      echo "Content-Type: text/html; charset=iso-8859-1"" +    echo "Subject: Filesystems> ? 85%" 
-      echo "Content-Transfer-Encoding: 7bit" +    echo "Content-Type: text/html; charset=iso-8859-1"" 
-      cat /tmp/mail.check_fs +    echo "Content-Transfer-Encoding: 7bit" 
-      uuencode /etc/hosts /etc/hosts (pour une pièce jointe) +    cat /tmp/mail.check_fs 
-      } | /usr/lib/sendmail -froot -t+    uuencode /etc/hosts /etc/hosts (pour une pièce jointe) 
 +    } | /usr/lib/sendmail -froot -t 
 + 
 +</code>
  
 ====== 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 ''uuencode''. Ci-dessous un exemple avec ''mailx'' et ''unix2dox'' pour envoyer un texte avec un piéce jointe : 
  
-  (cat /tmp/mail_encod ; unix2dos /home/ben/reencode.log|uuencode /home/ben/reencode.log /home/ben/reencode.log)\ +On peut également envoyer un mail avec une pièce jointe en utilisant ''uuencode''. Ci-dessous un exemple avec ''mailx''  et ''unix2dox''  pour envoyer un texte avec un piéce jointe : 
-  |mailx -s "Aucun fichier pour encodage" toto@titi.com+<code> 
 + 
 +(cat /tmp/mail_encod ; unix2dos /home/ben/reencode.log|uuencode /home/ben/reencode.log /home/ben/reencode.log)\ 
 +|mailx -s "Aucun fichier pour encodage" toto@titi.com 
 + 
 +</code>
  
 On peut aussi combiner avec du HTML. On peut aussi combiner avec du HTML.
  
 ====== Modification du fichier ''/etc/mail/genericstable'' ====== ====== Modification du fichier ''/etc/mail/genericstable'' ======
 +
 On crée un ou plusieurs alias : On crée un ou plusieurs alias :
-  toto toto@domain.com+<code> 
 + 
 +toto toto@domain.com 
 + 
 +</code>
  
 ====== Rechargement de la configuration pour prise en compte par sendmail ====== ====== Rechargement de la configuration pour prise en compte par sendmail ======
-  *HP-UX 
  
-   makedbm genericstable genericstable+  * HP-UX
  
-  *AIX+<code> 
 + makedbm genericstable genericstable
  
-   makemap hash genericstable genericstable+</code>
  
 +  * AIX
 +
 +<code>
 + makemap hash genericstable <genericstable
 +
 +</code>
  
 ====== Mixer 2 fichiers en colonne ====== ====== Mixer 2 fichiers en colonne ======
  
-  paste fic1 fic2 > fic.out+<code> 
 +paste fic1 fic2> fic.out 
 + 
 +</code>
  
 ====== Ports utilisés par un process ====== ====== Ports utilisés par un process ======
  
-  lsof -a -p 22231 -i+<code> 
 +lsof -a -p 22231 -i 
 + 
 +</code>
  
 ====== Débugger un process ====== ====== Débugger un process ======
  
-  tusc -o /tmp/sendmail.out -f -a -k -w all -p 15340+<code> 
 +tusc -o /tmp/sendmail.out -f -a -k -w all -p 15340
  
 +</code>
  
 ====== Config Panasas ====== ====== Config Panasas ======
Ligne 468: Ligne 667:
 ''Installer les 2 RPMs'' ''Installer les 2 RPMs''
  
-  /usr/local/sbin/config_panfs -r machine -a -o dir-caching=0 +<code> 
 +/usr/local/sbin/config_panfs -r machine -a -o dir-caching=0
  
 +</code>
  
 ====== sar ====== ====== sar ======
-   
-  sar | tr -s "&#91; &#93;" | sed 's/ /,/g' > sar.data 
-  uuencode sar.data sar.xls | sendmail yourname@yourdomain.com 
- 
- 
- 
- 
- 
  
 +<code>
 +sar | tr -s "[ ]" | sed 's/ /,/g'> sar.data
 +uuencode sar.data sar.xls | sendmail yourname@yourdomain.com
  
 +</code>
  
 ====== Créer un fichier de 1 Go ====== ====== Créer un fichier de 1 Go ======
-  dd if=/dev/zero of=/apps/sybase/dump/col2/test_ben bs=1024 count=1000000+<code>
  
 +dd if=/dev/zero of=/apps/sybase/dump/col2/test_ben bs=1024 count=1000000
  
 +</code>
  
 ====== bad interpreter: Permission denied ====== ====== bad interpreter: Permission denied ======
  
-Le FS a peut-être l'option ''noexec'' (''linux'') +Le FS a peut-être l'option ''noexec''  (''linux'')
  
 ====== tar > 2 Go ====== ====== tar > 2 Go ======
Ligne 503: Ligne 700:
 /dev/lv_oraREG_back --         /apps/oracle/backup/RG1P jfs   102432768 rw         no   no /dev/lv_oraREG_back --         /apps/oracle/backup/RG1P jfs   102432768 rw         no   no
   (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)
 +
 </code> </code>
  
-  tar -cvf - /apps/registrar |split -b 2000m - /apps/oracle/backup/RG1P/tmp/mon_prefixe+<code> 
 +tar -cvf - /apps/registrar |split -b 2000m - /apps/oracle/backup/RG1P/tmp/mon_prefixe
  
-  cat mon_prefixe* mon_fichier+</code> 
 +<code>
  
 +cat mon_prefixe*> mon_fichier
 +
 +</code>
  
 ====== 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=/dev/zero bs=1024k count=50 " /dev/null+<code> 
 +put "| dd if=/dev/zero bs=1024k count=50 " /dev/null
  
 +</code>
 <code> <code>
 +
 ftp> put "| dd if=/dev/zero bs=1024k count=50 " /dev/null ftp> put "| dd if=/dev/zero bs=1024k count=50 " /dev/null
 local: | dd if=/dev/zero bs=1024k count=50  remote: /dev/null local: | dd if=/dev/zero bs=1024k count=50  remote: /dev/null
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)
 +
 </code> </code>
  
 ====== /etc/shadow ====== ====== /etc/shadow ======
  
-Si vous créez un fichier ///etc/shadow// sur un serveur, alors tous les passwords doivent se trouver dans ///etc/shadow//. On ne peut pas avoir un tel fichier avec uniquement une entrée. Sinon plus personne ne peut se logger (vérification dans ///etc/passwd// PUIS dans ///etc/shadow// -> si rien n'est trouvé pas de connexion possible :-?). +Si vous créez un fichier ///etc/shadow//  sur un serveur, alors tous les passwords doivent se trouver dans ///etc/shadow//. On ne peut pas avoir un tel fichier avec uniquement une entrée. Sinon plus personne ne peut se logger (vérification dans ///etc/passwd//  PUIS dans ///etc/shadow//  → si rien n'est trouvé pas de connexion possible :-? ).
  
 ====== 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'option -u  (ps -fu root)+  * Vous voulez la liste des process appartenant à root et vous ne connaissez pas l'option -u (ps -fu root)
  
 Avec un pipe, on fait : Avec un pipe, on fait :
 +<code>
  
-  ps -ef|grep ^root+ps -ef|grep ^root
  
-Sans pipe+</code>
  
 +Sans pipe
 <code> <code>
 +
 mkfifo MonPipe (on reconnait le device ainsi:  prw------- ) mkfifo MonPipe (on reconnait le device ainsi:  prw------- )
-puis ps -ef > MonPipe &+puis ps -ef> MonPipe &
 grep ^root MonPipe grep ^root MonPipe
 +
 </code> </code>
  
 Quand c'est fini : Quand c'est fini :
  
-  rm -f MonPipe+<code> 
 +rm -f MonPipe
  
-**&**: On lance le //ps -ef >MonPipe// en tâche de fond, car si on est sur la console, on n'a qu'une fenetre d'utilisable, sinon, on passe par un telnet classique et le probleme ne se pose pas ;-)+</code> 
 + 
 +**&**: On lance le //ps -ef >MonPipe//  en tâche de fond, car si on est sur la console, on n'a qu'une fenetre d'utilisable, sinon, on passe par un telnet classique et le probleme ne se pose pas ;-)
  
 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 >fifo_jgab & +echo 1>fifo_jgab & 
-echo 2 >fifo_jgab & +echo 2>fifo_jgab & 
-echo 3 >fifo_jgab &+echo 3>fifo_jgab &
 cat fifo_jgab cat fifo_jgab
  
Ligne 572: Ligne 785:
 2 2
 1 1
-[1]   Done                    echo 1 >fifo_jgab +[1]   Done                    echo 1>fifo_jgab 
-[2]-  Done                    echo 2 >fifo_jgab +[2]-  Done                    echo 2>fifo_jgab 
-[3]+  Done                    echo 3 >fifo_jgab+[3]+  Done                    echo 3>fifo_jgab 
 </code> </code>
  
 Sinon on a le code ASCII : <key>A</key><key>1</key><key>2</key><key>4</key> Sinon on a le code ASCII : <key>A</key><key>1</key><key>2</key><key>4</key>
- 
  
 ====== Conversion HEXA <-> Decimal ====== ====== Conversion HEXA <-> Decimal ======
  
-  echo "ibase=10;obase=16;1100272340"|bc +<code> 
-   +echo "ibase=10;obase=16;1100272340"|bc 
-  printf "%d\n" 0x9E+ 
 +printf "%d\n" 0x9E 
 + 
 +</code>
  
 ====== highlighted grep ====== ====== highlighted grep ======
  
-{{:informatique:nix:hgrep.png}}+[[https://unix.ndlp.info/lib/exe/detail.php?id=informatique:nix:tips_infos&media=informatique:nix:hgrep.png|{{:informatique:nix:hgrep.png}}]]
  
-====== Empêcher vi d'effacer l'écran lors de la sortie  ======+====== Empêcher vi d'effacer l'écran lors de la sortie ======
  
-Lorsqu'on sort d'un vi  on n'a plus l'affichage du fichier à l'écran ce qui est pénible ;)+Lorsqu'on sort d'un vi on n'a plus l'affichage du fichier à l'écran ce qui est pénible ;)
  
-Il suffit d'ajouter l'entrée suivante dans le fichier //.vimrc// de l'utilisateur (on peut créer le fichier s'il n'existe pas) :+Il suffit d'ajouter l'entrée suivante dans le fichier //.vimrc//  de l'utilisateur (on peut créer le fichier s'il n'existe pas) : 
 +<code>
  
-  set t_ti= t_te=+set t_ti= t_te= 
 + 
 +</code>
  
-====== Supprimer les espaces d'un fichier ====== +====== Supprimer les espaces d'un fichier ======
  
 <code> <code>
Ligne 605: Ligne 824:
 wq wq
 ! !
 +
 </code> </code>
  
-====== Sendmail, écoute sur localhost ====== +====== Sendmail, écoute sur localhost ======
  
-Plutôt que de regénérer le fichier //sendmail.cf// on peut modifier, dans le fichier ///etc/init.d/sendmail// (ou équivalent) :+Plutôt que de regénérer le fichier //sendmail.cf//  on peut modifier, dans le fichier ///etc/init.d/sendmail//  (ou équivalent) :
  
-  MODE="-bd"+<code> 
 +MODE="-bd" 
 + 
 +</code>
  
 par par
  
-  MODE="-bd -ODaemonPortOptions=Addr=localhost"+<code> 
 +MODE="-bd -ODaemonPortOptions=Addr=localhost"
  
-====== sar -d reformaté ======  +</code>
-   +
-  sar -d |awk '{if (NF==1) {next};if (NF==8) {DEV=$1} else {$0=DEV$0};print}'+
  
-====== Coupure SAN ====== +====== sar -d reformaté ====== 
 + 
 +<code> 
 +sar -d |awk '{if (NF==1) {next};if (NF==8) {DEV=$1} else {$0=DEV$0};print}' 
 + 
 +</code> 
 + 
 +====== Coupure SAN ======
  
   * Vérifier les chemins EMC :   * Vérifier les chemins EMC :
 +<code>
  
-  powermt display  +powermt display 
-  powermt restore (si certains disques n'apparaissent pas après reboot)+powermt restore (si certains disques n'apparaissent pas après reboot) 
 + 
 +</code>
  
 ==== 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+<code> 
 +lsvg -o | grep -v rootvg | lsvg -i -l
  
-  * Resynchroniser+</code>
  
 +  * Resynchroniser
 <code> <code>
 +
 for i in `lsvg –o | grep –v rootvg` for i in `lsvg –o | grep –v rootvg`
 do do
    varyonvg  $i    varyonvg  $i
 done done
 +
 </code> </code>
  
Ligne 646: Ligne 882:
  
   * Vérifier la synchro des LVs :   * Vérifier la synchro des LVs :
 +<code>
  
-  vgdisplay –v <vg name> | egrep « stale|unavailable »+vgdisplay –v <vg name> | egrep « stale|unavailable » 
 + 
 +</code>
  
   * Resynchroniser   * Resynchroniser
 +<code>
  
-  vgchange -a e -q n -s </dev/vg_name> (pour un VG dans un cluster) +vgchange -a e -q n -s </dev/vg_name> (pour un VG dans un cluster) 
-  vgchange –a y -s </dev/vg_name>+vgchange –a y -s </dev/vg_name
 + 
 +</code>
  
 ==== Solaris (Veritas) ==== ==== Solaris (Veritas) ====
  
-  * Vérifier la synchro des LVs +  * Vérifier la synchro des LVs
  
-  vxdiskconfig  +<code> 
-  vxdisk list +vxdiskconfig 
 +vxdisk list
  
-Si //failed// :+</code>
  
-  vxreattach –c <device> +Si //failed// 
-  vxreattach <device>+ 
 +<code> 
 +vxreattach –c <device> 
 +vxreattach <device
 + 
 +</code>
  
   * Resynchroniser   * Resynchroniser
  
-  vxrecover –b <device name> +<code> 
-  vxtask list +vxrecover –b <device name> 
 +vxtask list 
 + 
 +</code>
  
 ====== Convertir une chaine en MD5 ====== ====== Convertir une chaine en MD5 ======
  
-  WEBvm:/tmp# echo -n "toto"|md5sum +<code> 
-  f71dbe52628a3f83a77ab494817525c6+WEBvm:/tmp# echo -n "toto"|md5sum 
 +f71dbe52628a3f83a77ab494817525c6 
 + 
 +</code>
  
 ====== 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**  : 
 +<code>
  
-  ssh -n localhost ps -ef+ssh -n localhost ps -ef 
 + 
 +</code>
  
 ====== Utiliser ed ====== ====== Utiliser ed ======
Ligne 686: Ligne 943:
   * Pour lancer ed   * Pour lancer ed
  
-  ed fic.txt  (on arrive en fin de fichier)  +<code> 
 +ed fic.txt     (on arrive en fin de fichier) 
 + 
 +</code>
  
   * Pour connaitre le n° de ligne courante   * Pour connaitre le n° de ligne courante
  
-   (affiche le n° de la ligne courante et le contenu).+<code> 
 +    (affiche le n° de la ligne courante et le contenu). 
 + 
 +</code>
  
   * Autres flags rigolos   * Autres flags rigolos
 +
 <code> <code>
-. 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 +       aller à la ligne 5 
-d supprime la ligne +       supprime la ligne 
-a ajoute une ligne +       ajoute une ligne 
-r remplace la ligne courante +       remplace la ligne courante 
-s/titi/toto/ remplace le 1er titi par toto de la ligne courante +s/titi/toto/    remplace le 1er titi par toto de la ligne courante 
-s/titi/toto/g remplace toutes les chaînes titi par toto de la ligne courante +s/titi/toto/   remplace toutes les chaînes titi par toto de la ligne courante 
-,s/titi/toto/g remplace dans l'ensemble du fichier titi par toto. +,s/titi/toto/   remplace dans l'ensemble du fichier titi par toto. 
-/toto aller à la prochaine occurence de toto +/toto        aller à la prochaine occurence de toto 
-?toto aller à l'occurence precedente de toto+?toto        aller à l'occurence precedente de toto
  
 +w        sauvegarde le fichier
 +w fic2.txt    sauvegarde sous fic2.txt
 +q        quitter
  
-w sauvegarde le fichier 
-w fic2.txt sauvegarde sous fic2.txt 
-q quitter 
 </code> </code>
  
 ====== Customiser son historique ====== ====== Customiser son historique ======
  
-  export HISTTIMEFORMAT="[ %d/%m/%Y %H:%M:%S ]"+<code> 
 +export HISTTIMEFORMAT="[ %d/%m/%Y %H:%M:%S ]" 
 + 
 +</code>
  
 Dans le fichier /etc/profile du coup n'importe quel shell est impacté. Après on peut voir comment le mettre. Ca donne ça : Dans le fichier /etc/profile du coup n'importe quel shell est impacté. Après on peut voir comment le mettre. Ca donne ça :
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
 +
 </code> </code>
  
 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="ls:cd:ll"+<code> 
 +HISTIGNORE="ls:cd:ll" 
 + 
 +</code>
  
 ====== 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 /etc/services pour faire le lien entre le demon et le port/protocole qui sera utilisé  +  * 1) Ajouter les infos dans /etc/services pour faire le lien entre le demon et le port/protocole qui sera utilisé
-  <code>mondemon        1234/tcp        #BlaBla</code>+
  
-    * 2.1) Modifier /etc/inetd.conf (HP-UX / AIX / Solaris)  +<code> 
-  <code> mondemon       stream tcp    nowait  root  /monchemin/monscript mondemon</code>+mondemon        1234/tcp        #BlaBla
  
-    * 2.2) Créér le fichier /etc/xinetd.d/mondemon (Linux) +</code> 
-  <code>service mondemon+ 
 +  * 2.1) Modifier /etc/inetd.conf (HP-UX / AIX / Solaris) 
 + 
 +<code> 
 + mondemon       stream tcp    nowait  root  /monchemin/monscript mondemon 
 + 
 +</code> 
 + 
 +  * 2.2) Créér le fichier /etc/xinetd.d/mondemon (Linux) 
 + 
 +<code> 
 +service mondemon
 { {
         disable = no         disable = no
Ligne 756: Ligne 1038:
         log_on_failure  += USERID         log_on_failure  += USERID
 } }
 +
 </code> </code>
  
   * 3) Refresh de inetd   * 3) Refresh de inetd
- service xinetd reload sur linux 
- ou kill -HUP <pid du process inetd> 
  
-  * 4) Checks +service xinetd reload sur linux 
 + 
 +<code> 
 +ou kill -HUP <pid du process inetd> 
 + 
 +</code> 
 + 
 +  * 4) Checks 
 <code> <code>
 netstat -an |grep 1234 netstat -an |grep 1234
 tcp        0      0 0.0.0.0:1234                0.0.0.0:                  LISTEN tcp        0      0 0.0.0.0:1234                0.0.0.0:                  LISTEN
 => on ecoute (LISTEN) sur le port 1234 renseigné dans /etc/services => on ecoute (LISTEN) sur le port 1234 renseigné dans /etc/services
- 
  
 depuis un autre serveur, lancer un telnet <monserveur> 1234 depuis un autre serveur, lancer un telnet <monserveur> 1234
 +
 </code> </code>
  
 ====== Aligner les colonnes en shell ====== ====== Aligner les colonnes en shell ======
 +<code>
  
-  awk '{printf "%-20s%-20s%-20s%-20s\n", $1, $2, $3, $4}' /tmp/lspv.txt+awk '{printf "%-20s%-20s%-20s%-20s\n", $1, $2, $3, $4}' /tmp/lspv.txt 
 + 
 +</code>
  
 ====== Restaurer des droits ====== ====== Restaurer des droits ======
Ligne 784: Ligne 1076:
   o=substr($1,8,3); gsub("\-","",o);   o=substr($1,8,3); gsub("\-","",o);
   print "chmod u="u",g="g",o="o,$NF   print "chmod u="u",g="g",o="o,$NF
-}' > /tmp/listefic.txt +}'> /tmp/listefic.txt
  
 find /etc/ -type d -exec ls -ld {} \;|awk ' find /etc/ -type d -exec ls -ld {} \;|awk '
Ligne 792: Ligne 1083:
   o=substr($1,8,3); gsub("\-","",o);   o=substr($1,8,3); gsub("\-","",o);
   print "chmod u="u",g="g",o="o,$NF   print "chmod u="u",g="g",o="o,$NF
-}' > /tmp/listedir.txt+}'> /tmp/listedir.txt 
 </code> </code>
  
 ====== Tunnel SSH ====== ====== Tunnel SSH ======
- 
 <code> <code>
 +
 ssh -L 9999:127.0.0.1:9999 serveur_de_rebond /usr/local/bin/ssh -L 9999:127.0.0.1:22 -N serveur_de_destination ssh -L 9999:127.0.0.1:9999 serveur_de_rebond /usr/local/bin/ssh -L 9999:127.0.0.1:22 -N serveur_de_destination
 +
 </code> </code>
  
Ligne 806: Ligne 1099:
 PATHS=( "//toto"  "//titi" "//tata" ) PATHS=( "//toto"  "//titi" "//tata" )
 MOUNTS=(  "/mnt/toto" "/mnt/titi" "/mnt/tata" ) MOUNTS=(  "/mnt/toto" "/mnt/titi" "/mnt/tata" )
-for (( i = 0 ; i < ${#PATHS[@]} ; i++ ))+for (( i = 0 ; i <${#PATHS[@]} ; i++ ))
 do do
  echo ${PATHS[$i]} ${MOUNTS[$i]}  echo ${PATHS[$i]} ${MOUNTS[$i]}
 done done
 +
 </code> </code>
  
Ligne 815: Ligne 1109:
  
 Accès console backup : Accès console backup :
-  telnet host 8010+ 
 +<code> 
 +telnet host 8010 
 + 
 +</code> 
 + 
 + 
  
  • informatique/nix/tips_infos.1426873247.txt.gz
  • Dernière modification : 2015/03/20 17:40
  • de 127.0.0.1