GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Cara Membuat Cron Job Yang Secara Otomatis Menghapus File Yang Lebih Lama Dari 30 Hari?

Saya menggunakan desktop Ubuntu 14. Saya menggunakan mesin ini untuk membuat cadangan mesin lain dan sebagai server FTP untuk kamera keamanan.

Saya perlu membuat pekerjaan cron yang secara otomatis menghapus file yang lebih lama dari 30 hari. Saya melakukan pencarian dan saya pikir saya menemukan perintah yang tepat, tetapi saya ingin memastikan bahwa saya tidak melewatkan sesuatu sebelum menjalankannya.

* 4 * * * find /home/USER/DIRECTORY1/DIRECTORY2/ -mindepth 1 -type f -mtime 29 -delete

Apakah saya perlu meletakkan "sudo" sebelum perintah find?

Apakah saya perlu menempatkan "+" sebelum jumlah hari "29"?

Jawaban yang Diterima:

Pertama, masukkan find ... perintah dalam bash skrip, dan panggil skrip itu dari crontab . Anda . Jika Anda memiliki direktori home terenkripsi (cat /home/.ecryptfs/$USER/.ecryptfs/Private.mnt ) Anda harus menyimpan skrip Anda di luar $HOME pohon direktori. Menyimpan perintah di crontab membuat konfigurasi, logging, dan debugging menjadi lebih sulit, dan crontab parser perintah tidak secerdas bash 's.

Kedua, selalu, Selalu, SELALU uji find dengan -print , dan membuatnya berfungsi, sebelum mempertimbangkan -delete .

Ketiga, find tes “-mtime 29 ” memberitahu find “Temukan mtime file tersebut , dan kembalikan True jika sama dengan 29 . Anda harus menggunakan -mtime +29 , yang find dilihat sebagai “more than 29 “, yang kamu inginkan. Dari man find :

   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

Keempat, pastikan Anda memiliki akses Tulis ke direktori di /home/USER/DIRECTORY1/DIRECTORY2/ .

Kelima, maksud Anda /home/USER/DIRECTORY1/DIRECTORY2/ atau /home/$USER/DIRECTORY1/DIRECTORY2/ ? Jika $USER adalah untuk userid pengguna, Anda memiliki masalah:cron tidak mendefinisikan $USER di lingkungan runtime. Itu mendefinisikan $HOME , jadi Anda bisa menggunakan $HOME/DIRECTORY1/DIRECTORY2 .


Ubuntu
  1. Bagaimana cara Menghapus semua file yang lebih lama dari X jumlah Hari di Linux?

  2. Hapus Semua File Dan Folder Di /tmp Lebih Lama Dari Sehari?

  3. Bagaimana cara mengatur cron untuk mengambil Cadangan Basis Data MySQL setiap hari dan menghapus file cadangan yang lebih lama yang lebih dari 10 hari?

  1. Cara Menghapus File Yang Lebih Lama Dari n Hari TANPA Menggunakan Perintah find

  2. Cara menemukan dan menghapus file yang lebih lama dari periode waktu tertentu di Linux

  3. Cara membuat tar untuk file yang lebih lama dari 7 hari menggunakan skrip shell linux

  1. Skrip Bash untuk menghapus file yang lebih lama dari x hari dengan subdirektori

  2. Bagaimana cara menemukan semua file yang *tidak* dapat ditulisi oleh grup?

  3. Pekerjaan Cron untuk menghapus semua file yang lebih lama dari 7 hari dengan ekstensi di folder tertentu - tidak berfungsi