これまでに行ったことはなく、これを行うためのbashシェルスクリプトを作成しています。また、sshを介して接続し、いくつかのことを実行します(これはすでに方法を知っています)。だから多分ssh経由でファイルをアップロードする方法があるので、1つの接続ですべてを行うことができますか?
これどうやってするの?
#!/bin/sh
cd ./files-to-upload
#upload the files
scp
を使用して、リモートマシンにコピーできます。
scp <file to upload> <username>@<hostname>:<destination path>
あなたはおそらくSCPまたは同様のものを探しています。
#!/bin/bash
cd ./files-to-upload
scp * user@Host:/path/to/upload/files/to
もちろん、これは好みに合わせて調整する必要があります。user@ Hostを実際の情報に置き換えてください。アップロードするパスワードの入力を求められます。
本当に(scpの代わりに)sshを使用する必要がある場合は、次のようにできます。
for filename in *; do
cat $filename | ssh user@Host "cd /path/to/upload/files/to; cat - > $filename"
done
しかし、通常のscp(- tangens 提案など)が最適です。
scpはSSH経由で暗号化されるため、より良い答えです。
ただし、標準のftpで実行する場合は、ncftpputを参照してください。特にファイルをアップロードするように設計されています。
名前ncftpput-スクリプト用のインターネットファイル転送プログラム
書式ncftpput [オプション]リモートホストリモートディレクトリローカルファイル...
curl は、いくつかのプロトコルを処理する優れたプログラムです。
Ec2インスタンスの場合、.pem
ファイルも渡す必要があります。
$scp -i ~/Desktop/Amazon.pem ~/Desktop/file.Zip [email protected]:~/data/
scp
(セキュアコピー)コマンドを使用すると、クライアントに接続し、ホストデバイスの指紋をまだ保存していない場合は、ホストパスワードを要求しますそれ以外の場合は、信頼できるホストに自動接続する必要があります。