Запланированные задачи
Запланированные задачи Linux
- Выполнить задачу в определенный момент времени в будущем: в, партия
- Периодически запускать задачу: crond
- по команде
Необходимо установить: yum -y install at
[root@localhost ~]# at --help
at: invalid option -- '-'
Usage: at [-V] [-q x] [-f file] [-mMlbv] timespec ...
at [-V] [-q x] [-f file] [-mMlbv] -t time
at -c job ...
atq [-V] [-q x]
at [ -rd ] job ...
atrm [-V] job ...
batch
- Инструкции: во время параметра
- параметр
- -m: Когда указанная задача будет завершена, пользователю будет отправлено письмо, даже если нет стандартного вывода
- -I: псевдоним atq
- -d: псевдоним atrm
- -v: показать время, когда задача будет выполнена
- -c: распечатать содержимое задачи на стандартный вывод
- -V: Показать информацию о версии
- -q: использовать указанную очередь
- -f: читать задачи из указанного файла вместо чтения из стандартного ввода
- -t: отправить задачу для запуска в виде параметра времени
- время
- ЧЧ :: ММ [ГГГГ-ММ-ДД]
- луна, полночь, чаепитие
- завтра
- сейчас + num {минуты, часы, дни, недели}
- atq: просмотр запланированных задач
- atrm 2: Удалить задачу
Заранее запустите atd.service: systemctl start atd
- пакетная команда
Пусть система автоматически выбирает время простоя для выполнения заданных здесь задач
- Примечание по использованию: время пакетного параметра
- параметр
- -f: указать файл задачи, содержащий конкретные инструкции
- -q: указать имя очереди новой задачи
- -m: отправить электронное письмо пользователю после выполнения задачи
- пример
batch
at> echo 1234
at> <EOT>
job 5 at Sun Apr 28 08:49:00 2013
Системные задачи Linux
Система Linux управляется службой crond для планирования задач. В Linux очень много запланированных задач, поэтому эта служба запускается по умолчанию. Кроме того, поскольку пользователи также могут настраивать запланированные задачи, для управления запланированными задачами предоставляется команда crontab.
cat /etc/crontab
SHELL=/bin/bash 指定shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin 系统执行命令的路径
MAILTO=root 任务执行通过邮件发送给root用户
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
0-30 */2 3,6,9 1 root /usr/bin/echo hello
分 时 日 月 周 用户名 任务命令
время
- Конкретное значение: значение в допустимом диапазоне на данный момент времени.
- *: Все значения в пределах допустимого диапазона значений в данный момент времени, что означает «каждые ...»
- Дискретное значение: дискретное значение 1,3,6,9 через запятую.
- Непрерывное значение: через знак минус может быть непрерывное значение 0-30
- Шаг определения: * / 5: означает «каждые 5 ...»
команда crontab
- -l: перечислить все задачи
- -e: редактировать задачу
- -r: удалить все задачи
- -i: интерактивный
- -u: указать пользователя
Вопросы практики
- Установите одноразовую запланированную задачу на выключение системы в 18:00 и просмотр информации о задаче.
at 18:00
at> poweroff
at> <EOT>
atq # 查看任务信息
- Упаковывать и сжимать / etc / passwd / etc / shadow / etc / group / etc / gshadow в file.tar.gz каждую ночь в 24:00
crontab -e -uroot 0 0 * * * tar -czvf file.tar.gz /etc/passwd /etc/shadow /etc/group /etc/gshadow
- Список использования диска каждые пять минут каждый понедельник
crontab -e -uroot */5 * * * 1 df -Th
- Синхронизация времени с Интернет-сервером синхронизации времени pool.ntp.org ежедневно в 8:30
crontab -e -uroot 30 8 * * * ntpdate pool.ntp.org
- Просмотрите запланированные задачи root с помощью команды crontab и перечислите соответствующее содержимое файла в / var / spool / cron с помощью инструментов просмотра файлов.
crontab -l -uroot
cat /var/spool/cron/root