GNU/Linux >> Linux Esercitazione >  >> Linux

Esegui script/programma quando il file cambia

una delle tue opzioni è il sottosistema inotify del kernel linux:

inotify è un sottosistema del kernel Linux che agisce per estendere i filesystem per notare le modifiche al filesystem e segnalare tali modifiche alle applicazioni

ma dal inotify è kernel-land, hai bisogno di qualcosa nello spazio utente per usarlo effettivamente:

  • inchron:

Il demone inotify cron (incrond) è un demone che monitora gli eventi del filesystem ed esegue i comandi definiti nelle tabelle di sistema e utente. Il suo utilizzo è generalmente simile a cron(8).

  • gioco:

Gamin è un sistema di monitoraggio per file e directory che implementa in modo indipendente un sottoinsieme di FAM, il File Alteration Monitor. Funzionando come un servizio, consente di rilevare le modifiche a un file oa una directory. gam_server funziona come demone per Gamin.

  • 'inoticoming':

inoticing - attiva azioni quando i file raggiungono una directory in entrata

c'era una risposta a una domanda simile su askubuntu:

https://askubuntu.com/a/43848/1223


Un altro modo veloce e sporco per farlo è usare inotifywait dal pacchetto inotify-tools (su fedora).

Mi piace di più questo metodo perché puoi fare tutto da una singola riga di comando bash. Lo uso spesso quando scrivo piccoli programmi per vedere i risultati di ciò che ho appena salvato.

while [[ 1 ]]; do inotifywait -e modify <filename>; make && ./helloworld; done

Linux
  1. Come eseguire uno script di shell quando un file o una directory cambia?

  2. Come eseguire uno script al termine della sessione xfce

  3. monitoraggio delle modifiche ai file c++ linux

  4. impossibile eseguire il file binario quando si tenta di eseguire uno script di shell su Linux

  5. Come eseguire un file senza estensione .sh nella shell

35 Esempi di script Bash

È possibile scoprire quale programma o script ha creato un determinato file?

Cosa succede esattamente quando eseguo un file nella shell?

Perché il valore dell'inode cambia quando modifichiamo nell'editor "vi"?

Come eseguire uno script nella shell quando viene premuto un tasto di scelta rapida?

Come eseguire un file .sh all'inizio della sessione?