Domanda

Sto scrivendo uno script per trasferire alcuni file su SFTP. Volevo fare il trasferimento come un trasferimento locale, montando la directory con sshfs perché rende la creazione della struttura di directory richiesta molto più facile. Il problema che sto avendo è che sono sicuri di come affrontare la situazione di non avere una connessione di rete. Fondamentalmente ho bisogno di un modo per dire se le sshfs Comando non riuscito. Delle idee come causa lo script per cauzione se la directory remota non può essere montato?

È stato utile?

Soluzione

Basta verificare se sshfs restituisce 0 (successo):

sshfs user@host:dir mountpoint || exit 1

I lavori sopra perché in bash logico-o || esegue valutazione di corto circuito . Una soluzione più bello, che consente di stampare un messaggio di errore è il seguente:

if !( sshfs user@host:dir mountpoint ); then
  echo "Mounting failed!"
  exit 1
fi

Modifica

  

Vorrei sottolineare che questo è il modo di verificare il successo di praticamente qualsiasi applicazione ben educati sulla maggior parte delle piattaforme. - Sparr 1 min fa

In effetti. Per elaborare un po 'di più: la maggior parte delle applicazioni restituiscono 0 in caso di successo, e un altro valore in caso di fallimento. Il guscio sa, e quindi interpreta un valore restituito di 0 come vero e qualsiasi altro valore come false. Da qui l'OR logico e il test negativo (utilizzando il punto esclamativo).

Altri suggerimenti

Stavo cercando di verificare se una directory non è stato un punto di montaggio per un sshfs montaggio. Utilizzando l'esempio dall'alto non riuscita:

if !( mountpoint -q /my/dir ); then
    echo "/my/dir is not a mountpoint"
else
    echo "/my/dir is a mountpoint"
fi

L'errore: -bash: !( mountpoint -q /my/dir ): No such file or directory

Ho modificato il mio codice con il seguente e ha avuto successo:

if (! mountpoint -q /my/dir ); then
    echo "/my/dir is not a mountpoint"
else
    echo "/my/dir is a mountpoint"
fi
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top