GNU/Linux >> Tutoriels Linux >  >> Linux

vérifier si le fichier existe sur l'hôte distant avec ssh

une ligne, citation correcte

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

En plus des réponses ci-dessus, il existe une manière abrégée de le faire :

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

-q est en mode silencieux, il supprimera les avertissements et les messages.

Comme @Mat l'a mentionné, l'un des avantages de tester comme celui-ci est que vous pouvez facilement échanger le -f pour n'importe quel opérateur de test que vous aimez :-nt , -d , -s etc...

Opérateurs de test : http://tldp.org/LDP/abs/html/fto.html


Voici une approche 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

Vous devez installer sshpass sur votre machine pour le faire fonctionner.


Rien de plus simple que ça :)

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

Comme suggéré par dimo414, cela peut être réduit à :

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

Linux
  1. L'essentiel de Rackspace Cloud :Vérifiez l'empreinte digitale de l'hôte SSH d'un serveur avec la console Web

  2. Vérifier si un certain type de fichier/extension existe dans le répertoire

  3. Vérifier si une variable existe dans une liste dans Bash

  4. sed avec une chaîne littérale - pas un fichier d'entrée

  5. Rsync avec SSH demandant un mot de passe distant

Ansible :vérifier si un fichier existe

Comment vérifier si un fichier ou un répertoire existe dans Bash

Comment vérifier si un fichier ou un répertoire existe dans Bash

Commandes SSH sous Linux avec exemples d'utilisation

SSHFS :montage d'un système de fichiers distant via SSH

Comment vérifier si un fichier ou un répertoire existe dans Bash Shell