GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überprüfen Sie mit ssh, ob die Datei auf dem Remote-Host vorhanden ist

eine Zeile, richtiges Zitieren

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

Zusätzlich zu den obigen Antworten gibt es eine Kurzform:

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

-q stiller Modus ist, werden Warnungen und Meldungen unterdrückt.

Wie @Mat erwähnt hat, besteht ein Vorteil solcher Tests darin, dass Sie -f einfach austauschen können für einen beliebigen Testoperator:-nt , -d , -s usw...

Testoperatoren: http://tldp.org/LDP/abs/html/fto.html


Hier ist ein einfacher Ansatz:

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

Sie müssen sshpass auf Ihrem Rechner installieren, damit es funktioniert.


Einfacher geht es nicht :)

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

Wie von dimo414 vorgeschlagen, kann dies reduziert werden auf:

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

Linux
  1. Überprüfen Sie die Linux-Dateiberechtigungen mit ls

  2. SSH - „IDENTIFIZIERUNG DES REMOTE-HOSTS HAT SICH GEÄNDERT“

  3. Echotext mit neuer Zeile in Bash

  4. Entfernen Sie Dateien mithilfe von SSH vom Remote-Host

  5. Rsync mit SSH-Aufforderung zur Eingabe des Remote-Passworts

Ansible:Prüfen, ob eine Datei existiert

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

SSH-Befehle in Linux mit Verwendungsbeispielen

SSHFS:Mounten eines Remote-Dateisystems über SSH

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in der Bash-Shell vorhanden ist