Каталог статей
Что такое запланированная задача?
Единовременное выполнение расписания в
Просмотр журналов выполнения задач
Циклическое планирование для выполнения команд crontab
Проверяем сервис (запущен ли он)
Форматирование грамматики в редакторе
Интерпретация информации о задаче, связанной с кодом
предисловие
Я изучил управление программным обеспечением в Linux раньше.Эта статья начнет изучение запланированных задач в Linux.В этой статье я узнаю о введении и использовании одноразового планирования выполнения команды at и циклического планирования выполнения команды команда cron в Linux Давайте начнем Узнайте о запланированных задачах Linux.
Что такое запланированная задача?
Планирование задач является общей функцией системы.С помощью функции планирования задач можно запланировать запуск любого скрипта, программы или документа в определенное наиболее удобное время. Планировщик задач запускается каждый раз при запуске системы и работает в фоновом режиме. Когда нам нужно регулярно выполнять некоторые повторяющиеся события на сервере, мы можем использовать запланированную программу задач для запуска подготовленных сценариев , пакетных папок, программ или команд и запускать их в определенное время.В настоящее время наиболее важной целью является поддержка регулярно обновлять данные. .
Единовременное выполнение расписания в
Введение
Некоторые сценарии нам нужно выполнить только один раз, и мы используем команду at для завершения задачи после выполнения, а журнал выполнения задачи возвращается на компьютер в виде электронного письма.
запуск службы
Все Linux-системы предоставляют эту функцию по умолчанию. В redhat по умолчанию atd запускается вместе с запуском системы.
[root@localhost ~]# ps -ef |grep atd
root 1284 1 0 06:25 ? 00:00:00 /usr/sbin/atd -f
root 12970 12205 0 10:51 pts/0 00:00:00 grep --color=auto atd
您在 /var/spool/mail/root 中有新邮件
[root@localhost ~]# systemctl status atd.service
● atd.service - Job spooling tools
Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2022-11-02 15:48:16 CST; 4 days ago
Main PID: 1284 (atd)
Tasks: 1
CGroup: /system.slice/atd.service
└─1284 /usr/sbin/atd -f
11月 02 15:48:16 localhost.localdomain systemd[1]: Started Job spooling tools.
11月 07 10:40:00 localhost.localdomain atd[12686]: Starting job 1 (a0000101a82400)...)
11月 07 10:44:00 localhost.localdomain atd[12858]: Starting job 2 (a0000201a82404)...)
Hint: Some lines were ellipsized, use -l to show in full.
грамматика
at -参数 <TIMESPEC>
параметр:
- -m Когда указанная задача выполнена, отправить письмо пользователю, даже если нет стандартного вывода
- Псевдоним для -I atq
- Псевдоним для -d atrm
- -v отображает время выполнения задачи
- -c вывести содержимое задачи на стандартный вывод
- -V отображать информацию о версии
- -q<очередь> использовать указанную очередь
- -f <файл> читать задачи из указанного файла вместо стандартного ввода
- -t<параметр времени> Отправить задачу для выполнения в виде параметра времени
пример
[root@localhost ~]# at -v
Garbled time
[root@localhost ~]# at -V
at version 3.1.13
Отправить на работу
этапы отправки
- Введите команду at, укажите время выполнения задания и нажмите Enter;
- В командной строке «at >» введите команду или сценарий оболочки
- Ctrl+D Отправить на работу.
Примечание. Если вы хотите выполнить несколько строк команд, после ввода команды нажмите Enter и введите следующую, пока не нажмете Ctrl+D, чтобы отправить задачу.
формат выбора времени
now +5min // добавить 5 минут к текущему времени
Время завтра (время чаепития 16:00) // выполнить завтра в определенное время
17:00 3 августа 2029 г. // казнен в 17:00 3 августа 2029 г.
4:00 2019-11-27 //выполнено в 4:00 27 ноября 2019 г.
пример
[root@localhost ~]# date
2022年 11月 07日 星期一 11:00:00 CST
[root@localhost ~]# at now +5min
at> ls
at> <EOT>
job 3 at Mon Nov 7 11:05:00 2022
[root@localhost ~]# at teatime tomorrow
at> ls /test
at> <EOT>
job 4 at Tue Nov 8 16:00:00 2022
[root@localhost ~]# at 8:00 tomorrow
at> ls /test
at> <EOT>
job 5 at Tue Nov 8 08:00:00 2022
at> useradd sure2023
at> <EOT>
job 6 at Thu Aug 3 17:00:00 2023
[root@localhost ~]# at 5:20 2023-5-20
at> touch /test/love.txt
at> echo "I Love You">> /test/love.txt
at> <EOT>
job 8 at Sat May 20 05:20:00 2023
просматривать задачи
Команда: atq
пример
[root@localhost ~]# date
2022年 11月 07日 星期一 11:08:25 CST
[root@localhost ~]# atq
4 Tue Nov 8 16:00:00 2022 a root
5 Tue Nov 8 08:00:00 2022 a root
6 Thu Aug 3 17:00:00 2023 a root
8 Sat May 20 05:20:00 2023 a root
Время прошло 11:05, значит задание №3 выполнено и не может быть найдено в списке планов.
Просмотр журналов выполнения задач
Журнал выполнения задач существует в виде почты и находится в /var/spool/mail/root.
вид через мали
пример
[root@localhost ~]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 3 messages
> 1 root Mon Nov 7 10:40 15/514 "Output from your job "
2 root Mon Nov 7 10:44 24/601 "Output from your job "
3 root Mon Nov 7 11:05 15/516 "Output from your job "
& 2
Message 2:
From [email protected] Mon Nov 7 10:44:01 2022
Return-Path: <[email protected]>
X-Original-To: root
Delivered-To: [email protected]
Subject: Output from your job 2
To: [email protected]
Date: Mon, 7 Nov 2022 10:44:01 +0800 (CST)
From: [email protected] (root)
Status: RO
anaconda-ks.cfg
initial-setup-ks.cfg
公共
模板
视频
图片
文档
下载
音乐
桌面
& q
Held 3 messages in /var/spool/mail/root
удалить задачу
Команда: номер задачи atrm или имя файла atrm
Или используйте псевдоним atrm: at -d
пример
[root@localhost ~]# atq
4 Tue Nov 8 16:00:00 2022 a root
5 Tue Nov 8 08:00:00 2022 a root
6 Thu Aug 3 17:00:00 2023 a root
8 Sat May 20 05:20:00 2023 a root
[root@localhost ~]# atrm 4
[root@localhost ~]# atq
5 Tue Nov 8 08:00:00 2022 a root
6 Thu Aug 3 17:00:00 2023 a root
8 Sat May 20 05:20:00 2023 a root
Миссия №4 удалена.
Циклическое планирование для выполнения команд crontab
Введение
Понятия cron и crontab неразделимы;
crontab — это команда, обычно встречающаяся в операционных системах Unix и Linux;
Используется для установки периодически выполняемых инструкций;
Эта команда считывает инструкции со стандартного устройства ввода и сохраняет их в файле «crontab» для последующего чтения и выполнения.
Место хранения запланированных задач: /var/spool/cron/
Проверяем сервис (запущен ли он)
[root@localhost ~]# ps -ef |grep cron
root 1288 1 0 06:25 ? 00:00:00 /usr/sbin/crond -n
root 16413 12205 0 11:23 pts/0 00:00:00 grep --color=auto cron
[root@localhost ~]# systemctl status crond.service
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2022-11-02 15:48:16 CST; 4 days ago
Main PID: 1288 (crond)
Tasks: 1
CGroup: /system.slice/crond.service
└─1288 /usr/sbin/crond -n
11月 02 15:48:16 localhost.localdomain systemd[1]: Started Command Scheduler.
11月 02 15:48:16 localhost.localdomain crond[1288]: (CRON) INFO (RANDOM_DELAY will...)
11月 02 15:48:18 localhost.localdomain crond[1288]: (CRON) INFO (running with inot...)
Hint: Some lines were ellipsized, use -l to show in full.
Если служба не запущена, просто используйте команду systemctl start, чтобы запустить имя службы.Программа cron является основой для выполнения запланированной задачи.
создать план
Команда: crontab -e //Редактировать текущего пользователя, кроме своего пользователя и root, другие пользователи не могут его найти.
Форматирование грамматики в редакторе
* * * * * (представляющее время) команда
минута час день месяц неделя
минимальный диапазон: 1---59
часов диапазон: 1---23-
дневный диапазон: 1---31-
месячный диапазон: 1---12-
недельный диапазон: 0---6 (воскресенье=0)Команда с разделением времени день-месяц-неделя или программа-скрипт
Оставьте часть, разделенную пробелом, и * означает, что символ станции должен иметь *, даже если там нет содержимого, которое нужно установить.
пример
[root@localhost ~]# crontab -e
*/5 * * * * echo "hello ">> /test/hello.txt
0 2 1,4,6 * * ls /
0 2 5-9 * * ls /
0 * * * * ls /
0 2 * * * ls /
0 2 14 * * ls /
20 5 20 5 * echo "i love you" >> /test/love.txt
0 2 * * 5 ls /
0 2 2 6 5 ls /
Интерпретация информации о задаче, связанной с кодом
*/5 * * * * echo "hello">> /test/hello.txt //Выполнять каждые пять минут
0 2 1,4,6 * * ls //1, 4, 6 числа каждого месяца Выполнять один раз в 2: 00
0 2 5-9 * * ls // Выполнять один раз в 2:00 с 5 по 9 число каждого месяца
0 * * * * ls // Выполнять один раз в 0-ю минуту каждого часа
0 2 * * * ls / / Выполнять один раз в 2:00 каждый день
0 2 14 * * ls // Выполнять один раз в 2:00 14-го числа каждого месяца
20 5 20 5 * echo "i love you" >> /test/ love.txt // Выполнять один раз в 5:20 20 мая каждого года
0 2 * * 5 ls // Выполнять один раз в 2:00 в пятницу каждого месяца
0 2 2 6 5 ls // В июне каждого года Выполнять в 2:00 2-го и в 2:00 в пятницу в июне каждого года
план запроса
Команда: кронтаб -л
Администраторы могут использовать -u имя пользователя для управления запланированными задачами других пользователей.
Команда просмотра журнала выполнения плана: mail
[root@localhost ~]# crontab -l
*/5 * * * * echo "hello ">> /test/hello.txt
0 2 1,4,6 * * ls /
0 2 5-9 * * ls /
0 * * * * ls /
0 2 * * * ls /
0 2 14 * * ls /
20 5 20 5 * echo "i love you" >> /test/love.txt
0 2 * * 5 ls /
0 2 2 6 5 ls /
您在 /var/spool/mail/root 中有邮件
Каждые пять минут hello будет автоматически записываться в hello.txt, указывая на то, что план задач установлен успешно.В общем, мы будем использовать операцию циклического выполнения задач в качестве резервной копии в производственной среде.
удалить план
Команда: crontab -r удаляет план текущего пользователя.
[root@localhost ~]# crontab -r
[root@localhost ~]# crontab -l
no crontab for root
Подведем итог
При резервном копировании данных мы обычно используем команду crontab. Когда нам нужно выполнить ее только один раз в указанное время, мы используем команду at для ее завершения. В этой статье мы разберемся с управлением планом задач в Linux и научимся использовать команды at и crontab и сценарии их применения.
Это не просто создать, пожалуйста, поставьте лайк и подпишитесь своими ручонками, расскажите мне в комментариях, если у вас есть комментарии, и учитесь вместе.