1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
_www.crontab.guru_
```sh
systemctl status cron
crontab --help
crontab -e # настройка для текущего пользователя
crontab -l # настройка для супер пользователя
crontab -r # удалить все задачи
```
**_минута_** **_час_** **_день_** **_месяц_** **_день_недели_** **_/путь/к/исполняемому/файлу_**
**обязательно нужно писать полный путь к команде** **_!_**
**Дата и время указываются с помощью цифр или символа ' * '.**
**интервал указывается «** **7-9** **»**
**несколько раз - «** **5,7,12 »**
**раз в 10 мин - « /10 »**
****@reboot**** **- при загрузке, только один раз;**
****@yearly, @annually**** - раз год;
****@monthly**** - раз в месяц;
****@weekly**** - раз в неделю;
****@daily, @midnight**** - каждый день;
****@hourly**** - каждый час.
команда запуска скрипта раз в час:
`@hourly /usr/local/bin/serve`
Если же вы собрались добавить скрипт в одну из папок, то, как я уже говорил, нужно чтобы его имя было без точек и у него были права на выполнение:
`sudo vi /etc/corn.daily/basckup`
`#!/bin/bash ......`
смотрим лог cron. Иногда он находится в `/var/log/cron`,
а иногда пишется в syslog.
`grep CRON /var/log/syslog`
`sudo run-parts /etc/cron.daily/`
Дальше вы увидите весь вывод, включая вывод скрипта и сможете быстро понять в чем проблема.
Можно еще отправлять результат работы скрипта на почту указав команду MAILTO=user@email.ru
`tail /var/log/syslog`
-получаем "хвост", последние 10 строк лог-файла
```
@hourly rsync -avzhe ssh vlapa@178.20.46.157:/home/vlapa/git/ /home/vlapa/1Tb_r1-a/Backup/_git/
@hourly rsync -avzh /home/vlapa/300Gb/yaDisk/All-reports /home/vlapa/1Tb_r1-a/Backup/
@hourly rsync -avzh /home/vlapa/300Gb/yaDisk/Family /home/vlapa/1Tb_r1-a/Backup/
#@hourly rsync -avzh /home/vlapa/300Gb/yaDisk/_MY /home/vlapa/1Tb_r1-a/Backup/
```
⚙️ **Синтаксис**
*`* * * * * команда
Каждая звезда отвечает за время:
• минуты
• часы
• дата
• месяц
• день недели
`30 2 * * * /home/user/backup.sh
Эта задача будет выполняться каждый день в 2:30.
👀 **Просмотр и редактирование**
• Чтобы редактировать cron-задачи, используйте:
`crontab -e
• Чтобы увидеть текущие:
`crontab -l
✍️ **Логирование cron-задач**
Важно отслеживать выполнение задач. Для этого можно записывать вывод задач в файл:
`* * * * * /path/to/script.sh >> /var/log/cron.log 2>&1
2>&1 — это перенаправление стандартного потока ошибок (stderr) в тот же файл, что и стандартный вывод. То есть любые ошибки скрипта будут также записываться в файл cron.log
|