Основные действия с 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