問題タブ [inotifywait]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
raspberry-pi - /sys/class/gpio/gpioXX/ (ラズベリーパイ) で inotifywait が検出されない
GPIOを使用して2つのラズベリーパイを接続しました:最初のものはマスターで、GPIO2(およびGND ...)を使用します 2番目のものはスレーブで、GPIO0とGPIO1を使用します
GPIO1 と GPIO0 を方向 " IN " に配置し、GPI02 を方向 " out " に配置します: echo in > /sys/class/gpio/gpioXX/direction
マスター (GPIO2、方向 = OUT ) で、ピン GPIO2 を 1 にすると、スレーブの 2 つのピンも 1 になります。だから、ここでは問題ありません
1 つのフォルダー (たとえば、 /sys/class/gpio/gpio18/ (GPIO1 の場合は 18)) で inotifywait を使用して、シェル スクリプトを追加します。
SLAVE を使用していて、/sys/class/gpio/gpio18/ の値を echo 1 > .../value で変更しようとすると、inotifywait が変更をキャッチしましたが、値は変更されませんでした ( - bash: echo: 書き込みエラー: 操作は許可されていません。方向が "IN" になっているため正常です)。
MASTER で gpio27 の値 (GPI02 に対応) を変更すると、両方の値ファイル (GPIO0、GPIO1、および GPIO2) が変更されますが、inotifywait は gpio/gpio18/value の変更をキャッチしませんでした (ファイルの内容が 0 から 1 またはその逆に変更されます)
shell - 通知されたファイルへの安全なアクセス
シェルスクリプトで特定のファイルが現れるのを待ちたい
コードを処理している間は、ファイルが有効であると想定していました。悲しいことに、ファイルはsha1sum
. ファイルを長持ちさせるために必要な明らかな何かを見逃していませんか?
shell - inotifywait を終了する方法
特定の条件が発生するまで、特定のディレクトリを監視したい。
break
これで、またはのどちらを使用してもexit 0
、while ループは続行されます。では、ループを終了して出力を変数に渡す最良の方法は何ですか?
編集:
で置き換えるbreak
とkill -2 $$
、続行がトリガーされるだけのようです。さらに悪いことに、ブレークが正常に機能する場合もありますが、めったにありません。
linux - スクリプトで inotify を使用してディレクトリを監視する
特定のディレクトリ「/root/secondfolder/」を監視するbashスクリプトを作成しました。スクリプトは次のとおりです。
「/root/secondfolder/」に「fourth.txt」というファイルを作成し、それに書き込み、保存して閉じると、次のように出力されますが、「close_write」はエコーしません。
誰かが私を正しい方向に向けることができますか?
linux - bash read: タイムアウトによる読み取り結果のグループ化
短い話: 私の Linux デスクトップでは、ノード/dev
が作成または削除されるたびに通知が必要です (デバイスを接続したときにどのノードが作成されるかを知ることは非常に便利です)。そのための単純なスクリプトを 2 つ書きました。
最初のものは、次の方法でこれらの変更をログ ファイルに書き込みますinotifywait
。
結果のログ ファイルは次のようになります。
そして、そのログ ファイルを (bashread
コマンドで) 監視し、通知を表示する 2 番目のスクリプト:
機能しますが、予想どおり、作成/削除されたノードごとに専用の通知バルーンがあります。通常、単一の USB デバイスを接続すると複数のノードが存在しますが、非常に多くのノードが存在する場合もあります。そのため、新しいエントリが検出されたら、しばらく (たとえば 200 ~ 300 ミリ秒) 待機してエントリを追加し、最後にエントリを受信してからタイムアウトした後にのみ、収集されたエントリをnotify-send
.
私は経験豊富な bash プログラマー (および Linux ユーザー) ではないので、誰かがこれを正しく実装する方法について手がかりを教えてくれたらうれしいです。
amazon-web-services - マウントされた S3 バケットで inotifywait を使用できますか?
AWS でワークフローをセットアップしようとしています。
S3 バケットには、次のフォルダーが含まれています。
別のタスクは、処理のために「todo」フォルダーにファイルをダンプします。
Ubuntu EC2 インスタンスには、s3fs-fuse を介してマウントされたバケットがありinotifywait
、新しいファイルの「todo」フォルダーを監視するために使用されています。
touch /mybucket/todo
EC2 インスタンス内から実行すると、inotifywait
ジョブがトリガーされます。ただし、ファイルが別のソースから S3 フォルダーにアップロードされた場合、ジョブはトリガーされません。
これは賢明な設計のように見えますか?もしそうなら、私がどこで間違ったのか分かりますか?または、単に使用する必要がありますcron
か?
bash - inotifywait 複数のファイルをまとめて追加する
このシェルスクリプトは、フォルダーに入れられたすべてのものを送信に追加する必要があります。1 つのフォルダーでは正常に動作しますが、同時に複数のフォルダーを追加すると、2 番目のフォルダーは無視されます。
bash - 別のスクリプトをトリガーするための Ubuntu BASH inotifywait
特定のタグ (*SDS.csv) を持つファイルのディレクトリを監視するために、bash スクリプト内で inotifywait を使用しようとしています。
また、一度だけ実行したい(ファイルがディレクトリ data に書き込まれるときに一度)。
例:
linux - Bash Monitoring ディレクトリと新しい場所へのファイルの移動
ディレクトリに書き込まれた新しいcsvファイルのディレクトリを監視しようとしています。
作成時の新しい csv ファイルには、データが追加されます。ファイルが書き込まれ、閉じられたら。ファイルを新しいディレクトリに移動する必要があります。
次のスクリプトを作成しましたが、実行するとファイルではなくディレクトリ全体が移動します。助けてください