Lösung 1:
Sie könnten dies immer tun:
ssh [email protected] ls -l /some/directory
Dadurch wird eine SSH-Verbindung zum Host hergestellt, ls ausgeführt, die Ausgabe an Sie zurückgesendet und die Verbindung sofort getrennt.
Lösung 2:
Um alle Dateien in einem Verzeichnis aufzulisten:
rsync host.name.com:directory/path/'*'
Für so etwas wie find directory/path -ls
rsync -r host.name.com:directory/path
Lösung 3:
Für alle, die über Google auf diese Frage kommen, weil sie nach einer Möglichkeit suchen, Remote-Dateien aufzulisten, aber nicht über ssh auf den Remote-Server zugreifen können (üblicher Fall für Backup-Server), können Sie 'sftp' verwenden.
Beispiel:
sftp [email protected]
ls
cd somedir
exit
Starten Sie eine interaktive Sitzung in einem bestimmten Remote-Verzeichnis:
sftp [[email protected]]host[:dir]
Lösung 4:
Ja. SSH und führen Sie einen ls
aus :
ssh host ls /path
Sie könnten dies einfach skripten, um flexibler zu sein, oder die host:path-Syntax scp
verwenden verwendet.
Lösung 5:
Die obigen Antworten berücksichtigen nicht, wann Sie ein Passwort hinzufügen müssen. Um Passwort und Benutzername in einem einzigen Befehl einzuschließen, installieren Sie sshpass
.
Für Mac:$ brew install hudochenkov/sshpass/sshpass
Für Linux:sudo apt-get install sshpass -y
Dann:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/
Sie können die Ausgabe auch speichern:
$ 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')