Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Mantieni gli script in esecuzione

Durante lo sviluppo del nostro programma, è utile mantenere il programma in uno stato eseguibile. In questo modo e testando frequentemente, possiamo rilevare gli errori nelle prime fasi del processo di sviluppo. Ciò renderà i problemi di debug molto più semplici. Ad esempio, se eseguiamo il programma, apportiamo una piccola modifica, quindi eseguiamo nuovamente il programma e troviamo un problema, è molto probabile che la modifica più recente sia la fonte del problema. Aggiungendo le funzioni vuote, chiamate stub nel linguaggio dei programmatori, possiamo verificare il flusso logico del nostro programma in una fase iniziale. Quando si costruisce uno stub, è una buona idea includere qualcosa che fornisca un feedback al programmatore, che mostri che il flusso logico viene eseguito. Se guardiamo ora l'output del nostro script:



[io@linuxbox~]$ sys_info_page

Rapporto informazioni di sistema per twin2

[io@linuxbox~]$ sys_info_page

Rapporto informazioni di sistema per twin2


Rapporto sulle informazioni di sistema per linuxbox

Generato il 03/19/2009 04:02:10 EDT, da me


Rapporto sulle informazioni di sistema per linuxbox

Generato il 03/19/2009 04:02:10 EDT, da me



vediamo che ci sono alcune righe vuote nel nostro output dopo il timestamp, ma non possiamo essere sicuri della causa. Se cambiamo le funzioni per includere alcuni feedback:



report_uptime() {

echo "Funzione report_uptime eseguita."

ritorno

}


report_disk_space() {

echo "Funzione report_disk_space eseguita."

ritorno

}


report_home_space() {

echo "Funzione report_home_space eseguita."

ritorno

}

report_uptime() {

echo "Funzione report_uptime eseguita."

ritorno

}


report_disk_space() {

echo "Funzione report_disk_space eseguita."

ritorno

}


report_home_space() {

echo "Funzione report_home_space eseguita."

ritorno

}


ed esegui di nuovo lo script:



[io@linuxbox~]$ sys_info_page

Rapporto sulle informazioni di sistema per linuxbox

Rapporto sulle informazioni di sistema per linuxbox

Generato il 03/20/2009 alle 05:17:26 EDT, da me Funzione report_uptime eseguita.

Funzione report_disk_space eseguita. Funzione report_home_space eseguita.

[io@linuxbox~]$ sys_info_page

Rapporto sulle informazioni di sistema per linuxbox

Rapporto sulle informazioni di sistema per linuxbox

Generato il 03/20/2009 alle 05:17:26 EDT, da me Funzione report_uptime eseguita.

Funzione report_disk_space eseguita. Funzione report_home_space eseguita.

Mantieni gli script in esecuzione


ora vediamo che, in effetti, le nostre tre funzioni vengono eseguite.

Con il nostro framework di funzioni in atto e funzionante, è tempo di arricchire parte del codice della funzione. Prima il report_uptime funzione:


report_uptime() {

gatto <<- _EOF_

Tempo di attività del sistema

$(tempo di attività)

_EOF_

ritorno

}

report_uptime() {

gatto <<- _EOF_

Tempo di attività del sistema

$(tempo di attività)

_EOF_

ritorno

}


È abbastanza semplice. Usiamo un documento qui per produrre un'intestazione di sezione e l'output di uptime comando, circondato da tag per preservare la formattazione del comando. Il spazio_disco_report la funzione è simile:


report_disk_space() {

gatto <<- _EOF_

Utilizzo dello spazio su disco

$(df-h)

_EOF_

ritorno

}

report_disk_space() {

gatto <<- _EOF_

Utilizzo dello spazio su disco

$(df-h)

_EOF_

ritorno

}


Questa funzione utilizza l'estensione df -h comando per determinare la quantità di spazio su disco. Infine, costruiremo il report_home_space funzione:


report_home_space() {

gatto <<- _EOF_

Utilizzo dello spazio domestico

$(du -sh /home/*)

_EOF_

ritorno

}

report_home_space() {

gatto <<- _EOF_

Utilizzo dello spazio domestico

$(du -sh /home/*)

_EOF_

ritorno

}


Usiamo il du comando con il -SH opzioni per eseguire questa operazione. Questa, tuttavia, non è una soluzione completa al problema. Anche se funzionerà su alcuni sistemi (Ubuntu, per esempio), non funzionerà su altri. Il motivo è che molti sistemi impostano i permessi delle directory home per impedire che siano leggibili da tutti, il che è una misura di sicurezza ragionevole. Su questi sistemi, il report_home_space funzione, come scritto, will


Immagine

funziona solo se il nostro script viene eseguito con i privilegi di superutente. Una soluzione migliore sarebbe quella di fare in modo che lo script regoli il suo comportamento in base ai privilegi dell'utente. Lo riprenderemo nel prossimo capitolo.


Funzioni della shell nel tuo file .bashrc

Le funzioni della shell sostituiscono in modo eccellente gli alias e sono in realtà il metodo preferito per creare piccoli comandi per uso personale. Gli alias sono molto limitati nel tipo di comandi e funzionalità della shell che supportano, mentre le funzioni della shell consentono tutto ciò che può essere scriptato. Ad esempio, se ci piacesse il spazio_disco_report funzione shell che abbiamo sviluppato per il nostro script, potremmo creare una funzione simile denominata ds per noi .bashrc file:

ds() {

echo “Utilizzo dello spazio su disco per $HOSTNAME” df -h

}


Il miglior sistema operativo cloud computing su OnWorks: