GNU/Linux >> Znalost Linux >  >> Linux

Odstraňte soubory protokolu pomocí úlohy cron

Použijte zástupný znak. A jednoduše to vložte do crontab použijte crontab -e možnost upravit své úlohy crontab.
Viz příklad:

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

Pro zvýšení odpovědi si přečtěte tento pěkný článek o tom, jak pracovat s crontab ! v Linuxu .


Upravíte své osobní crontab spuštěním crontab -e .To se uloží do /var/spool/cron/<username> . Soubor bude uživatelské jméno vlastníka, takže root by byl /var/spool/cron/root. Vše v souboru je spuštěno jako vlastník souboru.

Syntaxe pro crontab je následující:

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

Když upravujete své vlastní osobní crontab prostřednictvím crontab -e , vynecháte pole uživatelského jména, protože uživatel je odvozen podle názvu souboru (viz první odstavec).

Jak již bylo řečeno, váš záznam by měl vypadat takto:

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

Toto se spustí každý den v 5:00 systémového času. Nemyslím si, že je potřeba, aby běžel častěji než denně, vzhledem k tomu, že odstraňujete soubory, které jsou 7 dní starý.

Nepoužívejte nadměrně -exec možnost, když je -delete volba dělá přesně to, co chcete dělat. Exec rozvětvuje shell pro každý soubor a nadměrně plýtvá systémovými prostředky.

Až budete hotovi, můžete použít crontab -l vypsat svůj osobní crontab.

ps. Výchozí editor na většině systémů Linux je vi, pokud vi neznáte, použijte něco jednoduchého, jako je nano, nastavením proměnné prostředí export EDITOR=nano


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

Chcete-li vytvořit úlohu cron, vložte do adresáře /etc/cron.daily soubor obsahující následující:

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

Linux
  1. Jak spravovat soubory protokolu pomocí Logrotate v Linuxu

  2. Příkaz k vyčištění starých souborů protokolu?

  3. Použití rsync k synchronizaci souborů

  1. Jak zapisovat soubory protokolu do RAM pomocí Log2ram v Linuxu

  2. Soubory protokolu Linux

  3. Otestujte týdenní úlohu cronu

  1. Použití at pro jednorázové úlohy cron v Linuxu

  2. [VYŘEŠENO] Cron úloha wget zapisuje soubory do kořenového adresáře

  3. Použití skriptu Cron Wrapper