GNU/Linux >> Linux Esercitazione >  >> Linux

Rimuovi i file di registro usando cron job

Usa il carattere jolly. E inseriscilo nel tuo crontab usa il crontab -e opzione per modificare i lavori di crontab.
Vedi esempio:

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

Solo per incrementare la risposta controlla questo bell'articolo su come lavorare con il tuo crontab ! in Linux .


Modifica il tuo personale crontab eseguendo crontab -e .Questo viene salvato in /var/spool/cron/<username> . Il file sarà il nome utente del proprietario, quindi root sarà /var/spool/cron/root. Tutto nel file viene eseguito come proprietario del file.

La sintassi per crontab è la seguente:

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

Quando modifichi il tuo personale crontab, tramite crontab -e , ometti il ​​campo del nome utente, perché l'utente viene dedotto dal nome del file (vedi primo paragrafo).

Detto questo, la tua voce dovrebbe assomigliare a questa:

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

Verrà eseguito ogni giorno, alle 5:00 AM, ora di sistema. Non penso che tu abbia bisogno che venga eseguito più frequentemente di ogni giorno, dato che stai rimuovendo file che durano 7 giorni vecchio.

Per favore, non usare più del -exec opzione, quando -delete opzione fa esattamente quello che vuoi fare. L'exec esegue il fork di una shell per ogni file ed è eccessivamente dispendioso in termini di risorse di sistema.

Quando hai finito, puoi usare crontab -l per elencare il tuo crontab personale.

p.s. L'editor predefinito sulla maggior parte dei sistemi Linux è vi, se non conosci vi, usa qualcosa di semplice come nano impostando la tua variabile ambientale export EDITOR=nano


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

Per creare un cron job, inserisci un file contenente quanto segue nella directory /etc/cron.daily:

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

Linux
  1. Come scrivere file di registro nella RAM usando Log2ram in Linux

  2. Utilizzo di at per lavori cron monouso in Linux

  3. [RISOLTO] Cron job wget scrive i file nella directory principale

  4. Utilizzando Notifica-Invia con Cron?

  5. Comando per ripulire i vecchi file di registro?

Come impostare un Cron Job in Linux

Come rimuovere directory e file utilizzando Linux

Come rimuovere file e directory utilizzando la riga di comando di Linux

Monitora i file di registro Nginx usando ngxtop su Ubuntu 20.04

Come verificare se un Cron Job è stato eseguito (registro Crontab)

Prova un cron job settimanale