Ротация логов в linux и freebsd с помощью logrotate

Использование cronbase

Код Системный crontab по умолчанию

*/15 * * * *     test -x /usr/sbin/run-crons && /usr/sbin/run-crons
0  *  * * *      rm -f /var/spool/cron/lastrun/cron.hourly
0  3  * * *      rm -f /var/spool/cron/lastrun/cron.daily
15 4  * * 6      rm -f /var/spool/cron/lastrun/cron.weekly
30 5  1 * *      rm -f /var/spool/cron/lastrun/cron.monthly

Чтобы избежать углубления в излишние подробности, предположим, что эти команды будут фактически запускать ваши сценарии каждый час, день, неделю и месяц. Этот метод планирования задач cron имеет несколько важных преимуществ:

  • они будут запускаться даже когда компьютер был выключен, в то время, когда им было необходимо выполниться;
  • облегчается работа сопроводителей пакета по размещению сценариев в тех хорошо определенных местах;
  • администратор точно знаете где хранятся задачи cron и crontab, что делает легким процесс создания резервных копий и восстановления этой части системы.

ЗаметкаИ снова, полезно отметить, что vixie cron, cronie и bcron автоматически считывают содержимое файла /etc/crontab, в то время как dcron и fcron нет. Пожалуйста прочитайте раздел , чтобы изучить это подробнее.

Что такое файл Crontab

Crontab (таблица cron) представляет собой текстовый файл, который определяет расписание заданий cron. Существует два типа файлов crontab. Общесистемные файлы crontab и отдельные пользовательские файлы crontab.

Файлы crontab пользователей хранятся под именем пользователя, и их расположение зависит от операционной системы. В системах на базе Red Hat, таких как CentOS, файлы crontab хранятся в каталоге, а в Debian и Ubuntu — в каталоге.

Хотя вы можете редактировать пользовательские файлы crontab вручную, рекомендуется использовать команду.

и файлы внутри каталога являются общесистемными файлами crontab, которые могут редактировать только системные администраторы.

В большинстве дистрибутивов Linux вы также можете поместить скрипты в каталоги, и скрипты будут выполняться каждый .

Синтаксис Crontab и операторы

Каждая строка в пользовательском файле crontab содержит шесть полей, разделенных пробелом, за которым следует команда, которую нужно выполнить.

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

  • Оператор звездочки означает любое значение или всегда. Если у вас есть символ звездочки в поле Час, это означает, что задание будет выполняться каждый час.
  • Оператор запятой позволяет указать список значений для повторения. Например, если у вас есть поле «Час», задание будет выполняться в 1:00, 3:00 и 5:00.
  • Оператор дефиса позволяет указать диапазон значений. Если у вас есть поле «День недели», задание будет запускаться каждый рабочий день (с понедельника по пятницу).
  • Оператор косой черты позволяет указать значения, которые будут повторяться в течение определенного интервала между ними. Например, если у вас есть поле «Час», это означает, что действие будет выполняться каждые четыре часа. Это то же самое, что указать . Вместо звездочки перед оператором косой черты вы также можете использовать диапазон значений, то же самое, что и .

Общесистемные файлы Crontab

Синтаксис общесистемных файлов crontab немного отличается от пользовательских crontabs. Он содержит дополнительное обязательное поле пользователя, которое указывает, какой пользователь будет запускать задание cron.

Предопределенные макросы

Существует несколько специальных макросов расписания Cron, используемых для определения общих интервалов. Вы можете использовать эти ярлыки вместо указания даты в пять столбцов.

  • (или ) — запускать задание один раз в год в полночь (12:00) 1 января. Эквивалент .
  • — запускать указанное задание один раз в месяц в полночь первого дня месяца. Эквивалент .
  • — запускать указанное задание один раз в неделю в полночь воскресенья. Эквивалент .
  • — запускать указанное задание один раз в день в полночь. Эквивалент .
  • — запускать указанное задание один раз в час в начале часа. Эквивалент .
  • — Запустите указанное задание при запуске системы (время загрузки).

Managing Crontabs

Once you’ve settled on a schedule and you know the job you want to run, you’ll need to put it somewhere your daemon will be able to read it.

As mentioned previously, a crontab is a special file that holds the schedule of jobs cron will run. However, these are not intended to be edited directly. Instead, it’s recommended that you use the command. This allows you to edit your user profile’s crontab without changing your privileges with . The command will also let you know if you have syntax errors in the crontab, while editing it directly will not.

You can edit your crontab with the following command:

This will open up your crontab in your user profile’s default text editor.

Note: On new CentOS 8 servers, the command will open up your user’s crontab with by default. is an extremely powerful and flexible text editor, but it can feel somewhat obtuse for users who lack experience with it.

If you’d like to use a more approachable text editor as your default crontab editor, you could install and configure as such.

To do so, install with :

When prompted, press and then to confirm that you want to install .

To set as your user profile’s default visual editor, open up the file for editing. Now that you’ve installed it, you can do so with :

At the bottom of the file, add the following line:

~/.bash_profile

This sets the environment variable to . is a Unix environment variable that many programs — including crontab — invoke to edit a file. After adding this line, save and close the file by pressing , , then .

Then reload so the shell picks up the new change:

Once in the editor, you can input your schedule with each job on a new line. Otherwise, you can save and close the crontab for now. If you opened your crontab with , the default CentOS 8 text editor, you can do so by pressing to make sure you’re in ’s command mode, then type and press .

Please note that, on Linux systems, there is another crontab stored under the directory. This is a system-wide crontab that has an additional field for which user profile each cron job should be run under. This tutorial focuses on user-specific crontabs, but if you wanted to edit the system-wide crontab, you could do so with the following command:

If you’d like to view the contents of your crontab, but not edit it, you can use the following command:

You can erase your crontab with the following command:

Warning: The following command will not ask you to confirm that you want to erase your crontab. Only run it if you are certain that you want to erase it.

This command will delete the user’s crontab immediately. However, you can include the flag to have the command prompt you to confirm that you actually want to delete the user’s crontab:

When prompted, you must enter to delete the crontab or to cancel the deletion.

Crontab Ограничения

Системные администраторы могут контролировать , какие пользователи имеют доступ к команде при помощи функции и файлы. Файлы состоят из списка имен пользователей, по одному имени пользователя в строке.

По умолчанию только файл существует и является пустым, что означает, что все пользователи могут использовать команду crontab. Если вы хотите запретить доступ к командам crontab конкретному пользователю, добавьте имя пользователя в этот файл.

Если файл существует, только пользователи, перечисленные в этом файле, могут использовать команду.

Если ни один из этих файлов не существует, команду могут использовать только пользователи с правами администратора .

Работа с файловой системой: навигация, создание-перемещение-удаление файлов, ссылки

Основные команды, используемые для навигации по файловой системе из окна терминала, создание, перемещение и удаление файлов и каталогов:

В ОС Linux существует два вида ссылок.

Жесткие ссылки привязываются к иноду, таким образом, файл присутствует в системе под несколькими разными именами. Файл существует до тех пор, пока с его инодом связано хотя бы одно имя. Понятия «жёсткая ссылка на файл» и «имя файла» являются синонимами.

Жесткие ссылки могут быть только на файлы, не на директории. Также нельзя создать жесткую ссылку на файл в другой файловой системе (у каждой ФС свой набор инодов).

Cимволические ссылки (или симлинки) — специальный вид файла, который ссылается на другой файл по имени, а не напрямую на инод. Симлинки не предохраняют файл от удаления. Если файл удалить, то симлинк на него станет нерабочим (или битым).

Симлинки создаются командой ln с опцией ‘-s’:

При работе с большим количеством файлов бывает удобно использовать маски — т.н. wildcards.

Wildcard «*» соответствует нулю или большему количеству символов:

Wildcard «?» заменяет один любой символ:

Шаблон «[]» позволяет явно указать набор символов — будут найдеты совпадения, содержащие один из указанных в скобках символов. Также в можно указать диапазон символов (для этого используется символ –/дефис) или несколько диапазонов подряд, тогда шаблон будет совпадать с одним любым символом из этого диапазона:

Как работает Logrotate?

Утилита Logrotate предназначена для автоматизации обработки журналов. Она может выполнять с ними необходимые действия в зависимости от определенных условий и правил соответствия. Например, можно сжимать журналы в архив или отправлять на другой сервер когда они достигают определенного размера, возраста, или других параметров.

Проверку условий можно настроить ежедневно, еженедельно или ежемесячно. Это позволяет создать схему ротации логов, удобную именно для вас и вашего сервера. Также ротация логов может быть полезна на домашнем компьютере, но здесь она не так важна как на серверах, где только в логи Apache могут записываться до сотен тысяч строк ежедневно.

Встречается в статьях

Инструкции:

  1. Настройка кластера Ceph на Linux CentOS 7
  2. Инструкция по установке и использованию GLPI на Linux CentOS
  3. Как установить и настроить iRedMail на Linux CentOS
  4. Настройка почтового сервера iRedMail на Ubuntu
  5. Как настроить Freeradius для Active Directory и MySQL
  6. Как настроить OpenVPN с аутентификацией через LDAP
  7. Настройка почтового сервера Postfix для массовой рассылки сообщений
  8. Как настроить почту для корпоративной среды на CentOS 8
  9. Как настроить почту для корпоративной среды на Ubuntu Server
  10. Как настроить samba4 на FreeBSD 10
  11. Как установить и использовать OpenVZ на CentOS
  12. Установка и настройка отказоустойчивого кластера Pacemaker
  13. Как настроить почту на базе Postfix для корпоративной среды
  14. Настройка синхронизации на CentOS и Ubuntu с Rsync Server
  15. Установка и настройка файлового сервера Samba на CentOS 8
  16. Установка и настройка файлового сервера Samba на Ubuntu
  17. Установка и настройка puppet на CentOS
  18. Установка Nginx + PHP + MySQL на Astra Linux
  19. Установка веб-сервера Apache на FreeBSD

Мини-инструкции:

  1. Как сделать резервную копию базы MySQL
  2. Как найти файл в Linux
  3. Как настроить ротацию логов во FreeBSD
  4. Как пользоваться командой systemctl
  5. Получение бесплатного сертификата Lets Encrypt
  6. Как настроить автоматическую чистку логов в системах UNIX
  7. Как настроить систему безопасности с SELinux в CentOS
  8. Как создать резервную копию PostgreSQL и восстановиться из нее
  9. Установка и настройка OwnCloud на CentOS 7 или 8
  10. Установка и настройка Pflogsumm для получения почтовой статистики
  11. Настройка сервера синхронизации времени NTP на Linux Ubuntu
  12. Как использовать резервные копии iRedMail для восстановления или переноса сервера
  13. Как работать с менеджером рассылки писем PHPLIST
  14. Установка и настройка своего локального репозитория CentOS
  15. Сбор писем от почтового провайдера в Dovecot на локальный сервер
  16. Настройка rsyslog для хранения логов на удаленном сервере Linux
  17. Установка и настройка CRM Битрикс24 от 1С на Linux CentOS
  18. Настройка мониторинга RAID LSI MegaRaid на Linux с помощью Zabbix
  19. Установка и настройка SARG на CentOS для анализа логов прокси-сервера SQUID
  20. Установка и настройка сервера Rocket.Chat на Ubuntu
  21. Отправка почты из Битрикс24 без попадания в СПАМ
  22. Настройка сервера синхронизации времени NTP на Linux CentOS
  23. Шпаргалка по работе с системой управления конфигурациями Ansible

Примеры скриптов:

  1. Создание резервных копий баз данных MySQL или MariaDB
  2. Пример скрипта на Python для мониторинга состояния репликации MariaDB / MySQL
  3. Написание простого скрипта на Python для проверки работы веб-сайта

Установка cron

Почти все дистрибутивы Linux имеют ту или иную форму cron, установленную по умолчанию. Но если вы используете компьютер на базе CentOS, на котором не установлен cron, вы можете установить его с помощью .

Перед установкой cron на компьютер с CentOS обновите локальный индекс пакетов компьютера:

Затем выполните установку демона cron с помощью следующей команды:

Эта команда будет запрашивать подтверждение установки пакета и его зависимостей. Подтвердите действие, нажав , а затем .

В результате cron будет установлен в вашей системе, но вам нужно будет запустить демон вручную. Также необходимо убедиться, что для него настроен автоматический запуск при загрузке сервера. Вы можете выполнить оба этих действия с помощью команды .

Чтобы запустить демон cron, воспользуйтесь следующей командой:

Чтобы настроить запуск cron при загрузке сервера, введите:

После этого cron будет установлен в системе, а вы сможете начать составлять расписание задач.

Что такое файл Crontab

Crontab (таблица cron) — это текстовый файл, определяющий расписание заданий cron. Есть два типа файлов crontab. Общесистемные файлы crontab и файлы crontab отдельных пользователей.

Файлы crontab пользователей именуются в соответствии с именем пользователя, а их расположение зависит от операционной системы. В дистрибутивах на основе Red Hat, таких как CentOS, файлы crontab хранятся в каталоге , а в Debian и Ubuntu файлы хранятся в каталоге .

Хотя вы можете редактировать пользовательские файлы crontab вручную, рекомендуется использовать команду .

Файл и сценарии в каталоге являются общесистемными файлами crontab, которые могут редактировать только системные администраторы.

В большинстве дистрибутивов Linux вы также можете помещать скрипты в каталоги , и эти скрипты будут выполняться каждый .

Синтаксис и операторы Crontab

Каждая строка в пользовательском файле crontab содержит шесть полей, разделенных пробелом, за которым следует команда, которую нужно запустить.

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

  • — Оператор звездочка означает любое значение или всегда. Если у вас есть символ звездочки в поле «Час», это означает, что задача будет выполняться каждый час.
  • — Оператор запятая позволяет указать список значений для повторения. Например, если в поле «Час» указано , задача будет выполняться в 1, 3 и 5 утра.
  • — Оператор дефиса позволяет указать диапазон значений. Если в поле «День недели» указано , задача будет выполняться каждый будний день (с понедельника по пятницу).
  • — Оператор косой черты позволяет указать значения, которые будут повторяться через определенный интервал между ними. Например, если в поле «Час» стоит , это означает, что действие будет выполняться каждые четыре часа. Это то же самое, что указать . Вместо звездочки перед оператором косой черты вы также можете использовать диапазон значений, означает то же, что и .

Общесистемные файлы Crontab

Синтаксис общесистемных файлов crontab немного отличается от пользовательских файлов crontab. Он содержит дополнительное обязательное пользовательское поле, в котором указывается, какой пользователь будет запускать задание cron.

Предопределенные макросы

Есть несколько специальных макросов расписания Cron, используемых для определения общих интервалов. Вы можете использовать эти ярлыки вместо указания даты из пяти столбцов.

  • (или ) — запускать указанную задачу один раз в год в полночь (12:00) 1 января. Эквивалентно .
  • — запускать указанную задачу один раз в месяц в полночь первого числа месяца. Эквивалентно .
  • — запускать указанную задачу один раз в неделю в полночь в воскресенье. Эквивалентно .
  • — запускать указанную задачу один раз в сутки в полночь. Эквивалентно .
  • — запускать указанную задачу один раз в час в начале часа. Эквивалентно .
  • — запускать указанную задачу при старте системы (время загрузки).

Ротация лог-файлов

Со временем журналы становятся больше, поскольку в них появляется новая информация. Это создает потенциальную проблему производительности. Кроме того, управление файлами становится затруднительным.

Linux использует понятие «ротации» журналов вместо их очистки или удаления. При ротации создается новый каталог, а старый переименуется и при необходимости сжимается. Таким образом, журналы имеют несколько старых версий. Эти файлы будут возвращаться в течение определенного периода времени в виде так называемых backlog-ов. Как только будет получено определенное количество backlog-ов, новая ротация удалит самый старый журнал.

Ротация выполняется при помощи утилиты «logrotate».

Конфигурационный файл logrotate

Как и rsyslog, logrotate зависит от конфигурационного файла по имени logrotate.conf, который находится в /etc.

Вот что находится в данном файле на Debian:

По умолчанию журналы ротируются еженедельно, оставляя 4 backlog-а. При запуске программы создается новый пустой журнал, а старые при необходимости будут сжаты.

Файлы wtmp и btmp являются исключениями. wtmp отслеживает вход в систему, а btmp содержит информацию о неудавшихся попытках входа. Эти журнальные файлы ротируются каждый месяц, и ошибки не возвращаются, если можно найти один из предыдущих файлов wtmp или btmp.

Пользовательские конфигурации ротации журналов содержатся в каталоге «etc/logrotate.d». также они включены в logrotate.conf с помощью директивы include. К примеру, Debian показывает такое содержание данного каталога:

Содержание rsyslog показывает, как вернуть логи в исходное состояние:

Как видите,  файл «syslog» будет повторно инициализирован каждый день. Другие журнальные файлы ротируются каждую неделю.

Также стоит упомянуть директив postrotate. Она указывает действие, которое происходит после того, как ротация журналов завершена.

Тестирование ротации

Logrotate можно запустить вручную для ротации одного или нескольких файлов. Чтобы это сделать, нужно просто указать соответствующий конфигурационный файл как аргумент.

Чтобы продемонстрировать, как это работает, ниже приведен неполный список журнальных файлов в каталоге /var/log на CentOS:

Неполное содержимое файла logrotate.conf выглядит так:

Затем запустите команду logrotate:

Сообщения прокручиваются при создании новых файлов, обнаружении ошибок и т.д. Затем  попробуйте проверить новые журнальные файлы почты, безопасности и сообщений:

Как можно видеть, все три новых журнала были созданы. Почтовый журнал и журнал безопасности все еще пусты, но новый журнал сообщений уже содержит некоторые данные.

Пользователи и группы

ОС UNIX предлагает базовые средства защиты и совместного использования файлов на основе отслеживания пользователя и группы, владеющих файлом, трех уровней доступа (для пользователя-владельца, для пользователей группы-владельца, и для всех остальных пользователей) и трех базовых прав доступа к файлам (на чтение, на запись и на выполнение). Базовые средства защиты процессов основаны на отслеживании принадлежности процессов пользователям.

Для отслеживания владельцев процессов и файлов используются числовые идентификаторы. Идентификатор пользователя и группы — целое число (обычно) в диапазоне от 0 до 65535. Присвоение уникального идентификатора пользователя выполняется при заведении системным администратором нового регистрационного имени. Среди пользователей системы выделяется один пользователь — системный администратор или суперпользователь, обладающий всей полнотой прав на использование и конфигурирование системы. Это пользователь с идентификатором 0 и регистрационным именем root.

Учетные записи пользователей, как и большинство другой информации о конфигурации системы UNIX, по традиции, представлена в виде текстовых файлов: /etc/passwd, /etc/group и /etc/shadow (в системах с теневым хранением паролей).

Основные команды для работы с пользователями и группами (часть команд указанных ниже будет требовать sudo для выполнения):

В современных дистрибутивах Linux вместо root аккаунта для администрирования как правило используется утилита sudo (substitute user and do), позволяющая выполнить команду от лица пользователя root.

Все настройки sudo находятся в файле /etc/sudoers. Здесь можно настроить очень много параметров, начиная от кому будет позволено выполнять команды от имени суперпользователя и заканчивая ограничением набора доступных команд. Неправильный синтаксис, добавленный в этот файл, может полностью нарушить распределение прав между пользователями. Потому для работы с этим файлом используется утилита visudo, которая открывает файл в обычном текстовом редакторе, но во время сохранения файла проверяет его синтаксис. Это позволяет избежать ошибок в конфигурации.

Основные понятия cron

Что делает cron?

Cron — это программа-демон, запускающая запланированные задания, основываясь на результате работы команды crontab. Она выполняет эти задания просыпаясь каждую минуту и проверяя, есть ли какие-нибудь задания cron (cron-jobs) для запуска в каком-либо из файлов заданий crontab пользователя.

ЗаметкаЗаметьте, что crontab — это как имя списка заданий cron, так и имя команды для редактирования этого списка.

Cron на практике

Существует несколько реализаций программы cron, доступных через Portage. Все они предлагают сходный интерфейс, а именно, использование команды crontab или ей подобных. Также есть родственная утилита, называемая Anacron, которая предназначена для работы с cron-ом на системах, которые не работают непрерывно.

Перед тем, как начать работу с cron, следует выбрать наиболее подходящую реализацию cron.

Пример пользовательского файла crontab

# в качестве командного интерпретатора использовать /bin/sh
SHELL=/bin/sh
# результаты работы отправлять по этому адресу
[email protected]
# добавить в PATH домашний каталог пользователя
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/paul/bin
 
#### Здесь начинаются задания
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * * $HOME/bin/daily.job >> $HOME/log/daily 2>&1
# выполнять 1 числа каждого месяца в 14 часов 15 минут
15 14 1 * * $HOME/bin/monthly
# каждый рабочий день в 22:00
0 22 * * 1-5 echo "Пора домой" | mail -s "Уже 22:00" john
 
23 */2 * * * echo "Выполняется в 0:23, 2:23, 4:23 и т. д."
5 4 * * sun echo "Выполняется в 4:05 в воскресенье"
0 0 1 1 * echo "С новым годом!"
15 10,13 * * 1,4 echo "Эта надпись выводится в понедельник и четверг в 10:15 и 13:15"
0-59 * * * * echo "Выполняется ежеминутно"
0-59/2 * * * * echo "Выполняется по четным минутам"
1-59/2 * * * * echo "Выполняется по нечетным минутам"
# каждые 5 минут
*/5 * * * * echo "Прошло пять минут"
# каждое первое воскресенье каждого месяца. -eq 7 это код дня недели, т.е. 1 -> понедельник , 2 -> вторник и т.д.
0 1 1-7 * *  && echo "Эта надпись выводится каждое первое воскресенье каждого месяца в 1:00"

Как посмотреть список ежедневных заданий Cron

Просмотреть список ежедневных заданий cron можно с помощью следующей команды:

$ ls -la /etc/cron.daily/

total 72

drwxr-xr-x  2 root root  4096 Apr 24 20:46 .

drwxr-xr-x 96 root root  4096 May 19 17:12 ..

-rw-r--r--  1 root root   102 Feb  9  2013 .placeholder

-rwxr-xr-x  1 root root   376 Apr  4  2014 apport

-rwxr-xr-x  1 root root 15481 Apr 10  2014 apt

-rwxr-xr-x  1 root root   314 Feb 18  2014 aptitude

-rwxr-xr-x  1 root root   355 Jun  4  2013 bsdmainutils

-rwxr-xr-x  1 root root   256 Mar  7  2014 dpkg

-rwxr-xr-x  1 root root   372 Jan 22  2014 logrotate

-rwxr-xr-x  1 root root  1261 Sep 23  2014 man-db

-rwxr-xr-x  1 root root   435 Jun 20  2013 mlocate

-rwxr-xr-x  1 root root   249 Feb 17  2014 passwd

-rwxr-xr-x  1 root root  2417 May 13  2013 popularity-contest

-rwxr-xr-x  1 root root   214 Mar 27  2017 update-notifier-common

-rwxr-xr-x  1 root root   328 Jul 18  2014 upstart

Restricting Access

You can manage which users are allowed to use the command with the and files, both of which are stored in the directory. If the file exists, any user listed in it will be barred from editing their crontab. If exists, only users listed in it will be able to edit their crontabs. If both files exist and the same user is listed in each, the file will override and the user will be able to edit their crontab.

For example, to deny access to all users and then give access to the user ishmael, you could use the following command sequence:

First, we lock out all users by appending to the file. Then, by appending the username to the file, we give the ishmael user profile access to execute cron jobs.

Note that if a user has privileges, they can edit another user’s crontab with the following command:

However, if exists and user is listed in it and they aren’t listed in , you’ll receive the following error after running the previous command:

By default, most cron daemons will assume all users have access to cron unless either or exists.

PHP конкретных

Если у вас есть задание cron, например:

И в случае ошибок ожидаем, что они будут отправлены вам, но они не — проверьте это.

PHP по умолчанию не отправляет ошибки в STDOUT. @see https://bugs.php.net/bug.php?id=22839

Чтобы исправить это, добавьте cli`s php.ini или в свою строку (или в вашу оболочку bash для PHP):

  • — define display_startup_errors = 1
  • — определить display_errors = ‘stderr’

1-я настройка позволит вам иметь такие смертельные, как «Memory oops» и 2nd — перенаправить их все на STDERR. Только после того, как вы сможете хорошо спать, так как все будет отправлено на почту вашего корня вместо того, чтобы просто войти в систему.

Перечисление заданий cron системы

/etc/crontab и файлы внутри каталога /etc/cron.d являются общесистемными файлами crontab, которые могут редактировать только системные администраторы.

Используйте cat, less или любой текстовый редактор, чтобы просмотреть содержимое файлов:

cat /etc/crontab /etc/cron.d/*

В большинстве дистрибутивов Linux вы также можете поместить скрипты в каталоги /etc/cron.{hourly,daily,weekly,monthly}, и скрипты выполняются каждый час/день/неделя/месяц.

Каждый скрипт внутри этих каталогов должен иметь разрешение на выполнение. В противном случае задание cron не будет выполнено.

Например, чтобы просмотреть все еженедельные задания cron, введите:

ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10  2019 man-db

Если вывод пуст, это означает, что еженедельных заданий cron нет.

Файлы конфигурации и логи планировщика cron

Основной файл конфигурации демона cron — /etc/crontab. Помимо cron-файла, задачи можно запускать из следующих директорий:

  • /etc/cron.daily – запуск скриптов один раз в день
  • /etc/cron.hourly – запуск скриптов ежечасно
  • /etc/cron.monthly – запуск скриптов раз в месяц
  • /etc/cron.weekly – запуск скриптов раз в неделю

Просто разместите нужны скрипты в нужную директорию, и они будут выполняться согласно расписания.

Можно ограничить доступ к планировщику с помощью файлов /etc/cron.allow и /etc/cron.deny. Достаточно создать эти файлы и добавить в него пользователей, которым, соотвественно, разрешено и запрещено запускать задания cron.

В файл /etc/crontab тоже можно помещать задания. Обычно данный файл используется root пользователем или для настройки системных задач. Личные файлы пользователей для cron заданий, хранятся в директории /var/spool/cron/ или /var/cron/tabs/.

Чтобы отследить выполнение задач или отследить ошибки, можно обратиться к лог-файлу /var/log/cron. В данном файле фиксируется запуск всех задач и ошибки в работе демона, если они есть:

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: