MyTetra Share
Делитесь знаниями!
Примеры работы с cron и crontab
Время создания: 11.06.2025 15:53
Текстовые метки: linux, cron, crontab
Раздел: Компьютер - Linux - Bash - Команды и скрипты
Запись: xintrea/mytetra_syncro/master/base/1749646385crpjegacbu/text.html на raw.github.com

Основные действия с cron

ls /etc/cron.d/ директория хранения задач различных пакетов (atop, sysstat)

ls -l /etc/cron.hourly && ls -l /etc/cron.daily && ls -l /etc/cron.weekly && ls -l /etc/cron.monthly директории для скриптов, которые надо выполнять раз в час, день, неделю и месяц

crontab -l просмотр задач

crontab -l | grep -Pv "^$|^#" отобразить только активные задания

crontab -u lifailon -l отобразить задачи пользователя root

crontab -e создать задачу от текущего пользователя

sudo crontab -u root -e создать задачу от пользователя root

crontab -r очистить все задачи


Файл crontab

> cat /etc/crontab

#### # .---------------- минута (0 - 59)

#### # | .------------- час (0 - 23)

#### # | | .---------- мень месяца (1 - 31)

#### # | | | .------- месяц (1 - 12) или jan,feb,mar,apr...

#### # | | | | .---- день недели (0 - 6) (Воскресень 0 или 7) или sun,mon,tue,wed,thu,fri,sat

#### # | | | | |

#### # * * * * * user-name command to be executed

#### 17 * * * * root cd / && run-parts --report /etc/cron.hourly

#### 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

#### 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

#### 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

0,14,29,44 * * * * каждые 15 минут
*/15 * * * * каждые 15 минут

00 23 * * * systemctl restart zabbix-agent && echo $(date): Reboot Zabbix Agent use cron >> /var/log/reboot.log выполнять перезапуск службы каждый день в 23:00 и писать в лог
00 03 * * 6 echo $(date): Reboot Operating System use cron >> /var/log/reboot.log && /sbin/reboot выполнять перезагрузку системы один раз в субботу в 3 часа ночи
@reboot date >> ~/date-reboot.log выполнять один раз после перезагрузки


journalctl -eu cron

cat /var/log/syslog | grep -i cron


#!/bin/bash

addr="google.com"

path="/var/log/icmp-test.log"

date=$(date | awk '{print $3,$2,$4}')

loss=$(ping -c 2 $addr | grep -Ewo "[0-9]+%")

if [ $loss = "100%" ]; then

echo "$date: $addr - unavailable" >> $path

else

echo "$date: $addr - available" >> $path

fi


echo "*/1 * * * * bash /root/google-icmp-test.sh" >> /var/spool/cron/crontabs/root добавить задачу в планироващик на выполнение скрипта каждую минуту

cp /etc/hosts /etc/hosts.bak backup файла

echo "11.11.11.11 google.com" >> /etc/hosts изменить адрес для недоступности хоста

cp /etc/hosts.bak /etc/hosts восстановить файл

cat /var/log/icmp-test.log | grep unavailable отфильтровать лог по unavailable


Так же в этом разделе:
 
MyTetra Share v.0.67
Яндекс индекс цитирования