GNU/Linux >> Znalost Linux >  >> Linux

zkontrolujte, zda soubor existuje na vzdáleném hostiteli pomocí ssh

jeden řádek, správné citace

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

Kromě výše uvedených odpovědí existuje zkrácený způsob, jak to udělat:

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

-q je tichý režim, potlačí varování a zprávy.

Jak zmínil @Mat, jednou výhodou takového testování je, že můžete snadno vyměnit -f pro libovolný testovací operátor, který se vám líbí:-nt , -d , -s atd...

Testovací operátoři: http://tldp.org/LDP/abs/html/fto.html


Zde je jednoduchý postup:

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

Aby to fungovalo, musíte na svůj počítač nainstalovat sshpass.


Jednodušší už to být nemůže :)

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

Jak navrhuje dimo414, lze to sbalit na:

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

Linux
  1. SSH ke vzdáleným hostitelům přes proxy nebo bastion s ProxyJump

  2. Existuje jedna vložka ke kontrole souboru?

  3. Základy Rackspace Cloud:Zkontrolujte otisk hostitele SSH serveru pomocí webové konzole

  1. Ssh – Zkopírujte soubor zpět do místního systému pomocí Ssh?

  2. Odstraňte soubory ze vzdáleného hostitele pomocí SSH

  3. Rsync s výzvou SSH pro vzdálené heslo

  1. Zkontrolujte oprávnění souborů Linux pomocí ls

  2. SSH – „IDENTIFIKACE VZDÁLENÉHO HOSTITELE SE ZMĚNILA“

  3. Zkontrolujte, zda v adresáři existuje určitý typ souboru/přípona