スクリプトを使用してFTPサーバーへのファイルの送信を自動化するにはどうすればよいですか?


9

特定のログファイルを/var/log/取得し、簡単に取得できる場所(ほとんどの場合、アクセスできるWebサーバーまたはFTPサーバー)に配置するスクリプトを作成する必要があります。メールで送りたいとは思わない。Webdavはオプションかもしれません。ユーザーとのやり取りなしで機能する必要があり、かなり速くて痛みもありません。助言がありますか?(基本的にパスワードは必要ありません)

回答:


12
  • のログファイル/var/logは通常、誰でも読み取り可能で、アクセスにパスワードは必要ありません。
  • すでにFTPサーバーがある場合(Webサーバーへのバックエンドにもなる可能性があります)、IMOの最も簡単なオプションは、wputユーティリティを使用することです。
    • sudo apt-get install wput必要に応じてインストールしてください。
    • 構文は次のとおりです。
      wput [オプション] [ファイル] ... [URL] ...
    • URLは次の形式です。
      ftp:// [ユーザー名[:パスワード] @]ホスト名[:ポート] [/ [パス/] [ファイル]]
  • 例:

    wput / var / log / syslog ftp:// jack:salty@ftp.website.com/www/mylogs/ 
    
  • -u宛先ファイルがすでに存在する場合、オプションを使用してアップロードを強制します。

  • その他のオプションについては、wput --helpまたはman wputを参照してください。

注:上記の例のようにパスワードをプレーンテキストで入力することは、一般的に非常に安全ではありません。ログのダウンロード/表示用に作成した特別なディレクトリへのアップロードのみを許可する制限付きFTPアカウントをサーバー上に作成することを強くお勧めします。


こんにちは、ありがとうございました。これがまさに私が必要としていることです。古いスレッドであることはわかっていますが、ディレクトリに問題があります。リモートサーバーでwputを使用すると、常にファイルの宛先にディレクトリツリーが作成されますが、リモートでディレクトリツリー全体を作成せずにファイルをコピーすることはできますか?
AleksandarĐorđević2017

0

使用できるもう1つの便利で安全なコマンドscpは、sshを使用してファイルを前後にコピーするコマンドです。

これを使用するには、seahorseを使用してSSH鍵ペアを作成し、鍵の公開部分を〜/ .ssh /にコピーします。このために使用するパスワードはパスワードで保護しないでください。使用するためにログインする必要はありません。このスクリプトでは、このために使用するパスワードのペアのみを使用する必要があります。scp -i identityオプションを使用して選択します。

秘密鍵はプレーンテキストのパスワードの代わりになります。

必要に応じて、スクリプトの呼び出しをcrontabに配置できると思います。

izxの便利なアプローチでは、スクリプトを配置する場所を慎重に保護して、リモートコンピューターのパスワードの「塩分」を盗み見から保護する必要があります。このアプローチでは、パスワードで保護されていないため、キーペアの秘密部分を保護するために同じ注意を払う必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.