cron実行時のフォルダロック

cron実行時のフォルダロック

Ubuntuデスクトップシステムで最初のcronを設定しています。 cronが実行される前にフォルダをロックする方法と設定方法があるかどうかを知りたいです。私はフォローしていますこれ記事。共有ネットワーク上にあるので、ファイルをcronフォルダから移動したときにファイルが破損していないことを確認したいと思います。

ベストアンサー1

ファイルにアクセスする前のロックと遅延機能を含む簡単なスクリプト:

#!/bin/sh
if mkdir /tmp/myscript-running; then 
    cd /mnt/share/whereever
    find . -type f -mmin +1 -print0 | xargs -i -n 1 -0 myscript.sh "{}"
    rmdir /tmp/myscript-running
else
    : # previous instance still running, do nothing
fi

findこのオプションにはGNUまたは同等のものが必要です-mmin。必要に応じてcronを介してこのコマンドを実行できます。myscript.sh処理スクリプトに置き換えてください。

主な機能は次のとおりです。

  1. mkdirインスタンスが重複するのを防ぐためにロックされたディレクトリを作成するために使用されます。
  2. findwithを使用する-mmin +1と、1分以上前に変更されたファイルに出力を制限できます。これは、新しいファイルが完全にコピーされたことを確認するためのものです。
  3. xargs一度に1つのファイルを処理するために使用され、"{}"ファイル名を次のように変更します。
  4. 迷惑なファイル名で問題が発生しないように終了\0したファイル名を使用してください。find | xargs

find必要に応じてパラメータを変更できる必要があります。上記のロジックを使用して、完成したファイルをディレクトリuploading/からディレクトリに移動することもできます。これにより、ready/作業を簡素化できます。

Ubuntuにも有用である可能性がありますlockfileshlockより多くのアイデアについては、後者のマニュアルページをご覧ください。

おすすめ記事