web-dev-qa-db-ja.com

FTPまたはSSHを使用してコマンドラインからファイルをアップロードする方法

これまでに行ったことはなく、これを行うためのbashシェルスクリプトを作成しています。また、sshを介して接続し、いくつかのことを実行します(これはすでに方法を知っています)。だから多分ssh経由でファイルをアップロードする方法があるので、1つの接続ですべてを行うことができますか?

これどうやってするの?

#!/bin/sh

cd ./files-to-upload
#upload the files
30
Andrew

scpを使用して、リモートマシンにコピーできます。

scp <file to upload> <username>@<hostname>:<destination path>
56
tangens

あなたはおそらくSCPまたは同様のものを探しています。

#!/bin/bash

cd ./files-to-upload
scp * user@Host:/path/to/upload/files/to

もちろん、これは好みに合わせて調整する必要があります。user@ Hostを実際の情報に置き換えてください。アップロードするパスワードの入力を求められます。

6
John T

本当に(scpの代わりに)sshを使用する必要がある場合は、次のようにできます。

for filename in *; do
  cat $filename | ssh user@Host "cd /path/to/upload/files/to; cat - > $filename"
done

しかし、通常のscp(- tangens 提案など)が最適です。

4
Jimmy Hedman

scpはSSH経由で暗号化されるため、より良い答えです。

ただし、標準のftpで実行する場合は、ncftpputを参照してください。特にファイルをアップロードするように設計されています。

名前ncftpput-スクリプト用のインターネットファイル転送プログラム

書式ncftpput [オプション]リモートホストリモートディレクトリローカルファイル...

1
DuPie

curl は、いくつかのプロトコルを処理する優れたプログラムです。

0
Joe Internet

Ec2インスタンスの場合、.pemファイルも渡す必要があります。

$scp -i ~/Desktop/Amazon.pem ~/Desktop/file.Zip  [email protected]:~/data/
0
Elavarasan

scp (セキュアコピー)コマンドを使用すると、クライアントに接続し、ホストデバイスの指紋をまだ保存していない場合は、ホストパスワードを要求しますそれ以外の場合は、信頼できるホストに自動接続する必要があります。

0
David