Cron-Ausdruck: Differenz zwischen 0/1, 1/1 und *

15

In einem Cron - Ausdruck, was ist der Unterschied zwischen 0/1, 1/1und *?

sdabet
quelle
1
Warum bitte abstimmen? Fehlen Informationen? Gehört die Frage zu einer anderen Stack-Exchange-Site?
sdabet
Fahren Sie mit der Maus über den Abwärtspfeil. Das Popup sagt " Diese Frage zeigt keinen Forschungsaufwand; es ist unklar oder nicht nützlich ". Downvotes ohne Kommentar können aus mindestens einem dieser Gründe vermutet werden - obwohl ich bemerke, dass der Downvoter sich seitdem zurückgezogen hat.
MadHatter
Danke @MadHatter, ich habe einfach noch nicht genug Ruf, um die Abstimmungsdetails zu sehen
sdabet

Antworten:

20

Es hängt davon ab, wo sich die Begriffe befinden

  • 0/1 bedeutet, alle 1 bei 0 zu beginnen.
  • 1/1 bedeutet, alle 1 bei 1 zu beginnen.
  • * bedeutet alle möglichen Werte.

so

  • Für die Spalten Minuten, Stunden und Wochentag sind die 0/1und *äquivalent, da diese auf 0 basieren.

  • Für die Spalten Tag des Monats und Monat 1/1und *sind äquivalent, da diese auf 1 basieren.

user9517
quelle
Ist es dann sinnvoll, 0/1monatelang zu verwenden ? Was würde passieren?
sdabet
4

In der Crontab-Definition haben die fünf Felder für Datum und Uhrzeit folgende Bedeutung:

  1. Zu welchen Minuten der Stunde (also von 0 bis 59)
  2. Zu welcher Tageszeit (also von 0 bis 23)
  3. An welchem ​​Tag des Monats (also von 1 bis 31)
  4. In welchem ​​Monat des Jahres (also von 1 bis 12 oder Namen - Jan, Feb, ...)
  5. An welchem ​​Wochentag (also von 0 bis 6 oder Namen - So, Mo, ...)

Ein * bedeutet vom ersten bis zum letzten Element des Bereichs. Ein n / x bedeutet, dass bei jedem x-Wert mit n begonnen wird.

In Ihrem Fall kann dies übersetzt werden durch:

  1. In Minuten 0
  2. Ab Mitternacht jede Stunde (ähnlich wie *)
  3. Jeden Tag des Monats
  4. Beginn des ersten Monats (Januar), jeden Monat (ähnlich wie *)
  5. Jeder Wochentag (für den ersten *)

Das Ende sieht falsch aus (? *), Da es sich an der Stelle des Befehls befindet. Oder anstelle des Benutzernamens und Befehls, wenn er aus einer Datei unter /etc/cron.d/und nicht aus der Crontab eines bestimmten Benutzers stammt.

Benoit
quelle
0

Die 0/1 bedeutet jede 1 Minute oder jede Minute und 1/1 bedeutet jeden Monat, denke ich, aber ich bin nicht sicher, ob es so für Monat funktionieren wird.

vic
quelle
Was ist dann der Unterschied zwischen 0/1, 1/1und *?
sdabet
Die 0/1 ist in der Stundenposition.
user9517
Dieser ist für Stunde
Vic
Sicher, aber kann ich die Stunde Teil ersetzen 0/1durch 1/1zum Beispiel? Wird es dasselbe bedeuten?
sdabet
Ist das nicht dasselbe wie Putten 0oder 1dann?
sdabet