Heim  >  Artikel  >  Backend-Entwicklung  >  Linux-Skript-Shell für die geplante Dateibereinigung

Linux-Skript-Shell für die geplante Dateibereinigung

伊谢尔伦
伊谢尔伦Original
2016-11-29 10:41:181087Durchsuche

Die bei der Arbeit häufig verwendeten werden aus dem Internet gesammelt.

Erklärungsschreiben:

entsprechendes Verzeichnis finden -mtime + Anzahl der Tage -name „Dateiname“. - exec rm -rf {} ;

Beispiel 1:

find /usr/local/backups -mtime +10 -name „*.*“ -exec rm -rf {} ;

Alle Dateien mit „.“ im Verzeichnis /usr/local/backups vor 10 Tagen löschen

Suchen: Linux-Suchbefehl, der Benutzer sucht nach Dateien mit angegebenen Bedingungen

/usr/local/backups: Jedes Verzeichnis, das Sie bereinigen möchten

-mtime: Standard-Anweisungsschreiben

+10: Dateien vor 10 Tagen suchen. Die Zahl hier stellt die Anzahl der Tage dar, + 30 bedeutet, 30 Dateien von vor Tagen zu durchsuchen

„*.*“: der Datentyp, den Sie suchen möchten, „*.jpg“ bedeutet, nach allen Dateien mit der Erweiterung jpg zu suchen, „*“ bedeutet, zu suchen für alle Dateien, dies ist flexibel einsetzbar, Rückschlüsse aus einem Beispiel ziehen

-exec: Feste Schreibmethode

rm -rf: Erzwungenes Löschen von Dateien, einschließlich Verzeichnissen

{};: Feste Schreibmethode, ein Paar geschweifte Klammern + Leerzeichen++;

Beispiel 2:

1.#touch /usr/local/bin/clear

#chmod 777 clear

Erstellen Sie eine neue ausführbare Datei 🎜>

find /usr/local/backups -mtime +10 - Name „*.*“ -exec rm -rf {} ;

ok, speichern und beenden

3.#crontab - e

Fügen Sie die Löschdatei zur geplanten Systemaufgabe hinzu, bis zu dem Punkt „Automatisch ausführen“

Eingabe:

* 2 * * */usr/local/bin/clear

Die Einstellung hier besteht darin, die Löschdatei jeden Tag um 2 Uhr morgens zur Datenbereinigung auszuführen. Sie können Cron studieren und die geplanten Aufgaben entwickeln, die Sie benötigen

Beispiel:

#! /bin/sh

find /usr/local/jboss-4.2.3.GA /server/default/log -mtime +6 -name „server.log.*“ -exec rm -rf {} ;

exit

[root@web3 ~]# crontab -l

Bearbeiten Sie die Crontab-Datei des Benutzers

crontabl -e

The Die vom Benutzer erstellte Crontab-Datei wird in /var/spool/cron gespeichert und ihr Dateiname stimmt mit dem Benutzernamen überein.

Sein Format ist in sechs Abschnitte unterteilt. Die ersten fünf Abschnitte sind der Abschnitt zur Zeiteinstellung und der sechste Abschnitt ist der auszuführende Befehlsabschnitt. Das

-Format ist wie folgt: * * * * *

Die Bedeutung des Zeitabschnitts Wie in Tabelle 2 dargestellt:

Segment

Bedeutung

Wertebereich

Das erste Segment

stellt dar Minuten

0–59

Der zweite Absatz

stellt die Stunde dar

0–23

Der dritte Absatz

stellt das Datum dar

1–31

Der vierte Absatz

stellt den Monat dar

1–12

Der fünfte Absatz

stellt den Wochentag dar, 0 steht für Sonntag

0–6

Name: crontab

Nutzungsberechtigungen: Alle Benutzer

Nutzung:

crontab [ -u user ] file

crontab [ -u user ] { -l | -r | }

Erläuterung:

crontab wird verwendet, um Benutzern die Ausführung von Programmen zu einem festen Zeitpunkt oder in einem festen Intervall zu ermöglichen Mit anderen Worten, es ähnelt einem Benutzerplan. -u Benutzer bezieht sich auf das Festlegen des Zeitplans des angegebenen Benutzers. Voraussetzung ist, dass Sie über dessen Berechtigungen (z. B. Root) verfügen, um den Zeitplan anderer Benutzer festzulegen. Wenn -u user nicht verwendet wird, bedeutet dies, dass Sie Ihren eigenen Zeitplan festlegen.

Anzahl der Mahlzeiten:
-e: Führen Sie einen Texteditor aus, um den Zeitplan festzulegen. Wenn Sie einen anderen Texteditor verwenden möchten, legen Sie bitte zuerst den Texteditor fest zu verwenden (zum Beispiel setenv VISUAL joe)
-r: Aktuellen Zeitplan löschen
-l: Aktuellen Zeitplan auflisten
Das Format des Zeitplans ist wie folgt:
f1 f2 f3 f4 f5 Programm

Wobei f1 die Minute, f2 die Stunde, f3 den Tag eines Monats, f4 den Monat und f5 den Wochentag darstellt. Programm stellt das auszuführende Programm dar.
Wenn f1 * ist, bedeutet dies, dass das Programm jede Minute ausgeführt wird, wenn f2 * ist, bedeutet dies, dass das Programm jede Stunde ausgeführt wird, und so weiter.
Wenn f1 a-b ist, bedeutet dies den Zeitraum von Minute a bis Minute b. Wenn f2 a-b ist, bedeutet dies, dass es von der a-ten Stunde bis zur b-ten Stunde ausgeführt wird, und so weiter.
Wenn f1 */n ist Dies bedeutet, dass es alle n Minuten ausgeführt wird und f2 alle n Stunden einmal ausgeführt wird usw.
Wenn f1 a, b, c, ... ist, bedeutet dies, dass dies der Fall ist wird in der a, b, c,... Minute ausgeführt, und wenn f2 a, b, c,... ist, bedeutet dies, dass die a, b, c... Stunden ausgeführt werden, und so weiter
Benutzer können auch zunächst alle Einstellungen in der Datei speichern und die Crontab-Datei verwenden, um den Zeitplan festzulegen.

Beispiel:

Führen Sie /bin/ls zur 0. Minute jeder Stunde an jedem Tag des Monats aus:
0 7 * * * /bin/ls

In 12 Monaten jeden Morgen Von 6 Uhr bis 12 Uhr wird /usr/bin/backup alle 20 Minuten ausgeführt:
0 6-12/3 * 12 * /usr/bin/backup

Jeden Nachmittag ab Montag bis Freitag 5:00 Uhr Senden Sie einen Brief an alex@domain.name :
0 17 * * 1-5 mail -s „hi“ alex@domain.name /dev/null 2>&1 Nur
Beispiel: Wenn der Inhalt der Crontab-Datei des Benutzers wie folgt lautet: 29 19 * * * Echo seiner Abendessenzeit, dann zeigt das System jeden Tag um 19:29 Uhr „seine Abendessenzeit“ an

Beispiel (der gesamte Prozess der Erstellung eines Crons wird angezeigt Geben Sie in test.txt jede Minute die aktuelle Uhrzeit ein):

1. Melden Sie sich als normaler Benutzer beim Linux-System an (ich verwende CentOS4.1)

2. $crontab –e
Hinweis: Der Standardeditor des Systems ist VIM nicht, bitte fügen Sie die folgende Shell hinzu:
$EDITOR=vi
$export EDITOR

3. Geben Sie „*/1 * * * * date >>“ ein. , speichern und beenden Sie VIM

4. $su root

5./crond restart

Werfen wir einen Blick auf ein paar Ein konkretes Beispiel:

● 0 */2 * * * /sbin/service httpd restart bedeutet, dass Apache alle zwei Stunden neu gestartet wird

● 50 7 * * * /sbin/service sshd start bedeutet, den SSH-Dienst jeden Tag um 7:50 Uhr zu starten

● 50 22 * ​​​​* * /sbin/service sshd stop bedeutet, den SSH-Dienst jeden Tag um 22:50 Uhr zu schließen

● 0 0 1,15 * * fsck /home Überprüfen Sie die /home-Festplatte am 1. und 15. jedes Monats

● 1 * * * * /home/bruce/backup Führen Sie die aus file /home/bruce/backup zur ersten Minute jeder Stunde

● 00 03 * * 1-5 find /home „*.xxx“ -mtime +4 -exec rm {} ; Jeden Montag bis Freitag Suchen Sie um 3 Uhr im Verzeichnis /home nach der Datei mit dem Namen *.xxx files und löschen Sie die Dateien vor 4 Tagen.

● 30 6 */10 * * ls bedeutet, dass der ls-Befehl einmal im Monat am 1., 11., 21. und 31. um 6:30 Uhr ausgeführt wird


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn