11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ssh<br />

scarica_file<br />

RIT=$?<br />

# -------<br />

Capitolo 12. Filtri, programmi e coman<strong>di</strong> esterni<br />

if [ "$RIT" -eq 0 ]; then<br />

/usr/bin/logger -t ${0##*/} "Fedora aggiornata con successo."<br />

else<br />

/usr/bin/logger -t ${0##*/} "Aggiornamento <strong>di</strong> Fedora fallito con co<strong>di</strong>ce: $RIT"<br />

fi<br />

exit $RIT<br />

L’uso <strong>di</strong> rcp, rsync ed utility simili, che hanno problemi <strong>di</strong> sicurezza, in uno script <strong>di</strong> shell potrebbe<br />

non essere consigliabile. Si consideri, invece, l’utilizzo <strong>di</strong> ssh, scp o <strong>di</strong> uno script expect.<br />

Secure shell, si connette ad un host remoto e vi esegue dei coman<strong>di</strong>. Questo sostituto <strong>di</strong><br />

sicurezza <strong>di</strong> telnet, rlogin, rcp e rsh utilizza l’autenticazione e la cifratura. Per i dettagli, si veda la<br />

sua pagina <strong>di</strong> manuale.<br />

Esempio 12-40. Uso <strong>di</strong> ssh<br />

#!/bin/bash<br />

# remote.bash: Uso <strong>di</strong> ssh.<br />

# Esempio <strong>di</strong> Michael Zick.<br />

# Usato con il consenso dell’autore.<br />

# Presupposti:<br />

# -----------<br />

# il df-2 non dev’esere stato impegnato ( ’2>/dev/null’ ).<br />

# ssh/sshd presumono che lo stderr (’2’) verrà visualizzato all’utente.<br />

#<br />

# sshd deve essere in esecuzione sulla macchina.<br />

# Probabilmente questa è la situazione per qualsiasi <strong>di</strong>stribuzione ’standard’,<br />

#+ e senza aver fatto qualche strana impostazione <strong>di</strong> ssh-keygen.<br />

# Provate ssh da riga <strong>di</strong> comando sulla vostra macchina:<br />

#<br />

# $ ssh $HOSTNAME<br />

# Se non sono state fatte impostazioni ulteriori, vi verrà chiesta la password.<br />

# inserite la password<br />

# quin<strong>di</strong> $ exit<br />

#<br />

# Ha funzionato? In questo caso siete pronti per un altro po’ <strong>di</strong> <strong>di</strong>vertimento.<br />

# Provate ssh come utente ’root’:<br />

#<br />

# $ ssh -l root $HOSTNAME<br />

310

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!