ディレクトリ内の新しいファイルを検出するUnix 11i v2スクリプト

ディレクトリ内の新しいファイルを検出するUnix 11i v2スクリプト

誰かが私を正しい方向に指すことを願っています。ディレクトリで新しいファイル(今日の日付を含むファイル)を確認し、結果をテキストファイルとして印刷するスクリプトを作成したいと思います。cronまたは使用できますかbash

編集:元のスレッドを更新しました。 Linux Mint VMで次のことを試しましたが、うまく機能しました。唯一の問題は次のとおりです。

1) 新しいファイルを作成するとき(「sudo vi newtextfile.txt」を使用してから「:w」を使用)、通知メールを受け取ります。4番

2)上記の方法を使用して新しいファイルを生成して複数のIN_CREATEイベントをトリガしますか?

/xyz/jon >>>
total 12
786436 drwxr-xr-x 2 root root 4096 Jul 13 20:43 .
786434 drwxr-xr-x 4 root root 4096 Jul 13 19:45 ..
786441 -rwxr-xr-x 1 root root 48 Jul 13 20:32 mylogger.sh
786437 -rw-r--r-- 1 root root 0 Jul 13 20:22 mylogtoday.txt


"incron.table-jonincron" >>>
/xyz/client IN_CREATE /xyz/jon/mylogger.sh


/xyz/jon/mylogger.sh >>>
sudo mail -s "testing script" [email protected]

ベストアンサー1

こんにちは。もっと熟練した方が答えていただきたいです。 HP-UXにはかなり古いSystem Vツールボックスがあるため、最新のGNUツールはありません。

HP-UX posixシェル、/usr/bin/sh 非常に近いです。クッシュ 93。したがって、両方のファイルの寿命を比較して[[ file1 -nt file2 ]]値を返すことができます。本物file1新しいものよりfile2。 HP-UXでは使用しないでください/usr/bin/ksh。非常に古い標準korn-shell(1982年と推定)です。

これは定期的に実行できる単純なスクリプトです。名前に特殊文字を含むファイルやその他の可能なバグをサポートするには、さらに強化する必要がありますが、私はそれがうまくいきません。
モニターされるファイルは DIR にあり、新しいファイルのリストは /tmp/newfile です。このリストは、DIR内のすべてのファイルを最後の実行中に見つかった最新のファイルと比較したときに生成されるため、実行時に新しいファイルの作成をサポートします。スクリプトは複数の同時実行をサポートしていないため、ロックを実装するか、各実行に十分な時間を許可する必要があります。

#!/usr/bin/sh

previous=/tmp/previous
new=/tmp/newfiles
DIR=/tmp/aa

if [[ ! -s $new ]]
then
    mv "$new" "$previous"
fi

if [[ ! -f "$previous" ]]
then
    ls -rt "$DIR" > "$new"
    exit
fi

ref=$(tail -1 "$previous")

if ! cd "$DIR"
then
    echo cannot cd "$DIR"
    exit 1
fi

ls -rt | while read file
do
        if [[ "$file" -nt "$ref" ]]
        then
             echo "$file"
        fi
done > "$new"

あなたはそれを実行することができます予約されたこと、例えば:

5分ごとに1回(hp-ux crontabは* 5構文をサポートしていません)

0,5,10,15,20,25,30,35,40,45,55 * * * * /myscript.sh >>/var/adm/myscript.log 2>&1

毎時間

0 * * * * /myscript.sh >>/var/adm/myscript.log 2>&1

一日一回

0 0 * * * /myscript.sh >>/var/adm/myscript.log 2>&1

おすすめ記事