Soluzione 1:
Puoi sempre farlo:
ssh [email protected] ls -l /some/directory
Ciò eseguirà SSH sull'host, eseguirà ls, scaricherà l'output su di te e si disconnetterà immediatamente.
Soluzione 2:
Per elencare tutti i file in una directory:
rsync host.name.com:directory/path/'*'
Per qualcosa come find directory/path -ls
rsync -r host.name.com:directory/path
Soluzione 3:
Per tutti coloro che vengono a questa domanda tramite Google perché cercano un modo per elencare i file remoti ma non possono accedere al server remoto tramite ssh (caso comune per i server di backup) è possibile utilizzare 'sftp'.
Esempio:
sftp [email protected]
ls
cd somedir
exit
Avvia una sessione interattiva in una directory remota specifica:
sftp [[email protected]]host[:dir]
Soluzione 4:
Sì. SSH ed esegui un ls
:
ssh host ls /path
Potresti facilmente scrivere questo script per essere più flessibile, o usare la sintassi host:path scp
utilizza.
Soluzione 5:
Le risposte di cui sopra non contemplano quando è necessario aggiungere una password. Per includere password e nome utente in un singolo comando, installa sshpass
.
Per Mac:$ brew install hudochenkov/sshpass/sshpass
Per Linux:sudo apt-get install sshpass -y
Quindi:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/
Puoi anche salvare l'output:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/ > log.txt
In python3:
import subprocess
cluster_login_email = '[email protected]'
cluster_login_password = 'your_password'
path_to_files = '/path/to/dir/'
response = subprocess.run([
'sshpass', '-p', cluster_login_password, 'ssh', cluster_login_email, 'ls',
path_to_files], capture_output=True)
response = response.stdout.decode("utf-8").split('\n')