Entfernen Sie die Protokolldateien mit dem Cron-Job

8

Hallo. Ich möchte alle Protokolldateien der letzten 7 Tage aus einem Ordner entfernen, aber alle anderen Dateien belassen. Kann ich den folgenden Befehl verwenden? Wie geben Sie an, dass nur die Dateien mit der Erweiterung .log gelöscht werden sollen?

%Vor%

Muss ich diesen Befehl in eine Datei schreiben oder kann ich ihn einfach in die Eingabeaufforderung schreiben und ihn jeden Tag automatisch ausführen lassen?

Ich habe keine Ahnung, wie man einen Cron-Job in Linux ausführt.

    
user965884 17.03.2014, 18:43
quelle

5 Antworten

15

Verwenden Sie Platzhalter. Und verwenden Sie einfach die Option crontab -e , um Ihre Crontab-Jobs zu bearbeiten.
Beispiel:

%Vor%

Um die Antwort zu erhöhen, werfen Sie einen Blick auf diesen netten Artikel, wie Sie mit Ihrem crontab arbeiten können! in Linux.

EDIT: update corntab zu crontab

    
Up_One 17.03.2014, 18:47
quelle
5

Sie bearbeiten Ihre persönliche crontab, indem Sie crontab -e ausführen. Alles in dieser Datei wird von jedem Benutzer ausgeführt, den Sie gerade bearbeiten.

Die Syntax für crontab lautet wie folgt:

%Vor%

Wenn Sie Ihre eigene persönliche crontab über crontab -e bearbeiten, lassen Sie das Feld für den Benutzernamen weg, da die Verwendung abgeleitet wird.

Nachdem das gesagt wurde, sollte Ihr Eintrag so aussehen:

%Vor%

Bitte verwenden Sie nicht die Option -exec , wenn die Option -delete genau das tut, was Sie tun möchten. Der Exec gibt eine Shell für jede Datei aus und ist übermäßig verschwenderisch auf Systemressourcen.

Wenn Sie fertig sind, können Sie crontab -l verwenden, um Ihre persönliche crontab aufzulisten.

ps. Der Standard-Editor auf den meisten Linux-Systemen ist vi. Wenn Sie vi nicht kennen, verwenden Sie etwas Einfaches wie nano, indem Sie Ihre Umgebungsvariable export EDITOR=nano

setzen     
typedeaf 26.10.2015 21:38
quelle
4
%Vor%

Um einen Cron-Job zu erstellen, legen Sie eine Datei mit folgendem Inhalt in das Verzeichnis /etc/cron.daily:

%Vor%     
user3392484 17.03.2014 18:47
quelle
4

Sie sollten crontab -e verwenden, um Ihre crontab zu bearbeiten und den Job zu planen. Es könnte in etwa so aussehen:

%Vor%

Dadurch werden jeden Tag um 1 Uhr morgens alle .log-Dateien im Verzeichnis / Pfad / zu / Datei rekursiv entfernt.

    
Ben Whaley 17.03.2014 18:48
quelle
2

Da es sich um Protokolldateien handelt, sollten Sie sich logrotate ansehen. Es läuft täglich von System Cron Job und wird Protokolle für Sie basierend auf Regeln aus /etc/logrotate.conf Datei, die normalerweise /etc/logrotate.d Verzeichnis enthält rotieren. Also keine Notwendigkeit für crontab noch finden.

Sie können auch einen eigenen Cron-Job haben, wenn Sie keinen Zugriff auf die Datei /etc/logrotate.d für Ihre eigene Konfiguration haben.

Es gibt viele Beispiele in /etc/logrotate.d.

Erwartet, dass Ihre Anwendung in eine einzelne Datei schreibt. Es ist nicht für eine Anwendung, die sich jeden Tag in andere Protokolldatei anmeldet. Eine Anwendung muss dies normalerweise nicht tun. Wenn die Anwendung die Protokolldatei geöffnet hält, kann logrotate ein Postrotations-Skript ausführen, um die Anwendung anzuweisen, die Protokolldatei erneut zu öffnen.

    
kohtala 17.03.2014 19:22
quelle

Tags und Links