Подробное объяснение и руководство по использованию команды Crontab (запланированное задание) в Linux.
Подробное объяснение и руководство по использованию команды Crontab (запланированное задание) в Linux.

Введение в Кронтаб:

В Linux используется команда crontab. Команда crontab распространена в Unix и Unix-подобных операционных системах и используется для установки инструкций, которые будут выполняться периодически. Эта команда считывает инструкции со стандартного устройства ввода и сохраняет их в файле «crontab» для последующего чтения и выполнения. Слово происходит от греческого хронос (χρ?νο?), что означает время. Обычно инструкции, хранящиеся в crontab, активируются процессом-демоном Crond, который часто работает в фоновом режиме и каждую минуту проверяет, есть ли запланированные задания, которые необходимо выполнить. Такие задания обычно называются заданиями cron. После установки операционной системы эта команда планирования задач будет запущена по умолчанию. Команда crond будет периодически проверять, есть ли работа, которую нужно выполнить, каждую минуту. Если есть работа, которую нужно выполнить, она будет выполнена автоматически.

Примечание. Вновь созданная задача cron не будет выполнена немедленно. Прежде чем она сможет быть выполнена, пройдет не менее 2 минут. Конечно, вы можете перезапустить cron, чтобы выполнить ее немедленно.

1. Используйте команду yum для установки Crontab:

Язык кода:javascript
копировать
yum install vixie-cron 
yum install crontabs
Примечание: пакет программного обеспечения vixie-cron является основной программой cron;
Пакет программного обеспечения crontabs используется для установки, удаления или получения списка драйверов. cron программа формы демона.
Cron — это встроенная служба «Служить» в Linux, но она не запускается автоматически. Для запуска и завершения этой службы можно использовать следующие методы:
/sbin/service crond start #запускать Служить
/sbin/service crond stop #закрытие Служить
/sbin/service crond restart #Перезапуск Служить
/sbin/service crond reload #Обновить конфигурацию

2. Проверьте статус Crontab:

Язык кода:javascript
копировать
service crond status
ntsysv #Проверьте, настроен ли запуск crontabСлужить при загрузке
chkconfig –level 35 crond on #Добавляем автоматический запуск при загрузке

3. Добавьте запланированные задачи:

Язык кода:javascript
копировать
crontab -e #Изменить режим задачи cron
i #Текстовым редактором по умолчанию является vim. Нажмите клавишу с буквой i, чтобы добавить задачу cron.
30 3 * * * /usr/local/etc/rc.d/lighttpd restart #Вводим код команды. Значение этой команды: 03:30 каждый день Перезапустить апач
ESC #Нажмите клавишу ESC, чтобы выйти из режима редактирования.
:wq #Введите: wq для сохранения
service crond restart #restartcrontabСлужить

4. Просмотрите список задач:

Язык кода:javascript
копировать
crontab -l

5. Команды, связанные с Crontab:

Язык кода:javascript
копировать
(1) язык  Закон:
crontab [-u <Имя пользователя>][Конфигурационный файл] или crontab { -l | -r | -e }
-u   #<Имя пользователя> относится к обозначению настройки<Имя пользователя>иззапланированные задачи, предполагается, что у вас должны быть ее разрешения (например, root) может указывать расписания других людей. Если не используется -u user , это означает установку собственных запланированных задачи。
-l  #Список запланированных пользователем настройки задачи.
-r  #Удалить запланированные этого пользователя настройки задачи.
-e  #Редактировать запланированные этого пользователя настройки задачи.

(2) Формат времени команды :
*     *    *   *   *  command
точка   час   день   луна  неделя   Заказ
Столбец 1 представляет часы с 1 по 59. Те, кто использует *или каждую точку часов */1 означает
Столбец 2 представляет малые часы 1–23 (0 соответствует 0 баллам).
В столбце 3 указаны периоды дней с 1 по 31.
В столбце 4 указаны части луны с 1 по 12.
В пятом столбце указан день недели от 0 до 6 (0 означает воскресенье).
Нет.6столбец для запускаиз Заказ

(3)НекоторыйCrontabзапланированные пример задачи:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart  #каждуюночь21:30 Перезапустить апач
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart  #Каждыйлуна1、10、22деньиз4 : 45Перезапустить апач
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart  #Каждыйнеделяшесть、неделяденьиз1 : 10Перезапустить апач
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart  #каждый день18 : с 00 до 23 : 00Измежду Каждыйразделенный30точкаколокол Перезапустить апач
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart  #каждуюсуббота11 : 00 pmПерезапустить апач
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart  #ночь11до утра7между точками,Каждыйразделенныйодин Маленькийчас Перезапустить апач
* */1 * * * /usr/local/etc/rc.d/lighttpd restart  #Каждыйодин Маленькийчас Перезапустить апач
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart  #Каждыйлунаиз4Количество и Каждыйнеделя По прибытиинеделятрииз11точка Перезапустить апач
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart  #одинлунаодин Числоиз4точка Перезапустить апач

*/30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org  #Каждый半Маленькийчассинхронныйодин Внизчасмежду
0 */2 * * * /sbin/service httpd restart  #Каждый两个Маленькийчас Перезапускодин Второсортныйapache 
50 7 * * * /sbin/service sshd start  #Open sshСлужить в 7:50 каждый день 
50 22 * * * /sbin/service sshd stop  #Закрытие в 22:50 каждый день sshСлужить 
0 0 1,15 * * fsck /home  #Каждыйлуна1Хаохэ15№ проверить/home диск 
1 * * * * /home/bruce/backup  #Каждый Маленькийчасиз Нет.одинточкаосуществлять /home/bruce/сохраните резервную копию этого файла 
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;  #Каждыйнеделяодинкнеделяпять3точкаколокол,в каталоге /home,Найти файлы с именем *.xxx,иудалить4дней назадиздокумент。
30 6 */10 * * ls  #Каждыйлунаиз1、11、21、31деньдаиз6:30осуществлятьодин ВторосортныйlsЗаказ

End...

6. Некоторые скрипты не могут быть выполнены:

Если мы используем crontab для регулярного выполнения сценария, он не может быть выполнен, но если мы напрямую используем команду (например: ./test.sh), она может выполняться нормально. Это происходит главным образом потому, что переменные среды не могут быть прочитаны.

Решение:

(1) Все команды необходимо записывать в форме абсолютного пути, например: /usr/local/bin/docker.

(2) Используйте следующий код в начале сценария оболочки:

Язык кода:javascript
копировать
#!/bin/sh

. /etc/profile
. ~/.bash_profile

(3) Добавьте переменные среды в /etc/crontab и добавьте команду ./etc/profile;/bin/sh перед исполняемой командой, чтобы переменные среды вступили в силу, например:

Язык кода:javascript
копировать
20 03 * * * . /etc/profile;/bin/sh /var/www/wwwroot/test.sh

7. Crontab планирует задачи по умолчанию:

cron по умолчанию настроен на планирование задач: ежечасно, ежедневно, еженедельно, ежечасно, а файл конфигурации по умолчанию — /etc/anacrontab.

Просто поместите скрипты, которые необходимо выполнить, в соответствующие каталоги. Каталоги:

Язык кода:javascript
копировать
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/ect/cron.mouthly

8. Уделите внимание очистке логов почты пользователей системы:

После того как выполнение каждой задачи запланировано, система отправит выходную информацию о задаче текущему пользователю системы по электронной почте. Со временем информация журнала станет очень большой и может повлиять на нормальную работу системы. быть перенаправлены. Обработка очень важна.

Например, вы можете установить следующую форму в файле crontab, чтобы игнорировать вывод журнала:

Язык кода:javascript
копировать
0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1

“/dev/null 2>&1”Указывает, что стандартный вывод сначала перенаправляется на/dev/null,Затем перенаправьте стандартную ошибку на стандартный вывод.,Поскольку стандартный вывод был перенаправлен в /dev/null,Таким образом, стандартная ошибка также перенаправляется на /dev/null.,такдень Проблема с выводом журнала решена。

9.Путь журнала Crontab:

Язык кода:javascript
копировать
ll /var/log/cron* #/var/log/cron будет записывать только то, выполняются ли определенные запланированные сценарии, но является ли конкретное выполнение правильным, а также некоторую информацию во время выполнения сценария, Linux будет каждый раз отправлять пользователю электронные письма.

10. Инструмент онлайн-проверки команд Crontab:

https://tool.lu/crontab


Ссылка на эту статью:https://cloud.tencent.com/developer/article/2359335

Оригинальная статья Тианле, при перепечатке указывайте источник!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose