GNU/Linux >> Linux Esercitazione >  >> Linux

controlla se il file esiste sull'host remoto con ssh

una riga, virgolette corrette

ssh remote_host test -f "/path/to/file" && echo found || echo not found

Oltre alle risposte sopra, c'è il modo abbreviato per farlo:

ssh -q $HOST [[ -f $FILE_PATH ]] && echo "File exists" || echo "File does not exist";

-q è la modalità silenziosa, sopprimerà avvisi e messaggi.

Come menzionato da @Mat, un vantaggio di test come questo è che puoi facilmente scambiare il -f per qualsiasi operatore di test che ti piace:-nt , -d , -s ecc...

Operatori di test: http://tldp.org/LDP/abs/html/fto.html


Ecco un approccio semplice:

#!/bin/bash
USE_IP='-o StrictHostKeyChecking=no [email protected]'

FILE_NAME=/home/user/file.txt

SSH_PASS='sshpass -p password-for-remote-machine'

if $SSH_PASS ssh $USE_IP stat $FILE_NAME \> /dev/null 2\>\&1
            then
                    echo "File exists"
            else
                    echo "File does not exist"

fi

Devi installare sshpass sulla tua macchina per farlo funzionare.


Più semplice di così non si può :)

ssh host "test -e /path/to/file"
if [ $? -eq 0 ]; then
    # your file exists
fi

Come suggerito da dimo414, questo può essere compresso in:

if ssh host "test -e /path/to/file"; then
    # your file exists
fi

Linux
  1. SSH a host remoti tramite un proxy o un bastion con ProxyJump

  2. Elementi essenziali di Rackspace Cloud:controlla l'impronta digitale dell'host SSH di un server con la console web

  3. Controlla se esiste un determinato tipo/estensione di file nella directory

  4. echo testo con nuova riga in bash

  5. Rimuovi i file dall'host remoto utilizzando SSH

Ansible:controlla se esiste un file

Come verificare se esiste un file o una directory in Bash

Come verificare se un file o una directory esiste in Bash

Comandi SSH in Linux con esempi di utilizzo

SSHFS:montaggio di un file system remoto su SSH

Come verificare se esiste un file o una directory in Bash Shell