GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menjalankan skrip secara otomatis ketika konten direktori berubah di Linux?

Solusi 1:

Jika Anda cukup beruntung menggunakan distribusi berbasis debian, apt-get install dnotify . Distribusi lain mungkin memiliki sesuatu yang serupa - cari dnotify nama.

dnotify adalah program sederhana berdasarkan API dnotify kernel Linux 2.4.19+. dnotify dapat menjalankan perintah tertentu setiap kali konten direktori tertentu berubah. Ini dijalankan dari baris perintah dan membutuhkan dua argumen:satu atau lebih direktori untuk dipantau dan perintah untuk dijalankan setiap kali direktori berubah. Opsi mengontrol peristiwa apa yang akan dipicu:saat file dibaca di direktori, saat file dibuat, dihapus, dan seterusnya.

Jika Anda ingin menangani ini dalam program Anda sendiri, dnotify juga merupakan API yang ingin Anda gunakan.

Solusi 2:

Anda dapat menjalankan skrip dengan alat inotify, kira-kira seperti ini. Itu akan mengawasi direktori untuk perubahan pada file yang dimodifikasi, file baru, dan file yang dihapus, kemudian akan menjalankan skrip.

#!/bin/sh
while inotifywait -e modify -e create -e delete /home/me/code; do
    rsync [options] /home/me/code/ /media/nfs/code/ 
done

Solusi 3:

incron pada dasarnya adalah apa yang Anda inginkan, saya pikir. Ini menggunakan inotify sebagai mekanisme notifikasi (yang, seperti yang telah ditunjukkan orang lain, menggantikan dnotify), tetapi tidak memerlukan skrip yang terus berjalan, menggunakan inotifywait atau serupa (walaupun, jelas, daemon incron berjalan sepanjang waktu). 'Crontab' seluruh sistem dan 'crontab' pengguna didukung dengan cara yang mirip dengan cron standar, tetapi alih-alih menentukan waktu sebagai pemicu, peristiwa inotifikasi dan nama file/direktori digunakan.

incron dikemas untuk banyak distribusi, termasuk Ubuntu dan Debian, saya yakin.


Linux
  1. Cara Menemukan File Terlama Di Pohon Direktori Di Linux

  2. Bagaimana menjalankan perintah bash Linux dalam skrip PERL?

  3. Bagaimana Cara Menjalankan Perintah Saat Konten Direktori Diperbarui?

  1. Linux – Bagaimana Cara Menjalankan Script Pada Layar Lock/unlock?

  2. Linux – Bagaimana Cara Memeriksa Informasi Struktur Direktori File Unix/linux?

  3. Bagaimana cara menjalankan skrip Shell ketika file atau direktori berubah?

  1. Bagaimana cara menjalankan skrip python di terminal (ubuntu)?

  2. Bagaimana cara menjalankan skrip di latar belakang (linux openwrt)?

  3. linux:cara menjalankan perintah di direktori tertentu