GNU/Linux >> Belajar Linux >  >> Linux

periksa apakah file ada di host jarak jauh dengan ssh

satu baris, kutipan yang tepat

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

Selain jawaban di atas, ada cara singkat untuk melakukannya:

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

-q adalah mode senyap, ini akan menekan peringatan dan pesan.

Seperti yang disebutkan @Mat, satu keuntungan dari pengujian seperti ini adalah Anda dapat dengan mudah menukar -f untuk setiap operator pengujian yang Anda suka:-nt , -d , -s dll...

Operator Uji: http://tldp.org/LDP/abs/html/fto.html


Berikut adalah pendekatan sederhana:

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

Anda perlu menginstal sshpass di komputer Anda untuk menjalankannya.


Tidak bisa lebih sederhana dari ini :)

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

Seperti yang disarankan oleh dimo414, ini dapat diciutkan menjadi:

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

Linux
  1. Ssh – Salin File Kembali Ke Sistem Lokal Dengan Ssh?

  2. Satu Liner Untuk Memeriksa Ada File?

  3. Periksa izin file Linux dengan ls

  1. SSH - “IDENTIFIKASI HOST JAUH JAUH TELAH BERUBAH”

  2. Periksa apakah jenis/ekstensi file tertentu ada di direktori

  3. sed dengan string literal - bukan file input

  1. gema teks dengan baris baru di bash

  2. Hapus file dari host jarak jauh menggunakan SSH

  3. Shell =Periksa apakah variabel dimulai dengan #