Řešení 1:
Vždy můžete udělat toto:
ssh example@unixlinux.online 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 example@unixlinux.online
ls
cd somedir
exit
Spusťte interaktivní relaci ve specifickém vzdáleném adresáři:
sftp [example@unixlinux.online]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 example@unixlinux.online ls /path/to/dir/
Výstup můžete také uložit:
$ sshpass -p your_password ssh example@unixlinux.online ls /path/to/dir/ > log.txt
V pythonu 3:
import subprocess
cluster_login_email = 'example@unixlinux.online'
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')