GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menjalankan Perintah Saat Konten Direktori Diperbarui?

Ada direktori A yang isinya sering diubah oleh orang lain.

Saya telah membuat direktori pribadi B tempat saya menyimpan semua file yang pernah ada di A .

Saat ini, saya hanya sesekali menjalankan rsync untuk mendapatkan file yang akan dicadangkan dari A ke B . Namun, saya khawatir kemungkinan bahwa beberapa file akan ditambahkan di A , lalu dihapus dari A sebelum saya mendapat kesempatan untuk menyalinnya ke B .

Apa cara terbaik untuk mencegah hal ini terjadi? Idealnya, saya ingin skrip cadangan saya saat ini dijalankan setiap kali konten A berubah.

Jawaban yang Diterima:

Jika Anda telah menginstal inotify-tools, Anda dapat menggunakan inotifywait untuk memicu tindakan jika file atau direktori ditulis ke:

#!/bin/sh
dir1=/path/to/A/
while inotifywait -qqre modify "$dir1"; do
    /run/backup/to/B 
done

Dimana -qq sakelar benar-benar diam, -r bersifat rekursif (jika diperlukan) dan -e adalah event yang akan dipantau, dalam hal ini modify . Dari man inotifywait :

ubah
File yang ditonton atau file dalam direktori yang ditonton ditulis.


Linux
  1. Bagaimana Cara Mendapatkan Hitungan File Dalam Direktori Menggunakan Baris Perintah?

  2. Cara mendapatkan ukuran direktori di Linux

  3. Cara menjalankan perintah "find" hanya pada direktori saat ini dan bukan pada sub-direktori

  1. Cara mengecualikan direktori di find . memerintah

  2. Bagaimana saya bisa mengecualikan direktori dari perintah ls

  3. Bagaimana cara agar layar GNU tidak memulai di direktori home saya di OS X?

  1. [Linux] :Cara mengecualikan direktori saat menggunakan perintah shell "tar"

  2. linux:cara menjalankan perintah di direktori tertentu

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