Řešení 1:
Vždy můžete udělat toto:
ssh [email protected] ls -l /some/directory
To provede SSH k hostiteli, spustí ls, vypíše výstup zpět k vám a okamžitě se odpojí.
Řešení 2:
Seznam všech souborů v adresáři:
rsync host.name.com:directory/path/'*'
Něco jako najít adresář/cestu -ls
rsync -r host.name.com:directory/path
Řešení 3:
Pro všechny, kteří na tuto otázku přicházejí přes google, protože hledají způsob, jak vypsat vzdálené soubory, ale nemají přístup ke vzdálenému serveru přes ssh (běžný případ pro záložní servery), můžete použít 'sftp'.
Příklad:
sftp [email protected]
ls
cd somedir
exit
Spusťte interaktivní relaci ve specifickém vzdáleném adresáři:
sftp [[email protected]]host[:dir]
Řešení 4:
Ano. SSH a zadejte ls
:
ssh host ls /path
Můžete to snadno naskriptovat, aby bylo flexibilnější, nebo použít syntaxi host:path scp
použití.
Řešení 5:
Výše uvedené odpovědi nezvažují, kdy potřebujete přidat heslo. Chcete-li do jediného příkazu zahrnout heslo a uživatelské jméno, nainstalujte sshpass
.
Pro Mac:$ brew install hudochenkov/sshpass/sshpass
Pro linux:sudo apt-get install sshpass -y
Potom:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/
Výstup můžete také uložit:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/ > log.txt
V pythonu 3:
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')