何千ものファイルからインポートされたJPGスライディングウィンドウ

何千ものファイルからインポートされたJPGスライディングウィンドウ

私のコンピュータには、毎日何千ものjpgファイルを撮影するカメラが装備されています。などのクラウドストレージサイトを介してデータを保存する方法を探していますbox.com

最後の5分のファイルをマウントされたリモートドライブ(davfs2)に1分ごとにコピーしてから、10分ごとに1時間以上のファイルを削除するのが良い解決策だと思いましたが、これは大きな問題を引き起こします。マイコンピュータがSSH経由で接続できなくなったため、コンピュータをシャットダウンする必要があります。

これでファイルを削除しようとすると、マウントされたドライブにコピーされます。ドライブをマウント解除する必要がありましたが、davfs2キャッシュを消去できないようです。

私のアプローチに根本的に間違っているものはありますか?

私はこれを私のcrontabに入れました。

*/1 * * * * sudo find /mnt/ -type f -cmin -5 -exec cp -pn '{}' /home/pi/box/street_pictures/ \;
*/10 * * * *  sudo find /home/pi/box/street_pictures -cmin +60 -type f -exec rm '{}' \;

/nmt数千枚の写真が入っているフォルダです。 /home/pi/box/street_pictures私がインストールしたドライブです。

ベストアンサー1

なぜsudo?とにかくrootとして実行している場合は、root crontabに入れますか?

何千ものファイルを含む(リモート)ディレクトリを検索するのに時間がかかることがあります。 1分以上かかると、複数のクローンジョブが同時に実行され、リソースを配置して競合する可能性があり、多くのリモートファイルシステムが同時アクセスを正しく処理できない可能性があります。

同時クローン操作を防ぐには、一種のロックメカニズムを使用するか、無限に実行するのでサービススクリプトに入れることができます。

while [ 1 ]
do
    sleep 60 &
    cp jpg stuff
    wait # for sleep in case 60 seconds have not yet passed
done

コピーしたファイルの名前を無視されたサブディレクトリに変更できますか?

-exec {} \;それほど効率的ではありません(cp各ファイルに対して新しいプロセスを開始します)。-exec cp --target-directory=/home/pi/... {} +プログラムがこれらのオプションをサポートしている場合は、代わりに試してください。

ファイル名が何らかの方法で予測可能な場合(日付または増分数字を含む)、不要または時間のかかるファイル属性を避けるために、タイムスタンプではなくファイル名を使用する方が効率的ですstat()

おすすめ記事