[Linuxtrent] Esempi shell.

  • From: Gianni Caldonazzi <gianni.caldonazzi@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Mon, 24 Oct 2011 13:46:31 +0200

Ciao lista,
al corso shell come compito Daniela ci ha chiesto un paio di esempi
per impratichirci.
Visto che questa sera non porterò il PC, posto i miei in lista così:

  1. Magari servono a qualcuno.
  2. Troverò qualche anima pia al corso che potrà leggere questo
messaggio per discutere i miei esempi.


Primo esempio:

Devo dire a Backuppc di rileggere la configurazione perchè ho variato
a mano i file e non tramite interfaccia web.
Il comando sarà:

  #  kill -HUP `ps aux | grep "BackupPC \-d" | awk '{ print $2 }'`


Secondo esempio:

Questo un po' più complicato, uno script non perfetto ma perfezionabile.
Voglio migrare tutte le vm da un nodo proxmox ad un'altro, con
l'opzione che mi permetta di riportare indietro le vm al loro posto
dopo la manutenzione.
Incollo lo script:

-------------------------------------------------------------------------
#!/bin/bash

IDFILE="/root/vmids.$HOSTNAME"

uso () {
   echo ""
   echo "Usage: `basename $0` [-a <nodo destinazione>|-b <vmids file>]"
   echo ""
   echo "       -a = migra tutte le vm in running"
   echo "       -b = migra tutte le vm contenute nel file VMIDS passato"
   echo ""
   echo "Note:"
   echo "     Col parametro -a viene prodotto un file in /root di nome:"
   echo "     vmids.<nome virtualizzatore origine>"
   echo "     questo viene spedito sul virtualizzatore di destinazione."
   echo "     Servirà poi per riportare le vm al nodo originale."
   echo ""
   exit 1
}

andata () {

   qm list | grep running | awk '{print $1}' > $IDFILE
   for vmid in `cat $IDFILE`
   do
      echo "Migro: $vmid su $1"
      qmigrate --online --verbose $1 $vmid
   done
   scp $IDFILE root@$1:$IDFILE
   rm $IDFILE
   exit 0
}

ritorno () {

   for vmid in `cat $1`
   do
      echo "Migro: $vmid su ${1#vmids.}"
      qmigrate --online --verbose ${1#vmids.} $vmid
   done
   rm $1
   exit 0
}

if [ $# -lt 2 ]
then
   uso
fi

case "$1" in
   "-a" ) andata $2;;
   "-b" ) ritorno $2;;
   *    ) uso;;
esac

-------------------------------------------------------------------------

Jan
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: