Script di shell sotto Linux. Parte II

martedì 9 ottobre 2007 alle 09:58 | Pubblicato su Linux | Lascia un commento

Venerdì scorso, nell’intento di migliorare e risistemare gli script di shell per Linux che solitamente uso per i backup dei database Oracle su tale piattaforma sono riuscito a combinarne una bella, ho letteralmente impallato un server.

Per fortuna si trattava di un server di test, in quel momento non usato da altri, però devo dire che ci sono rimasto male. Non entro nei dettagli di funzionamento dei miei script di shell per i backup dei nostri database Oracle. In sostanza noi solitamente facciamo un export dello schema tramite utility “exp” e un backup full con RMAN. Quindi ho due script, uno per l’export ed uno per il backup con RMAN, nel tentativo di “consolidare” la definizione delle variabili (ORACLE_HOME, ORACLE_SID, ecc.) ho creato un terzo script in cui esporto tali variabili. Poi l’intento mio era quello di caricare in ogni script le variabili facendo il “source” dello script in cui esporto le variabili. Quindi ho sostituito all’esportazione delle variabili le seguenti righe di codice:

DIRNAME=/usr/bin/dirname
. `$DIRNAME $0`/env.sh

Il problema è che nel fare copia e incolla in uno dei due script ho scordato di copiare la riga “DIRNAME=/usr/bin/dirname” e poi ho invocato tale script, risultato: un loop infinito di chiamate ricorsive. Li per li non me ne sono accorto, e quando me ne sono accorto non sono più stato in grado di fermarlo, il loop ha continuato fino a quando ho perso completamente il controllo della macchina ed ho dovuto agire fisicamente (spegnendo la macchina).

Una piccola nota interessante è che su tale macchina girano due macchine virtuali xen, una para-virtualized e l’altra fully virtualized, ebbene, la macchina paravirtuale funzionava regolarmente, l’altra no.

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: