GNU/Linux >> Belajar Linux >  >> Linux

Hapus file log menggunakan tugas cron

Gunakan kartu pengganti. Dan taruh saja di crontab Anda gunakan crontab -e opsi untuk mengedit pekerjaan crontab Anda.
Lihat contoh:

* * * * *  find  /path/to/*.log -mtime +7 -exec rm -f {} \; 

Hanya untuk menambah jawabannya, periksa artikel bagus ini tentang cara bekerja dengan crontab Anda ! di Linux .


Anda mengedit pribadi Anda crontab dengan menjalankan crontab -e .Ini disimpan ke /var/spool/cron/<username> . File tersebut akan menjadi nama pengguna pemilik, jadi root akan menjadi /var/spool/cron/root. Semua yang ada di file dijalankan sebagai pemilik file.

Sintaks untuk crontab adalah sebagai berikut:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

Saat Anda mengedit pribadi Anda sendiri crontab, melalui crontab -e , Anda meninggalkan bidang nama pengguna, karena pengguna disimpulkan oleh nama file (lihat paragraf pertama).

Karena itu, entri Anda akan terlihat seperti ini:

0 5 * * *  find  /path/to/*.log -mtime +7 -delete

Ini akan berjalan setiap hari, jam 5:00 pagi, waktu sistem. Saya rasa Anda tidak perlu menjalankannya lebih sering daripada setiap hari, mengingat fakta bahwa Anda menghapus file yang berumur 7 hari tua.

Tolong jangan gunakan terlalu banyak -exec pilihan, ketika -delete opsi melakukan apa yang ingin Anda lakukan. Exec mem-fork sebuah shell untuk setiap file, dan sangat boros pada sumber daya sistem.

Setelah selesai, Anda dapat menggunakan crontab -l untuk mencantumkan crontab pribadi Anda.

ps. Editor default pada sebagian besar sistem Linux adalah vi, jika Anda tidak tahu vi, gunakan sesuatu yang sederhana seperti nano dengan menyetel variabel lingkungan Anda export EDITOR=nano


find /path/to/dir-containing-files -name '*.log' -mtime +7 -exec rm -f {} \;

Untuk membuat tugas cron, letakkan file yang berisi berikut ini di direktori /etc/cron.daily:

#!/bin/sh
find /path/to/dir-containing-files -name '*.log' -mtime +7 -exec rm -f {} \;

Linux
  1. Cara Menulis File Log Di RAM Menggunakan Log2ram Di Linux

  2. Menggunakan di untuk pekerjaan cron sekali pakai di Linux

  3. Menggunakan Notify-send Dengan Cron?

  1. File log Linux

  2. Uji tugas cron mingguan

  3. temukan dan hapus file dengan ruang menggunakan perintah find di Linux

  1. Cara Mengelola File Log Menggunakan Logrotate Di Linux

  2. [ASK] Pekerjaan cron wget menulis file ke direktori root

  3. Zona waktu apa yang digunakan tugas cron?