Vraag Wat betekent * * * * * (vijf sterretjes) in een cron-bestand? [duplicaat]


Deze vraag heeft hier al een antwoord:

De eerste regel zonder commentaar in een verouderd crontab-bestand begint met vijf sterretjes:

* * * * * ([a_command]) >/dev/null 2>&1

De auteurs zijn weg, dus ik ken hun niet voornemen. Wat betekent alle-jokertekens voor (Solaris 8) cron?  Het gokken hier is één keer uitvoeren, continu doorgaan of nooit uitvoeren, wat helaas breed is.

Als je je afvraagt ​​wat de vorige regel is, is dit 'Niet verwijderen'.

Opmerking: dit cron-bestand is werkend. Deze vraag is niet een duplicaat van een vraag over gebroken cron-bestanden of cron-bestanden die probleemoplossing vereisen.


45
2017-07-20 21:15


oorsprong


Iets anders om op te merken, omdat het mij recentelijk ernstig op het werk deed vallen: de> / dev / null 2> & 1 sectie voedt alle uitvoer van STDOUT en STDERR naar / dev / null. De reden dat dit is gebeurd: Als u dit niet doet, wordt de uitvoer van het programma dat in crontab wordt genoemd, naar de lokale mailbox van de gebruiker verzonden. Voordat ik dit wist, vulde ik een harde schijf op een productieserver op met een script dat elke twee minuten werd uitgevoerd. - Luke has no name
Bedankt, Luke heeft geen naam; Ik had het verkeerd toegeschreven aan overdreven drukte. - Thomas L Holaday
Het lijkt erop dat het in aanmerking komt voor mij. Het antwoord legt uit hoe crontab werkt, en zoals het uitlegt, zou dit eenmaal per minuut lopen. Het markeren als duplicaat is niet bedoeld om uw vraag te kleineren, maar om de veelgestelde vragen over cron en hun antwoorden op één plaats te verzamelen. - Michael Hampton♦


antwoorden:


Elke minuut van elke dag van elke week van elke maand loopt dat commando.

man 5 crontab heeft de documentatie hiervan. Als je gewoon typt man crontab, je krijgt de documentatie voor de crontab commando. Wat u wilt, is sectie 5 van de pagina's met de handleiding die betrekking heeft op systeemconfiguratiebestanden, inclusief de /etc/crontab het dossier. Voor toekomstige referentie worden de secties beschreven in man man:

   1   Executable programs or shell commands
   2   System calls (functions provided by the kernel)
   3   Library calls (functions within program libraries)
   4   Special files (usually found in /dev)
   5   File formats and conventions eg /etc/passwd
   6   Games
   7   Miscellaneous  (including  macro  packages and conven‐
       tions), e.g. man(7), groff(7)
   8   System administration commands (usually only for root)
   9   Kernel routines [Non standard]

47
2017-07-20 21:17



Dat is de letterlijke betekenis; Ik was bang dat het een speciaal geval zou zijn. Bedankt voor de geruststelling. - Thomas L Holaday
+1 voor het antwoord, -1 voor de man cron commentaar. man pagina's zijn notoir moeilijk te lezen en te begrijpen voor de beginner - daarom komen mensen hier, om de man pagina's uitgelegd. - Mark Henderson♦
Helemaal, omdat het had moeten zijn man 5 crontab. Die manpage is specifieker en heel gemakkelijk te begrijpen. Zien: linux.die.net/man/5/crontab - Warner
Dat is prima, mits de gebruiker zich ervan bewust is dat de 5 zelfs relevant is. De meeste nieuwe of parttime Linux-gebruikers weten niet welk nummer, indien aanwezig, moet worden gebruikt om manpagina's te openen. - John Gardeniers
@John, om je punt te bewijzen, als iemand die alleen zijn teen indrukt in * nix wanneer ik de occasionele apache-server opnieuw moet opstarten, wist ik niet eens dat je een man 5 en ik heb geen idee wat er zou gebeuren als ik dat deed ... - Mark Henderson♦


* = altijd. Het is een jokerteken voor elk deel van de cron-schema-expressie.

Zo * * * * * middelen every minute van every hour van every day van every month en every day van de week.

 * * * * *  command to execute
 ┬ ┬ ┬ ┬ ┬
 │ │ │ │ │
 │ │ │ │ │
 │ │ │ │ └───── day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
 │ │ │ └────────── month (1 - 12)
 │ │ └─────────────── day of month (1 - 31)
 │ └──────────────────── hour (0 - 23)
 └───────────────────────── min (0 - 59)

De mooie tekening hierboven wordt verzorgd door wikipedia

Een ander voorbeeld:

0 * * * * - dit betekent dat de cron altijd zal werken wanneer de minuten zijn 0 (dus elk uur)
0 1 * * * - dit betekent dat de cron altijd om 1 uur zal werken.
* 1 * * * - dit betekent dat de cron elke minuut zal lopen wanneer het uur 1. is 1:00, 1:01, ...1:59.


26
2018-06-04 07:38



Man die nu echt voor mij zinvol is. Bedankt voor de uitleg. - Vishal
Is niet de zesde kolom voor gebruikersnaam om de opdracht uit te voeren? Ik heb me altijd afgevraagd hoe cron het commando van de gebruiker onderscheidt, als er ruimte tussenin zit, zoals * * * * * php /var/myscript.php - hoe cron weet of php maakt deel uit van commando en geen gebruikersnaam? - JustAMartin


First star = Minutes: 0-59
Second star = Hours: 0-23
Third star = Day of Month: 0 - 31
Fourth star = Month: 0 - 12
Fifth star = Day of Week: 0 - 6 (0 means sunday)

Stel dat u elke eerste van elke maand iets wilt uitvoeren.

0 0 1 * * something.sh

8
2017-07-20 21:22



Dat betekent om elke minuut van elk uur iets te laten lopen op de 1e van elke maand (dat zou 1440 keer zijn op dag 1). - Kevin Brock
Oh ja, laat me dat bewerken. - Michael Burns