Quelques trucs et astuces avec ssh.
- Ignorer la clef de host :
ssh -o stricthostkeychecking=no server
- Mode batch, aucun « prompt » (password, clef) n’est demandé, en gros ca marche ou pas :
ssh -o batchmode=yes server
- Mode quiet , aucun message d’alerte ou diagnostique est affiché :
ssh -q server
- Utiliser une commande avec des quotes (ex : awk). Il faut protéger les quotes avec des double quotes (
"'"
) : ssh server 'vgdisplay | grep "VG Name" | awk '"'"'{print $NF}'"'"''
Le bdf hpux fait parfois un retour chariot pénible comme ci dessous avec /appl/autotree.
Le problème est que l’on a plus même nombre de colonnes (5 au lieu de 6), ce qui empêche de faire des sommes.
root@hx04031a: /root/home/root # bdf
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lvol3 1048576 298432 744424 29% /
/dev/vg00/lvol1 1835008 329800 1493520 18% /stand
/dev/vg00/lvol8 8912896 7199008 1703728 81% /var
/dev/vg00/lvol9 10485760 3833009 6238725 38% /var/adm/crash
/dev/vg00/lvol7 5505024 3088424 2397816 56% /usr
/dev/vg00/lvol4 524288 115672 405496 22% /tmp
/dev/vg00/lvol6 9633792 6518920 3090656 68% /opt
/dev/vg00/lvol5 131072 16248 113960 12% /home
/dev/vg00/lvautotree
1048576 41159 944483 4% /appl/autotree
La « commande » ci dessus utilise perl pour fixer le problème.
root@hx04031a: /root/home/root # bdf | sed 's/^\//###\//g' | perl -pe 's/\s+/\t/g' | perl -pe 's/\n//g' | perl -pe 's/###/\n/g' && echo
Filesystem kbytes used avail %used Mounted on
/dev/vg00/lvol3 1048576 298496 744360 29% /
/dev/vg00/lvol1 1835008 329800 1493520 18% /stand
/dev/vg00/lvol8 8912896 7199016 1703728 81% /var
/dev/vg00/lvol9 10485760 3833009 6238725 38% /var/adm/crash
/dev/vg00/lvol7 5505024 3088424 2397816 56% /usr
/dev/vg00/lvol4 524288 115672 405496 22% /tmp
/dev/vg00/lvol6 9633792 6518920 3090656 68% /opt
/dev/vg00/lvol5 131072 16248 113960 12% /home
/dev/vg00/lvautotree 1048576 41159 944483 4% /appl/autotree
On peut donc maintenant sommer les colonnes.
bdf | sed 's/^\//###\//g' | perl -pe 's/\s+/\t/g' | perl -pe 's/\n//g' | perl -pe 's/###/\n/g' \
| awk '{sumt+=$2;sumu+=$3;suma+=$4}END{printf("Total : %.2f %.2f %.2f\n",sumt/1024,sumu/1024,suma/1024)}'
Total : 38208.00 20938.31 16731.11