Π‘ΡΠΊΠΎΠ½ΠΎΠΌΡŒΡ‚Π΅ 15% Π½Π° всСх хостинговых услугах

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свои Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ скидку Π½Π° любой Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄: Skills ΠΠ°Ρ‡Π°Ρ‚ΡŒ
Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ
Linux Администрация

Как ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ список Cron Jobs с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Crontab

Команда crontab являСтся основным интСрфСйсом для просмотра, рСдактирования ΠΈ управлСния Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π² систСмС Unix cron. Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти список всСх cron-Π·Π°Π΄Π°Π½ΠΈΠΉ для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ crontab -l Π² любом Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅. Для Π·Π°Π΄Π°Π½ΠΈΠΉ root ΠΈΠ»ΠΈ систСмных Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ /etc/crontab, /etc/cron.d/ ΠΈ /var/spool/cron/crontabs/ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

Cron являСтся основой Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ Π² Linux ΠΈ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, выполняСтС Π»ΠΈ Π²Ρ‹ Π½ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π² срСдС VPS Π₯остинга, Ρ€ΠΎΡ‚Π°Ρ†ΠΈΡŽ Π»ΠΎΠ³ΠΎΠ² Π½Π° Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС ΠΈΠ»ΠΈ автоматичСски обновляСтС SSL Π‘Π΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Certbot, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ всС Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ задания Π½Π° машинС, являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ систСмного администратора. Π­Ρ‚ΠΎ руководство ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ стСка cron β€” ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ crontab, систСмныС crontab, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ drop-in ΠΈ спул β€” Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Crontab ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ систСма Cron

Crontab (сокращСниС ΠΎΡ‚ Β«cron tableΒ») β€” это Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π΅ΠΌΠΎΠ½Ρƒ crond, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. КаТдая учётная запись ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² систСмС β€” Π²ΠΊΠ»ΡŽΡ‡Π°Ρ root β€” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСзависимый crontab. Π”Π΅ΠΌΠΎΠ½ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ эти Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΈ запускС ΠΈ послС любого рСдактирования, Π·Π°Ρ‚Π΅ΠΌ запускаСт задания Π² соотвСтствии с ΠΈΡ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ спСцификациями.

ЭкосистСма cron Π² соврСмСнном дистрибутивС Linux состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ:

  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ crontab β€” ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· crontab -e ΠΈ хранятся Π² /var/spool/cron/crontabs/ (Debian/Ubuntu) ΠΈΠ»ΠΈ /var/spool/cron/ (RHEL/CentOS)
  • БистСмный crontab β€” Ρ„Π°ΠΉΠ» /etc/crontab, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ user для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи
  • ДирСктория drop-in β€” /etc/cron.d/, Π³Π΄Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ собствСнныС опрСдСлСния Π·Π°Π΄Π°Π½ΠΈΠΉ
  • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ run-parts β€” /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, /etc/cron.monthly/, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат исполняСмыС скрипты, Π° Π½Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² синтаксисС crontab
  • Anacron β€” Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ cron, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ задания Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π΅ круглосуточно, читая ΠΈΠ· /etc/anacrontab

ПониманиС Ρ‚ΠΎΠ³ΠΎ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ находится Π·Π°Π΄Π°Π½ΠΈΠ΅, критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ Π°ΡƒΠ΄ΠΈΡ‚Π΅ сСрвСра, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ crontab -l Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ пропустит Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π² Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ производствСнной систСмС.

Бинтаксис Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Crontab

КаТдая запись crontab слСдуСт фиксированной ΠΏΡΡ‚ΠΈΠΏΠΎΠ»ΡŒΠ½ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ спСцификации ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

* * * * *  command_to_execute
| | | | |
| | | | +----- day of the week  (0–7, Sunday = 0 or 7)
| | | +------- month            (1–12)
| | +--------- day of the month (1–31)
| +----------- hour             (0–23)
+------------- minute           (0–59)

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ синтаксичСскиС сокращСния, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ cron:

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
@rebootβ€”Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ стартС Π΄Π΅ΠΌΠΎΠ½Π°
@yearly0 0 1 1 *Один Ρ€Π°Π· Π² Π³ΠΎΠ΄
@monthly0 0 1 * *ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ дСнь ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ мСсяца
@weekly0 0 * * 0КаТдоС Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅ Π² ΠΏΠΎΠ»Π½ΠΎΡ‡ΡŒ
@daily0 0 * * *ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Π² ΠΏΠΎΠ»Π½ΠΎΡ‡ΡŒ
@hourly0 * * * *Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ часа

Π€Π°ΠΉΠ»Ρ‹ /etc/crontab ΠΈ /etc/cron.d/ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΡˆΠ΅ΡΡ‚ΠΎΠ΅ ΠΏΠΎΠ»Π΅ β€” имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ выполняСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° β€” ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ спСцификациСй ΠΈ самой ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.

Как вывСсти список Cron-Π·Π°Π΄Π°Π½ΠΈΠΉ: всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

1. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ собствСнных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Cron-Π·Π°Π΄Π°Π½ΠΈΠΉ

crontab -l

Π­Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ crontab для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Если crontab Π΅Ρ‰Ρ‘ Π½Π΅ сущСствуСт, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π»ΠΈΠ±ΠΎ пустой Π²Ρ‹Π²ΠΎΠ΄, Π»ΠΈΠ±ΠΎ сообщСниС no crontab for <username> β€” ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π°:

# m  h   dom mon dow  command
0    0   *   *   *    /home/deploy/backup.sh
30   2   *   *   7    /home/deploy/scripts/cleanup.sh
15   */4 *   *   *    /usr/local/bin/health-check.sh >> /var/log/health.log 2>&1

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

    backup.sh запускаСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Π² ΠΏΠΎΠ»Π½ΠΎΡ‡ΡŒ
    cleanup.sh запускаСтся ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΠΎΡΠΊΡ€Π΅ΡΠ΅Π½ΡŒΠ΅ Π² 02:30
    health-check.sh запускаСтся ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ часа начиная с 00:15, с ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ stdout ΠΈ stderr Π² Ρ„Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π°
    
    ΠŸΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹ΠΉ камСнь: ΠŸΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Π° (>>, 2>&1) часто опускаСтся Π² записях crontab. Π‘Π΅Π· Π½Π΅Π³ΠΎ cron пытаСтся ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ‡Π΅Ρ€Π΅Π· sendmail. На сСрвСрах Π±Π΅Π· Π°Π³Π΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡ‡Ρ‚Ρ‹ это ΠΌΠΎΠ»Ρ‡Π° отбрасываСт вСсь Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ. ВсСгда пСрСнаправляйтС Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ»ΠΈ устанавливайтС MAILTO="" Π² Π½Π°Ρ‡Π°Π»Π΅ crontab.
    2. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Cron-Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    Π‘ ΠΏΡ€Π°Π²Π°ΠΌΠΈ sudo ΠΈΠ»ΠΈ root Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ crontab любого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:
    sudo crontab -l -u john
    Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ john Π½Π° имя Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° спула, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, поэтому всСгда ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ прямого доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.
    3. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Crontab ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ
    На ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ сСрвСрС итСрация ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи β€” СдинствСнный Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ способ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ:
    for user in $(cut -f1 -d: /etc/passwd); do
        echo "=== Crontab for: $user ==="
        sudo crontab -l -u "$user" 2>/dev/null
    done
    Π€Π»Π°Π³ 2>/dev/null подавляСт сообщСния Β«no crontab forΒ» для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ crontab, сохраняя Π²Ρ‹Π²ΠΎΠ΄ чистым.
    4. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ общСсистСмного Crontab
    cat /etc/crontab
    Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² систСмС Π½Π° основС Debian:
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
    # m  h  dom mon dow  user     command
    17  *  *   *   *    root     cd / && run-parts --report /etc/cron.hourly
    25  6  *   *   *    root     test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
    47  6  *   *   7    root     test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
    52  6  1   *   *    root     test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Ρƒ test -x /usr/sbin/anacron: Ссли anacron установлСн, эти Π²Ρ‹Π·ΠΎΠ²Ρ‹ run-parts ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ, ΠΈ anacron Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π° сСбя ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅, Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ СТСмСсячныС задания. Π­Ρ‚ΠΎ распространённый источник ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, ΠΊΠΎΠ³Π΄Π° задания, ΠΏΠΎ всСй видимости, Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ.
    5. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π·Π°Π΄Π°Π½ΠΈΠΉ Π² /etc/cron.d/
    ls -la /etc/cron.d/
    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ содСрТимоС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄:
    grep -v '^#|^$' /etc/cron.d/*
    Π­Ρ‚ΠΎ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ строки ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ пустыС строки, показывая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ опрСдСлСния Π·Π°Π΄Π°Π½ΠΈΠΉ. ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² часто ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ сюда β€” распространённыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ sysstat, пСрСопрСдСлСния logrotate ΠΈ Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.
    6. ΠŸΡ€ΡΠΌΠ°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ спула Cron
    ls -la /var/spool/cron/crontabs/
    Π’ RHEL, CentOS ΠΈ Fedora ΠΏΡƒΡ‚ΡŒ β€” /var/spool/cron/ Π±Π΅Π· ΠΏΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ crontabs. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» спула ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ:
    sudo cat /var/spool/cron/crontabs/username
    Π’Π°ΠΆΠ½ΠΎ: Никогда Π½Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ спула Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Команда crontab -e ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ провСряСт синтаксис ΠΏΠ΅Ρ€Π΅Π΄ установкой Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΡΠΌΠΎΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² состоянии, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ crond ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π΅Π³ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚.
    7. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π·Π°Π΄Π°Π½ΠΈΠΉ Anacron
    Если систСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ anacron для Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠ³ΠΎ планирования:
    cat /etc/anacrontab
    Записи Anacron ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ синтаксис β€” ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π² днях, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π² ΠΌΠΈΠ½ΡƒΡ‚Π°Ρ…, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ задания ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° β€” Π° Π½Π΅ стандартный ΠΏΡΡ‚ΠΈΠΏΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ cron.
    8. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² Systemd (соврСмСнная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°)
    Π’ дистрибутивах Π½Π° основС systemd ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ историчСски ΡƒΠΏΡ€Π°Π²Π»ΡΠ»ΠΈΡΡŒ cron, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°ΠΌΠΈ systemd. Они Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ спискС crontab:
    systemctl list-timers --all
    ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π°ΡƒΠ΄ΠΈΡ‚ сСрвСра Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠ°ΠΊ cron, Ρ‚Π°ΠΊ ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² systemd. НСсоблюдСниС этого трСбования являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространённых ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ… бСзопасности ΠΈ соотвСтствия трСбованиям.
    ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π°ΡƒΠ΄ΠΈΡ‚ Cron: ΠΊΠΎΠΌΠ°Π½Π΄Π° для ΠΎΠ΄Π½ΠΎΠ³ΠΎ запуска
    Для быстрого ΠΈ всСстороннСго Π°ΡƒΠ΄ΠΈΡ‚Π° всСх Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π² систСмС ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ всС источники:
    echo "=== /etc/crontab ===" && cat /etc/crontab
    echo "=== /etc/cron.d/ ===" && ls /etc/cron.d/ && grep -rh '' /etc/cron.d/
    echo "=== User crontabs ===" && for u in $(cut -d: -f1 /etc/passwd); do sudo crontab -l -u "$u" 2>/dev/null && echo "  ^ user: $u"; done
    echo "=== Systemd timers ===" && systemctl list-timers --all --no-pager
    Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Cron-заданиями
    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ собствСнный crontab Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ систСмы ($VISUAL ΠΈΠ»ΠΈ $EDITOR, с ΠΎΡ‚ΠΊΠ°Ρ‚ΠΎΠΌ ΠΊ vi):
    crontab -e
    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ crontab Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ root:
    sudo crontab -e -u username
    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС cron-задания Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ β€” это Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ Π±Π΅Π· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ):
    crontab -r
    Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию crontab ΠΏΠ΅Ρ€Π΅Π΄ внСсСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
    crontab -l > ~/crontab_backup_$(date +%F).txt
    ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π’ crontab -e Π½Π΅Ρ‚ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹.
    Cron vs. Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Systemd: сравнСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
    
    
    
    
    Ѐункция
    Cron
    Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Systemd
    
    
    
    
    Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
    ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ тСкст, ΠΏΡΡ‚ΠΈΠΏΠΎΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис
    Π€Π°ΠΉΠ»Ρ‹ ΡŽΠ½ΠΈΡ‚ΠΎΠ² (.timer + .service)
    
    
    ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    Π”Π°, Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ crontab
    Π”Π°, Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ экзСмпляры systemd
    
    
    ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ
    НСт (Π·Π°Π΄Π°Π½ΠΈΠ΅ пропускаСтся, Ссли систСма Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π°)
    Π”Π°, с Persistent=true
    
    
    Π–ΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
    Syslog / ΠΏΠΎΡ‡Ρ‚Π°
    Journald (Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ journalctl)
    
    
    Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями
    НСт
    ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ зависимостСй systemd
    
    
    Блучайная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°
    НС встроСна (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ sleep $RANDOM)
    RandomizedDelaySec=
    
    
    Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ
    Низкая
    БрСдняя
    
    
    Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ
    ВсС Unix/Linux систСмы
    Волько Linux на основС Systemd
    
    
    
    
    Для простой Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² любой Unix-систСмС β€” Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ срСды ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ β€” cron остаётся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ пСрСносимым ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎ простым Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π’Π°ΠΉΠΌΠ΅Ρ€Ρ‹ systemd прСвосходят Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ зависимостСй, Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈΠ»ΠΈ структурированный Π²Ρ‹Π²ΠΎΠ΄ ΠΆΡƒΡ€Π½Π°Π»Π°.
    ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для просмотра Crontab: ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ справочник
    
    
    
    
    ЦСль
    Команда
    
    
    
    
    Бписок Π·Π°Π΄Π°Π½ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    crontab -l
    
    
    Бписок Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    sudo crontab -l -u username
    
    
    Бписок Π·Π°Π΄Π°Π½ΠΈΠΉ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
    for u in $(cut -d: -f1 /etc/passwd); do sudo crontab -l -u "$u" 2>/dev/null; done
    
    
    ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ систСмного crontab
    cat /etc/crontab
    
    
    Бписок заданий cron.d
    ls /etc/cron.d/
    
    
    ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ спула
    ls /var/spool/cron/crontabs/
    
    
    ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π·Π°Π΄Π°Π½ΠΈΠΉ anacron
    cat /etc/anacrontab
    
    
    Бписок Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² systemd
    systemctl list-timers --all
    
    
    Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ crontab Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    crontab -e
    
    
    Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ crontab Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
    crontab -r
    
    
    
    
    Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ случаи
    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ. Cron запускаСт задания Π² минимальной срСдС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PATH, HOME ΠΈ LANG, установлСнныС Π² вашСм .bashrc ΠΈΠ»ΠΈ .profile, нСдоступны. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ явно опрСдСляйтС PATH Π² Π½Π°Ρ‡Π°Π»Π΅ crontab.
    ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ MAILTO управляСт ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π²Ρ‹Π²ΠΎΠ΄Π°. УстановитС MAILTO="" для отбрасывания Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ MAILTO="admin@example.com" для Π΅Π³ΠΎ пСрСнаправлСния Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ адрСс. Π‘Π΅Π· настроСнного MTA Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠΎΠ»Ρ‡Π°Π»ΠΈΠ²Ρ‹Π΅ сбои.
    ΠŸΡ€Π°Π²Π° доступа ΠΊ скриптам ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘ΠΊΡ€ΠΈΠΏΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ с ошибкой ΠΏΠΎΠ΄ cron, Ссли ΠΎΠ½ Π½Π΅ являСтся исполняСмым (chmod +x) ΠΈΠ»ΠΈ Ссли ΠΎΠ½ обращаСтся ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ cron Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.
    ΠŸΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ. Если Π·Π°Π΄Π°Π½ΠΈΠ΅ выполняСтся дольшС своСго ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°, нСсколько экзСмпляров Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ flock для прСдотвращСния этого:
    0 * * * * /usr/bin/flock -n /tmp/myjob.lock /home/user/long-running-job.sh
    Π£Ρ‡Ρ‘Ρ‚ часового пояса. Cron ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ систСмный часовой пояс ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. На сСрвСрах с UTC, установлСнным Π² качСствС систСмных часов β€” Ρ‡Ρ‚ΠΎ являСтся стандартной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π½Π° VPS Π₯остингС ΠΈ Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… сСрвСрах β€” ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ вашС Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ врСмя ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ смСщСниС. НСкоторыС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ cron ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ CRON_TZ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ crontab.
    ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° синтаксиса Crontab. ΠŸΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ записи crontab Π² производствСнной срСдС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ инструмСнта, ΠΊΠ°ΠΊ crontab.guru, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ расписаниС соотвСтствуСт вашим намСрСниям.
    Π–ΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Cron-Π·Π°Π΄Π°Π½ΠΈΠΉ
    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ cron записываСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ Π² syslog. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ послСднюю Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ cron:
    grep CRON /var/log/syslog | tail -50
    Π’ систСмах Π½Π° основС systemd:
    journalctl -u cron --since "1 hour ago"
    Если Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π΅ выполняСтся, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:
    
    Π”Π΅ΠΌΠΎΠ½ cron Π°ΠΊΡ‚ΠΈΠ²Π΅Π½: systemctl status cron (ΠΈΠ»ΠΈ crond Π² систСмах Π½Π° основС RHEL)
    Π‘ΠΊΡ€ΠΈΠΏΡ‚ являСтся исполняСмым ΠΈ ΠΏΡƒΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ
    Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ поля синтаксичСски ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹
    Π’Ρ‹Π²ΠΎΠ΄ Π½Π΅ отбрасываСтся ΠΌΠΎΠ»Ρ‡Π° β€” Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ >> /tmp/job.log 2>&1
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π·Π°Π΄Π°Π½ΠΈΠ΅, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
  • ΠŸΡ€ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ слоТными стСками Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° VPS с cPanel, cPanel прСдоставляСт графичСский интСрфСйс Cron Jobs Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Advanced, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСт Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² crontab ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Задания, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· cPanel, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²ΠΈΠ΄Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ crontab -l ΠΈ Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎ записям, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ: ΠΊΠ°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Cron ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

    Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡΠ Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ
    Личная автоматизация для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ crontab (crontab -e)
    Π—Π°Π΄Π°Ρ‡ΠΈ обслуТивания систСмы (Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ротация Π»ΠΎΠ³ΠΎΠ²)/etc/cron.d/ ΠΈΠ»ΠΈ /etc/crontab
    Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ послС ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ расписанияAnacron (/etc/anacrontab)
    Π—Π°Π΄Π°Ρ‡ΠΈ со слоТными зависимостями ΠΈΠ»ΠΈ упорядочСниСм сСрвисовВаймСры Systemd
    Задания уровня прилоТСния, Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ/etc/cron.d/<package-name>
    ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ срСдыSupervisor + cron ΠΈΠ»ΠΈ Kubernetes CronJob

    ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ список ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ²

    • ЗапуститС crontab -l для Π°ΡƒΠ΄ΠΈΡ‚Π° собствСнных Π·Π°Π΄Π°Π½ΠΈΠΉ; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ шаблон Ρ†ΠΈΠΊΠ»Π° for для Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ сСрвСрС.
    • ВсСгда провСряйтС /etc/crontab, /etc/cron.d/ ΠΈ systemctl list-timers --all β€” crontab -l Π² ΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΡƒ Π΄Π°Ρ‘Ρ‚ Π½Π΅ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ.
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для всСх ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ записСй crontab.
    • УстановитС MAILTO="" ΠΈΠ»ΠΈ явно пСрСнаправляйтС Π²Ρ‹Π²ΠΎΠ΄ для прСдотвращСния ΠΌΠΎΠ»Ρ‡Π°Π»ΠΈΠ²Ρ‹Ρ… сбоСв Π½Π° сСрвСрах Π±Π΅Π· MTA.
    • Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию crontab с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ crontab -l > backup.txt ΠΏΠ΅Ρ€Π΅Π΄ Π»ΡŽΠ±Ρ‹ΠΌ сСансом рСдактирования.
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ flock для прСдотвращСния ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ выполнСния Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ.
    • Π’ систСмах systemd провСряйтС journalctl -u cron, Π° Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° /var/log/syslog.
    • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ выраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ½Π»Π°ΠΉΠ½-тСстСра Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ cron ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π² производствСнной срСдС.
    • Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ UTC ΠΈ мСстный часовой пояс Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… экзСмплярах ΠΈ экзСмплярах VPS Π₯остинга.
    • Для сСрвСров Email Π₯остинга ΠΈΠ»ΠΈ любой инфраструктуры, Π³Π΄Π΅ задания ΡΠ²Π»ΡΡŽΡ‚ΡΡ критичСски Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ, Π²Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ внСшний ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΈΠ½Π³ΠΈ healthcheck) для обнаруТСния ΠΌΠΎΠ»Ρ‡Π°Π»ΠΈΠ²Ρ‹Ρ… сбоСв cron.

    FAQ

    Как вывСсти список всСх cron-Π·Π°Π΄Π°Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° Linux-сСрвСрС?

    Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ /etc/passwd ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ sudo crontab -l -u <user> для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи, подавляя ошибки Β«no crontabΒ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ 2>/dev/null. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ /etc/crontab, /etc/cron.d/ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ systemctl list-timers --all для Π·Π°Ρ…Π²Π°Ρ‚Π° систСмных Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΉ, управляСмых systemd.

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ crontab -l Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, хотя задания Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ?

    Задания, скорСС всСго, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² /etc/crontab, Ρ„Π°ΠΉΠ»Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ /etc/cron.d/ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ systemd β€” Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· crontab -l. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»ΠΈΡ‡Π½Ρ‹ΠΉ crontab Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, хранящийся Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ спула.

    Π’ Ρ‡Ρ‘ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ /etc/crontab ΠΈ /etc/cron.d/?

    Оба ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΡˆΠ΅ΡΡ‚ΠΈΠΏΠΎΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ) ΠΈ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ систСмным Π΄Π΅ΠΌΠΎΠ½ΠΎΠΌ cron. /etc/crontab β€” это Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ систСмного администрирования. /etc/cron.d/ β€” это дирСктория drop-in, ΠΊΡƒΠ΄Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ сСрвисы ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ собствСнныС Ρ„Π°ΠΉΠ»Ρ‹ Π·Π°Π΄Π°Π½ΠΈΠΉ, сохраняя ΠΈΡ… ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ упрощая ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ нСзависимоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅.

    Как ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ запуск Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ экзСмпляров cron-задания?

    ΠžΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ flock -n /tmp/lockfile.lock для получСния Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ эксклюзивной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Если ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ экзСмпляр всё Π΅Ρ‰Ρ‘ выполняСтся, Π½ΠΎΠ²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π±Π΅Π· выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, прСдотвращая ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ Π·Π° рСсурсы ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

    Π“Π΄Π΅ хранятся ΠΆΡƒΡ€Π½Π°Π»Ρ‹ cron-Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ выполняСтся?

    Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм cron записываСт Π² /var/log/syslog (Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠΉΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ grep CRON) ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· journald (journalctl -u cron). Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ >> /tmp/debug.log 2>&1 ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ задания для Π·Π°Ρ…Π²Π°Ρ‚Π° всСго Π²Ρ‹Π²ΠΎΠ΄Π°, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ скрипт являСтся исполняСмым, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΌΠΎΠ½ Π·Π°ΠΏΡƒΡ‰Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ systemctl status cron, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ нСзависимо.