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


30

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

これどうやってするの?

#!/bin/sh

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

この質問に答えていませんが、多分これは一部の人を助けることができること:curl.ioは(私は考えて、数時間有効)ホスティング公共HTTPにはbashてファイルをアップロードすることを許可
ヴィンセントFenet

回答:


56

scpリモートマシンへのコピーに使用できます。

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

これでもパスワードを渡すことができますか?また、これはsshセッションを初期化しますか?他のコマンドも実行できますか?
アンドリュー

2
いいえ、パスワードを渡すことはできません。ただし、sshキー認証をセットアップできます。つまり、パスワードではなく、ファイルに保存され、接続時に自動的に送信されるキーを介して認証します。また、これで他のコマンドを実行することはできません。
フェリックス

つまり、sshで接続してからscpを実行できますか?または、それらは別々のコマンドですか?
アンドリュー


1
@Felixは、sshキー認証が設定されていない場合、パスワードの入力を求められることを指摘しているはずです。つまり、このセットアップを使用することは、このコマンドを使用するための重要な要件ではありません
-aexl

6

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

#!/bin/bash

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

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


4

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

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

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


イムは、あなたはイムfilezillaのか、WinSCPのを使用して、リモートにローカルからファイルを転送またはコピーする方法を教えてください可能性があり、FTP接続を使用して...私は、zipファイルを抽出する必要があるかからコピーしたローカルへのリモート
Sushivam

1

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

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

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

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



0

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


0

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

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip  ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.