GNU/Linux >> Belajar Linux >  >> Linux

Script Untuk Memantau Folder Untuk File Baru?

Bagaimana saya bisa segera mendeteksi ketika file baru ditambahkan ke folder dalam skrip bash? Saya ingin skrip memproses file segera setelah dibuat di folder. Apakah ada metode selain menjadwalkan tugas cron yang memeriksa file baru setiap menit atau lebih?

Jawaban yang Diterima:

Anda harus mempertimbangkan untuk menggunakan inotifywait , sebagai contoh:

inotifywait -m /path -e create -e moved_to |
    while read dir action file; do
        echo "The file '$file' appeared in directory '$dir' via '$action'"
        # do something with the file
    done

Di Ubuntu inotifywait disediakan oleh inotify-tools kemasan. Pada versi 3.13 (saat ini di Ubuntu 12.04) inotifywait akan menyertakan nama file tanpa opsi -f. Versi yang lebih lama mungkin perlu dipaksakan. Yang penting untuk diperhatikan adalah bahwa -e pilihan untuk inotifywait adalah cara terbaik untuk melakukan penyaringan acara. Juga, read . Anda perintah dapat menetapkan output posisi ke dalam beberapa variabel yang dapat Anda pilih untuk digunakan atau diabaikan. Tidak perlu menggunakan grep/sed/awk untuk memproses keluaran sebelumnya.


Linux
  1. Bagaimana Cara Menggunakan Inotifywait Untuk Menonton Direktori Untuk Pembuatan File Ekstensi Tertentu?

  2. File Pseudo Untuk Data Sementara?

  3. Cetak Semua File Dalam Folder?

  1. Berikan Izin Untuk File yang Baru Dibuat Di Dalam Folder Secara Otomatis?

  2. Buat folder khusus untuk setiap file zip di direktori dan ekstrak file zip

  3. Pintasan Shell/Bash untuk mengganti nama file dalam folder secara massal

  1. Terus mendeteksi file baru dengan alat inotify dalam banyak direktori secara rekursif

  2. Bagaimana cara mengatur izin linux untuk folder WWW?

  3. Menentukan lokasi baru untuk file konfigurasi syslinux saat menyiapkan PXELinux