解決策 1:
いつでもこれを行うことができます:
ssh [email protected] ls -l /some/directory
これにより、ホストに SSH 接続され、ls が実行され、出力がダンプされてすぐに切断されます。
解決策 2:
ディレクトリ内のすべてのファイルを一覧表示するには:
rsync host.name.com:directory/path/'*'
find directory/path -ls などの場合
rsync -r host.name.com:directory/path
解決策 3:
リモートファイルをリストする方法を探しているが、ssh (バックアップサーバーの一般的なケース) 経由でリモートサーバーにアクセスできないため、Google 経由でこの質問に来るすべての人は、「sftp」を使用できます。
例:
sftp [email protected]
ls
cd somedir
exit
特定のリモート ディレクトリでインタラクティブ セッションを開始します:
sftp [[email protected]]host[:dir]
解決策 4:
はい。 SSH を実行して ls
を実行します :
ssh host ls /path
これをより柔軟にスクリプト化するか、host:path 構文 scp
を使用することは簡単です。
解決策 5:
上記の回答は、パスワードを追加する必要がある場合を考慮していません。パスワードとユーザー名を 1 つのコマンドに含めるには、sshpass
をインストールします。 .
Mac の場合:$ brew install hudochenkov/sshpass/sshpass
Linux の場合:sudo apt-get install sshpass -y
次に:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/
出力を保存することもできます:
$ sshpass -p your_password ssh [email protected] ls /path/to/dir/ > log.txt
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')