質問: 1分ごとのsftpバッチアップロードのスクリプト 数日間不在のときに家の一部のビデオをウェブカメラで録画して、バーガラーが写真に撮られ、写真がサーバーにアップロードされていることを確認したいと思っています。mjpg_streamerを使用してフッテージをストリーミングするようにwebカメラをセットアップしました。それは機能し、ストリーミングは問題ありません。'filename.jpg'と呼ばれるときはいつでも、ストリームから静止キャプチャを取得することができます。wget http://127.0.0.1:8080/?action=snapshot -o filename.jpg アマゾンウェブサービスとsftpを使用したftpアクセスを備えたアマゾンftpサーバーがあります。私は現在firefoxのfireftpプラグインを使用して接続しているので、それは機能します。アイデアは、接続をライブでコンピューターを実行したままにすることです。ストリームからの写真の撮影を1分ごとにスクリプト化し、ライブftp接続を介して写真をサーバーにアップロードし、次のファイルがoを保存するように元のファイルをpcから削除したいと思います。または、各ファイルの末尾に番号を追加してから、ftpで転送します。例:filename1.jpeg、filename2.jpeg。私は何時間もグーグルで検索していて、ftpアップロードのスクリプトに関する投稿はたくさんありますが、アップロードの絶え間ない流れについては何も見つかりません...つまり、 「このフォルダを見て、1分ごとにコンテンツをアップロードし、1分後に新しいコンテンツをアップロードしてください」。私は次のようなbashスクリプトが必要だと思います: 新しく作成された各ファイルが異なる名前になるようにカウンターを保持します そのファイル名を "wget http://127.0.0.1:8080/?action=snapshot -o filename[〜#〜] xx [〜#〜 ]。jpg "30秒または1分ごと filename[〜#〜] xx [〜#〜]。jpgをftpサーバーにアップロードします しかし、私はそれを行う方法がわかりません!誰かが私を指示できますか?または、filezillaなどを使用する方法を知っている人はいますか(afaikフォルダーを見ることができません: https://forum.filezilla-project.org/viewtopic.php?t=41609 ?
回答: ec2ではftpサーバーの代わりにawss3を使用し、awscliツールを使用してファイルをアップロードします。これは、システム管理を必要としないはるかに軽量なソリューションです。 s3は、ec2のボリュームよりもはるかに耐久性のあるストレージを提供します。ツールのダウンロード: https://aws.amazon.com/cli/ 関連するドキュメント: http://docs.aws.amazon.com/cli/latest/reference/s3/ iamを使用してs3バケットにのみアップロードできるユーザーを作成できます(したがって、犯罪者はファイルを消去できません!)このタスクを実行するには、wgetを呼び出して日時を含むファイル名に出力するbash(またはperl、node.js、ruby、powershell?、...)スクリプトを作成します。 forループでaws s3 cp ...を呼び出して、フォルダー内のすべてのファイルをアップロードします。ループでは、各ファイルのaws s3 cp呼び出しが成功するたびに、ファイルをアーカイブフォルダーに移動して、ローカルにも保存します。ローカルアーカイブが必要ない場合は、aws s3 mvを使用して、すでにアップロードされているものを自動的に魔法のように削除します。