GNU/Linux >> Tutoriales Linux >  >> Linux

compruebe si el archivo existe en el host remoto con ssh

una línea, cita correcta

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

Además de las respuestas anteriores, existe la forma abreviada de hacerlo:

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

-q está en modo silencioso, suprimirá las advertencias y los mensajes.

Como mencionó @Mat, una ventaja de realizar pruebas como esta es que puede cambiar fácilmente el -f para cualquier operador de prueba que desee:-nt , -d , -s etc...

Operadores de prueba: http://tldp.org/LDP/abs/html/fto.html


Aquí hay un enfoque simple:

#!/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

Necesitas instalar sshpass en tu máquina para que funcione.


No puede ser mucho más simple que esto :)

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

Según lo sugerido por dimo414, esto se puede colapsar para:

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

Linux
  1. Ssh:¿Copiar un archivo de nuevo al sistema local con Ssh?

  2. Verifique los permisos de archivos de Linux con ls

  3. SSH - "LA IDENTIFICACIÓN DEL HOST REMOTO HA CAMBIADO"

  4. Compruebe si existe un determinado tipo de archivo/extensión en el directorio

  5. Comprobar si existe una variable en una lista en Bash

Ansible:comprobar si existe un archivo

Cómo verificar si existe un archivo o directorio en Bash

Cómo verificar si existe un archivo o directorio en Bash

Comandos SSH en Linux con ejemplos de uso

SSHFS:Montaje de un sistema de archivos remoto a través de SSH

Cómo verificar si existe un archivo o directorio en Bash Shell