Использование запланированных задач Linux в командах и cron

Каталог статей

предисловие

Что такое запланированная задача?

Единовременное выполнение расписания в

Введение

запуск службы

грамматика

параметр:

пример

Отправить на работу

этапы отправки

формат выбора времени

пример

просматривать задачи

пример

Просмотр журналов выполнения задач

пример

удалить задачу

пример

Циклическое планирование для выполнения команд 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

Отправить на работу

этапы отправки

  1. Введите команду at, укажите время выполнения задания и нажмите Enter;
  2. В командной строке «at >» введите команду или сценарий оболочки
  3. 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 и сценарии их применения.


Это не просто создать, пожалуйста, поставьте лайк и подпишитесь своими ручонками, расскажите мне в комментариях, если у вас есть комментарии, и учитесь вместе.

Supongo que te gusta

Origin blog.csdn.net/s1429583654/article/details/127725903
Recomendado
Clasificación