# Решения Для проверки расписания вы можете использовать сайт https://crontab.guru/, https://cronheatmap.com и аналоги. ### 0. Проверьте наличие команд cron и at в системе. Установите их в случае отсутствия. ```bash sudo apt install cron at ``` ### 1. Выведите документацию crontab и cron. ```bash man crontab man cron ``` ### 2. Создайте cron расписание для выполнения скрипта или к: ``` bash # ┌───────────── minute (0 - 59) # │ ┌───────────── hour (0 - 23) # │ │ ┌───────────── day of the month (1 - 31) # │ │ │ ┌───────────── month (1 - 12) # │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday; # │ │ │ │ │ 7 is also Sunday on some systems) # │ │ │ │ │ # │ │ │ │ │ # * * * * * # 1. дважды в день: в 5 утра и в 5 вечера, 0 5,17 * * * /sbin/script.sh # 2. в 3:15 каждый день, 15 15 * * * /sbin/script.sh # 3. в 8 вечера каждую неделю, 0 20 * * 1 /sbin/script.sh # 4. по понедельникам в 20:00, 0 20 * * 1 /sbin/script.sh # 5. в 20:00 по понедельникам и по субботам, 0 20 * * 1,6 /sbin/script.sh # 6. каждую минуту, * * * * * /sbin/script.sh # 7. каждые 10 минут, */10 * * * * /sbin/script.sh # 8. каждые 15 минут по субботам и понедельникам, */15 * * * 1,6 /sbin/script.sh # 9. каждую минуту в марте, июне, сентябре и декабре, * * * 3,6,9,12 /sbin/script.sh # 10. 20 января в 8 вечера, 0 20 20 1 * /sbin/script.sh # 11. ежедневное выполнение скрипта в 8 вечера каждый второй месяц, 0 20 * */2 * /sbin/script.sh # 12. *в первое воскресенье каждого месяца, 0 0 * * 0 [ $(date +%d) -le 07 ] && /script/script.sh # 13. каждые три часа, 0 */3 * * * /sbin/script.sh # 14. дважды, каждую субботу и понедельник, 0 0 * * 1,6 /sbin/script.sh # 15. *каждые 30 секунд, * * * * * /sbin/script.sh * * * * * sleep 30; /sbin/script.sh # 16. каждый день в летний период, 0 0 * 6,7,8 * /sbin/script.sh # 17. для рассылки поздравлений с новым годом, 0 0 1 1 * /sbin/happy_new_year_mail.sh # 18. ежедневного удаления неиспользуемых пакетов в системе, 0 1 * * * apt autoremove # 19. перезапуска системы в 0 часов 0 минут, 0 0 * * * shutdown -h 0 # 20. для очистки всех попыток сбоя входа в систему ежедневно в 1:00, 0 1 * * * /sbin/clear_auth_errors.sh # 21. ежедневной проверки и загрузки новых системных пакетов, 0 0 * * * apt update # 22. ежедневного обновления пакетов системы, 0 0 * * * apt upgrade -y # 23. ежедневное резервное копирование всех папок пользователей в 5 утра. 0 5 * * * tar -zcf /var/backups/home.tgz /home/ ``` ### 3. Создайте задание в котором отчёты cron будут отправляться вам на внешний почтовый ящик. ``` MAILTO=logs@myoffice.org ``` ### 4. Установите пользовательский сrontab. ``` sudo echo "stud" >> /etc/cron.allow crontab -e ``` ### 5. Настройте выполнение исполняемого файла script.sh из `/usr/sbin/` каждую среду, модифицировав `PATH` в cron задании. ```bash PATH=/opt/cmake/bin:$PATH 0 0 * * 3 /usr/sbin/script.sh ``` ### 6. Пользуясь полномочиями суперпользователя, запретите пользователю mike выполнять команду at. ``` sudo echo "mike" >> /etc/at.deny ``` ### 7. Запланируйте командой at: ``` bash # 1. выполнение скрипта сегодня в 9 часов, at 21:00 script.sh # 2. перезагрузку через 2 часа, sudo at now + 2 hours reboot # 3. выполнение команды через 100 лет. at now + 100 years script.sh ``` # Справка Релевантные файлы: - /etc/cron.allow - /etc/cron.deny - /var/spool/cron/crontabs - /var/spool/cron/atjobs - /var/spool/cron/atspool - /proc/loadavg - /var/run/utmp - /etc/at.allow - /etc/at.deny Релевантные команды: - cron - at - crontab