Как изменить crontab

Contents

Contents

  1. Introduction
  2. Starting to Use Cron
  3. Crontab Lines
  4. Crontab Options
  5. Allowing/Denying User-Level Cron
  6. Further Considerations
  7. Common Problems
  8. Two Other Types of Crontab
  9. GUI Applications
  10. Crontab Example
  11. How Anacron is Set Up
  12. Alternatives to Cron

Introduction

Cron is a system daemon used to execute desired tasks (in the background) at designated times.

A crontab file is a simple text file containing a list of commands meant to be run at specified times. It is edited using the crontab command. The commands in the crontab file (and their run times) are checked by the cron daemon, which executes them in the system background.

Each user (including root) has a crontab file. The cron daemon checks a user’s crontab file regardless of whether the user is actually logged into the system or not.

To display the on-line help for crontab enter:

 man crontab

or further information is available from the OpenGroup specifications.

On Gnome-based Ubuntu systems Gnome Scheduled tasks tool (from the gnome-schedule package) in Applications —> System Tools provides a graphical interface with prompting for using Cron. The project website is at http://gnome-schedule.sourceforge.net/; the software is installable from the Software Center or by typing

sudo apt-get install gnome-schedule

in a terminal.

Starting to Use Cron

To use cron for tasks meant to run only for your user profile, add entries to your own user’s crontab file. To edit the crontab file enter:

crontab -e

Edit the crontab using the format described in the next sections. Save your changes. (Exiting without saving will leave your crontab unchanged.) To display the on-line help describing the format of the crontab file enter:

man 5 crontab

Commands that normally run with administrative privileges (i.e. they are generally run using sudo) should be added to the root crontab. To edit the root crontab enter:

 sudo crontab -e

Crontab Lines

Each line has five time-and-date fields, followed by a command, followed by a newline character (‘n’). The fields are separated by spaces. The five time-and-date fields cannot contain spaces. The five time-and-date fields are as follows: minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday).

01 04 1 1 1 /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 4:01am on January 1st plus every Monday in January.

An asterisk (*) can be used so that every instance (every hour, every weekday, every month, etc.) of a time period is used.

01 04 * * * /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 4:01am on every day of every month.

Comma-separated values can be used to run more than one instance of a particular command within a time period. Dash-separated values can be used to run a command continuously.

01,31 04,05 1-15 1,6 * /usr/bin/somedirectory/somecommand

The above example will run /usr/bin/somedirectory/somecommand at 01 and 31 past the hours of 4:00am and 5:00am on the 1st through the 15th of every January and June.

The «/usr/bin/somedirectory/somecommand» text in the above examples indicates the task which will be run at the specified times. It is recommended that you use the full path to the desired commands as shown in the above examples. Enter which somecommand in the terminal to find the full path to somecommand. The crontab will begin running as soon as it is properly edited and saved.

You may want to run a script some number of times per time unit. For example if you want to run it every 10 minutes use the following crontab entry (runs on minutes divisible by 10: 0, 10, 20, 30, etc.)

*/10 * * * * /usr/bin/somedirectory/somecommand

which is also equivalent to the more cumbersome

0,10,20,30,40,50 * * * * /usr/bin/somedirectory/somecommand

Cron also offers some special strings, which can be used in place of the five time-and-date fields:

  • string

    meaning

    @reboot

    Run once, at startup.

    @yearly

    Run once a year, «0 0 1 1 *».

    @annually

    (same as @yearly)

    @monthly

    Run once a month, «0 0 1 * *».

    @weekly

    Run once a week, «0 0 * * 0».

    @daily

    Run once a day, «0 0 * * *».

    @midnight

    (same as @daily)

    @hourly

    Run once an hour, «0 * * * *».

@reboot /path/to/execuable1

The above example will execute /path/to/executable1 when the system starts.

For more information on special strings enter «man 5 crontab».

Crontab Options

  • The -l option causes the current crontab to be displayed on standard output.
  • The -r option causes the current crontab to be removed.
  • The -e option is used to edit the current crontab using the editor specified by the EDITOR environment variable.

After you exit from the editor, the modified crontab is checked for errors and, if there are no errors, it is installed automatically. The file is stored in /var/spool/cron/crontabs but should only be edited using the crontab command.

Allowing/Denying User-Level Cron

If the /etc/cron.allow file exists, then users must be listed in it in order to be allowed to run the crontab command. If the /etc/cron.allow file does not exist but the /etc/cron.deny file does, then users must not be listed in the /etc/cron.deny file in order to run crontab.

In the case where neither file exists, the default on current Ubuntu (and Debian, but not some other Linux and UNIX systems) is to allow all users to run jobs with crontab.

No cron.allow or cron.deny files exist in a standard Ubuntu install, so all users should have cron available by default, until one of those files is created. If a blank cron.deny file has been created, that will change to the standard behavior users of other operating systems might expect: cron only available to root or users in cron.allow.

Note, userids on your system which do not appear in /etc/shadow will NOT have operational crontabs, if you desire to enter a user in /etc/passwd, but NOT /etc/shadow that user’s crontab will never run. Place an entry in /etc/shadow for the user with a * for the password crypt, eg:

joeuser:*:15169::::::

Further Considerations

Crontab commands are generally stored in the crontab file belonging to your user account (and executed with your user’s level of permissions). If you want to regularly run a command requiring administrative permissions, edit the root crontab file:

sudo crontab -e

Depending on the commands being run, you may need to expand the root users PATH variable by putting the following line at the top of the root crontab file:

PATH=/usr/sbin:/usr/bin:/sbin:/bin

crontab -e uses the EDITOR environment variable. To change the editor to your own choice, just set that variable. You may want to set EDITOR in your .bashrc because many commands use this variable. For example, in order to set the editor to be nano (a very easy editor to use) add this line to .bashrc:

export EDITOR=nano

It is sensible to test that your cron jobs work as intended. One method for doing this is to set up the job to run a couple of minutes in the future and then check the results before finalising the timing. You may also find it useful to put the commands into script files that log their success or failure, for example:

echo "Nightly Backup Successful: $(date)" >> /tmp/mybackup.log

If your machine is regularly switched off, you may also be interested in at and anacron, which provide other approaches to scheduled tasks. For example, anacron offers simple system-wide directories for running commands hourly, daily, weekly, and monthly. Scripts to be executed in said times can be placed in /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, and /etc/cron.monthly/. All scripts in each directory are run as root, and a specific order to running the scripts can be specified by prefixing the scripts’ filenames with numbers (see the man page for run‑parts for more details). Although the directories contain periods in their names, run‑parts will not accept a file name containing a period and will fail silently when encountering them (bug #38022). Either rename the file or use a symlink (without a period) to it instead (see, for example, python + cron without login? and Problems with Hourly Cron Job).

Common Problems

Edits to a user’s crontab and the cron jobs run are all logged by default to /var/log/syslog and that’s the first place to check if things are not running as you expect.

If a user was not allowed to execute jobs when their crontab was last edited, just adding them to the allow list won’t do anything. The user needs to re-edit their crontab after being added to cron.allow before their jobs will run.

Note that user-specific crontabs (including the root crontab) do not specify the user name after the date/time fields. If you accidentally include the user name in a user-specific crontab, the system will try to run the user name as a command.

Cron jobs may not run with the environment, in particular the PATH, that you expect. Try using full paths to files and programs if they’re not being located as you expect.

The «%» character is used as newline delimiter in cron commands. If you need to pass that character into a script, you need to escape it as «%».

If you’re having trouble running a GUI application using cron, see the GUI Applications section below.

Two Other Types of Crontab

The crontab files discussed above are user crontabs. Each of the above crontabs is associated with a user, even the root crontab, which is associated with the root user. There are two other types of crontab, with syntax as follows:

minute(s) hour(s) day(s)_of_month month(s) day(s)_of_week user command

Note that the only difference from the syntax of the user crontabs is that the line specifies the user to run the job as.

The first type is as follows. As mentioned above anacron uses the run‑parts command and /etc/cron.hourly, /etc/cron.weekly, and /etc/cron.monthly directories. However anacron itself is invoked from the /etc/crontab file. This file could be used for other cron commands, but probably shouldn’t be. Here’s an example line from a fictitious /etc/crontab:

00 01 * * * rusty /home/rusty/rusty-list-files.sh

This would run Rusty’s command script as user rusty from his home directory. However, it is not usual to add commands to this file. While an experienced user should know about it, it is not recommended that you add anything to /etc/crontab. Apart from anything else, this could cause a problem if the /etc/crontab file is affected by updates! Rusty could lose his command.

The second type is to be found in the directory /etc/cron.d. This directory can contain crontab files. The directory is often used by packages, and the crontab files allow a user to be associated with the commands in them.

Example: Instead of adding a line to /etc/crontab, which Rusty knows is not a good idea, he might well add a file to the directory /etc/cron.d with the name rusty, containing his cron line above. This would not be affected by updates but is a well known location.

When would you use these alternate crontab locations? Well, on a single user machine or a shared machine such as a school or college server, a user crontab would be the way to go. But in a large IT department, where several people might look after a server, then the directory /etc/cron.d is probably the best place to install crontabs — it’s a central point and saves searching for them!

You may not need to look at /etc/crontab or /etc/cron.d, let alone edit them by hand. But an experienced user should perhaps know about them and that the packages that he/she installs may use these locations for their crontabs.

GUI Applications

It is possible to run gui applications via cronjobs. This can be done by telling cron which display to use.

00 06 * * * env DISPLAY=:0 gui_appname

The env DISPLAY=:0 portion will tell cron to use the current display (desktop) for the program «gui_appname».

And if you have multiple monitors, don’t forget to specify on which one the program is to be run. For example, to run it on the first screen (default screen) use :

00 06 * * * env DISPLAY=:0.0 gui_appname

The env DISPLAY=:0.0 portion will tell cron to use the first screen of the current display for the program «gui_appname».

Note: GUI users may prefer to use gnome-schedule (aka «Scheduled tasks») to configure GUI cron jobs. In gnome-schedule, when editing a GUI task, you have to select «X application» in a dropdown next to the command field.

Note: In Karmic(9.10), you have to enable X ACL for localhost to connect to for GUI applications to work.

 ~$ xhost +local:
non-network local connections being added to access control list
 ~$ xhost
access control enabled, only authorized clients can connect
LOCAL:
...

Crontab Example

Below is an example of how to setup a crontab to run updatedb, which updates the slocate database: Open a terminal, type «crontab -e» (without the double quotes) and press enter. Type the following line, substituting the full path of the application you wish to run for the one shown below, into the editor:

45 04 * * * /usr/bin/updatedb

Save your changes and exit the editor.

Crontab will let you know if you made any mistakes. The crontab will be installed and begin running if there are no errors. That’s it. You now have a cronjob setup to run updatedb, which updates the slocate database, every morning at 4:45.

Note: The double-ampersand (&&) can also be used in the «command» section to run multiple commands consecutively, but only if the previous command exits successfully. A string of commands joined by the double-ampersand will only get to the last command if all the previous commands are run successfully. If exit error-checking is not required, string commands together, separated with a semi-colon (;).

45 04 * * * /usr/sbin/chkrootkit && /usr/bin/updatedb

The above example will run chkrootkit followed by updatedb at 4:45am daily — providing you have all listed apps installed. If chkrootkit fails, updatedb will NOT be run.

How Anacron is Set Up

On Ubuntu 9.10 (and presumably, on later versions), anacron seems to be set up as follows:

There is a Upstart task, located in /etc/init/anacron.conf, which runs all the jobs in /etc/anacrontab. It is set to run on startup.

There is a cron.d file (/etc/cron.d/anacron) which causes the Upstart task to be started every day at 7:30 AM.

There is a file /etc/apm/event.d/anacron, which causes the Upstart task to be started when a laptop is plugged in to A/C power, or woken up.

In the system crontab (/etc/crontab), if anacron is not execuatable, run‑parts is used to run the files in cron.daily, cron.weekly, and cron.monthly at 6:25 AM, 6:47 AM and 6:52 AM, respectively.

In /etc/anacrontab, run‑parts is used to run cron.daily 5 minutes after anacron is started, and cron.weekly after 10 minutes (once a week), and cron.monthly after 15 (once a month).

Within the cron.daily, weekly, and monthly directories ( /etc/cron.daily, etc.) there is a 0anacron file that sets the timestamps for anacron, so it will know they have been run, even if it didn’t run them.

So it appears anacron is run on every startup, wake up, plug-in, and at 7:30 AM every day. Looking at the respective Changelogs and package databases, it looks like this setup is directly from Debian, and hasn’t been changed since at least 2009.

Alternatives to Cron

Some hosting companies don’t allow access to cron, but there are websites offering alternative ways of scheduling jobs (free or paid-for). Here are some examples:

  • SetCron

  • SetCronJob

  • OnlineCronJobs

  • EasyCron


Главная » Linux » 11 Примеров редактирования и создания задач Cron (Crontab) в Linux

Содержание

  1. 1. Просмотр записей в Crontab Linux
  2. 2. Редактирование записи Crontab Linux
  3. 3. Список Запланированных Заданий Cron в Linux
  4. 4. Удаление Записи на Crontab Linux
  5. 5. Запрос перед удалением Crontab
  6. 6. Специальные символы (*, -, /, ?, #) в Crontab Linux
  7. 7. Общесистемное расписание Cron
  8. 8. Планирование задачи (работы) на определенное время
  9. 9. Специальные строки для общего расписания
  10. 10. Несколько команд с двойным амперсандом(&&)
  11. 11. Отключение уведомлений по электронной почте.
  12. Заключение

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

Работать с заданиями вручную очень сложно. Так как такие задачи могут быть запланированы и выполняться автоматически в фоновом режиме без вмешательства человека. В операционной системе Linux или Unix делается подобное с помощью службы cron.

Например, вы можете автоматизировать резервное копирование системы Linux, планировать обновления и синхронизацию файлов, а так же многое другое. Служба Cron используется для запуска запланированных задач из командной строки или использования онлайн-инструментов для создания заданий cron.

Cron каждую минуту и проверяет расписание задач в Crontab (таблица CRON) — это таблица, в которой мы можем планировать повторяющиеся задачи.

Совет: У каждого пользователя может быть своя Crontab для создания, изменения и удаления задач. По умолчанию cron включен для пользователей, однако мы можем ограничить пользователей, добавив запись в файл /etc/cron.deny.

Файл Crontab состоит из команды и содержит шесть полей, разделенных пробелом или вкладкой. Первые пять полей представляют время для выполнения задач, а последнее поле предназначено для команды. Подробнее можно прочитать здесь.

  • Минута (удержание значений в диапазоне 0-59)
  • Час (удержание значений в диапазоне 0-23)
  • День месяца (значения удержания между 1-31)
  • Месяц года (сохраните значение в диапазоне 1-12 или январь-декабрь, вы можете использовать первые три буквы названия каждого месяца, т. е. Jan или Jun.)
  • День недели (используйте значения в диапазоне 0-6 или Sun-Sat, здесь также вы можете использовать первые три буквы названия каждого дня, т. е.Sun или Wed. )
  • Команда – /path/to/command или сценарию, которые вы хотите запланировать.

Примеры редактирования и создания задач Cron (Crontab) в Linux

Примеры редактирования и создания задач Cron (Crontab) в Linux

1. Просмотр записей в Crontab Linux

Посмотреть или управлять задачей можно с помощью команды crontab с опцией-l для текущего пользователя.

# crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Редактирование записи Crontab Linux

Чтобы отредактировать запись crontab, используйте опцию -e, как показано в примере ниже. В приведенном ниже примере откроется расписание заданий в редакторе VI. Внесите необходимые изменения и сохраните изменения. Как сохранить и выйти из редактора Vi или Vim.

# crontab -e

3. Список Запланированных Заданий Cron в Linux

Для просмотра списка запланированных заданий определенного пользователя, например пользователя называемого setiwik, используйте опцию как -u (Пользователь) и -l (Список).

# crontab -u setiwik -l

no crontab for setiwik

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

4. Удаление Записи на Crontab Linux

Внимание: Crontab с параметром -r удалит завершенные запланированные задания без подтверждения. Используйте параметр -i перед удалением кронтаба.

# crontab -r

5. Запрос перед удалением Crontab

crontab с опцией -i запросит у вас подтверждение от пользователя перед удалением crontab пользователя.

# crontab -i -r

crontab: really delete root’s crontab?

6. Специальные символы (*, -, /, ?, #) в Crontab Linux

  • Звездочка(*) – Сопоставьте все значения в поле или любое возможное значение.
  • Дефис(-) – Для определения диапазона.
  • Косая черта (/) – 1 — е поле /10, означающее каждые десять минут или увеличение диапазона.
  • Запятая (,) – Для разделения элементов.

7. Общесистемное расписание Cron

Системный администратор может использовать предопределенный каталог cron, как показано ниже.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8. Планирование задачи (работы) на определенное время

Приведенные ниже задания удаляют пустые файлы и каталог из /tmp ежедневно в 12:30 утра. Вам необходимо указать имя пользователя для выполнения команды crontab. В приведенном ниже примере пользователь root выполняет задание cron.

# crontab -e

30 0 * * * root find /tmp -type f -empty -delete

9. Специальные строки для общего расписания

Строка Meanings
@reboot Команда будет запущена при перезагрузке системы.
@daily Один раз в день, так же можно можете использовать @midnight.
@weekly Раз в неделю.
@yearly Один раз в год. Также можно использовать ключевое слово @annually.

10. Несколько команд с двойным амперсандом(&&)

В приведенном ниже примере команды command1 и command2 выполняются ежедневно.

# crontab -e

@daily <command1> && <command2>

11. Отключение уведомлений по электронной почте.

По умолчанию cron отправляет письмо на почту пользователя, когда выполняет задание cron. Если вы хотите отключить его, добавьте задание cron, аналогичное приведенному ниже примеру. Использование опции >/dev/null 2>>&1>> в конце файла перенаправит все выходные данные результатов cron в /dev/null.

[root@tecmint ~]# crontab -e

* * * * * >/dev/null 2>&1

Заключение

Автоматизация задач может помочь вам выполнять задачи лучше, безошибочно и эффективно. Вы можете обратиться к странице руководства crontab для получения дополнительной информации, введя команду «man crontab» в своем терминале.

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

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

Фактически, Cron — это сервис, как и большинство других сервисов Linux, он запускается при старте системы и работает в фоновом режиме. Его основная задача выполнять нужные процессы в нужное время. Существует несколько конфигурационных файлов, из которых он берет информацию о том что и когда нужно выполнять. Сервис открывает файл /etc/crontab, в котором указаны все нужные данные. Часто, в современных дистрибутивах там прописан запуск утилиты run-parts, которая запускает нужные скрипты из следующих папок:

  • /etc/cron.minutely — каждую минуту;
  • /etc/cron.hourly — каждый час;
  • /etc/cron.daily — каждый день;
  • /etc/cron.weekly — каждую неделю;
  • /etc/cron.monthly — каждый месяц.

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

Она позволяет выполнять их даже если компьютер работает не всегда и время от времени выключается. Дата выполнения задания последний раз записывается в файл /var/spool/anacron, а затем, при следующем запуске anacron проверяет был ли запущен нужный процесс в нужное время, и если нет, то запускает его. Сам же сервис cron больше рассчитан на выполнение задач в течение дня или с точно расписанным временем и датой.

Настройка Cron

Для настройки времени, даты и интервала когда нужно выполнять задание используется специальный синтаксис файла cron и специальная команда. Конечно, вы всегда можете отредактировать файл /etc/crontab, но этого делать не рекомендуется. Вместо этого, есть команда crontab:

crontab -e

Ее всегда желательно выполнять с опцией -e, тогда для редактирования правил будет использован ваш текстовый редактор по умолчанию. Команда открывает вам временный файл, в котором уже представлены все текущие правила cron и вы можете добавить новые. После завершения работы команды cron файл будет обработан и все правила будут добавлены в /var/spool/cron/crontabs/имя_пользователя причем добавленные процессы будут запускаться именно от того пользователя, от которого вы их добавляли.

Поэтому тут нужно быть аккуратным, и если вам нужно выполнять скрипты от рута, то и crontab нужно выполнить от рута, а не от пользователя. Это часто становится причиной проблем.

Синтаксис crontab

Как я уже говорил, время задается особым синтаксисом, давайте рассмотрим синтаксис настройки одной задачи cron:

минута час день месяц день_недели /путь/к/исполняемому/файлу

Нужно сказать, что обязательно нужно писать полный путь к команде, потому что для команд, запускаемых от имени cron переменная среды PATH будет отличаться, и сервис просто не сможет найти вашу команду. Это вторая самая распространенная причина проблем с Cron. Дата и время указываются с помощью цифр или символа ‘*’. Этот символ означает, что нужно выполнять каждый раз, если в первом поле — то каждую минуту и так далее. Ну а теперь перейдем к примерам.

Примеры настройки cron

Сначала можно посмотреть задачи cron для суперпользователя, для этого можно воспользоваться опцией -l:

crontab -l

Вы можете удалить все существующие задачи командой -r:

crontab -r

Давайте предположим, что нам нужно запускать от имени суперпользователя наш скрипт по адресу /usr/local/bin/serve. Какой-нибудь обслуживающий скрипт. Самый простой пример — запускать его каждую минуту:

* * * * * /usr/local/bin/serve

Далее, усложним, будем запускать каждый час, в нулевую минуту:

0 * * * * /usr/local/bin/serve

Еще дальше:

Запускаем в нулевую минуту нулевого часа, каждый день, это в 12 ночи:

0 0 * * * /usr/local/bin/serve

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

0 0 1 * * /usr/local/bin/serve

Можно в любой день, например, 15 числа:

0 0 15 * * /usr/local/bin/serve

В первый день недели первого месяца года, 0 часов 0 минут:

0 0 * 1 0 /usr/local/bin/serve

Или в нулевой день недели каждого месяца:

0 0 * * 0 /usr/local/bin/serve

Вы можете выбрать любую минуту, час и день недели, например, 15.30 во вторник:

30 15 * * 2 /usr/local/bin/serve

Понедельник считается первым днем, воскресенье — это седьмой или нулевой день. Еще можно писать сокращенное название дня недели, например sun — воскресенье:

30 15 * * sun /usr/local/bin/serve

Для того чтобы указать определенный интервал нужно использовать символ «-«, например, каждый час, с семи утра до семи вечера:

0 7-19  * * * /usr/local/bin/serve

Если нужно запустить команду несколько раз, можно использовать разделитель «,». Например, запустим скрипт в 5 и 35 минут пятого (16:05 и 16:35), каждый день:

5,35 16  * * * /usr/local/bin/serve

Вы можете захотеть не указывать отдельно время, а просто указать интервал, с которым нужно запускать скрипт, например, раз в 10 минут. Для этого используется разделитель косая черта — «/»:

*/10 * * * * /usr/local/bin/serve

Кроме того, для некоторых часто используемых наборов были придуманы переменные, вот они:

  • @reboot — при загрузке, только один раз;
  • @yearly, @annually — раз год;
  • @monthly — раз в месяц;
  • @weekly — раз в неделю;
  • @daily, @midnight — каждый день;
  •  @hourly — каждый час.

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

@hourly /usr/local/bin/serve

Если же вы собрались добавить скрипт в одну из папок, то, как я уже говорил, нужно чтобы его имя было без точек и у него были права на выполнение:

sudo vi /etc/corn.daily/basckup

#!/bin/bash
......

Скрипт должен выглядеть подобным образом. Теперь вы знаете как настроить cron, осталось проверить как все работает.

Отладка работы

После того как вы настроили правила, еще хотелось бы проверить работают ли они. Для этого ждем того времени, когда скрипт уже должен быть выполнен и смотрим лог cron. Иногда он находится в /var/log/cron, а иногда пишется в syslog. Например, у меня в crontab есть такая строка:

Она должна выполняться в 19.40 каждый день, теперь смотрим лог:

grep CRON /var/log/syslog

И видим что в нашем логе она действительно есть и выполняется целиком успешно. Если бы были какие-либо ошибки, то тут же было бы выведено сообщение.

Если нужно проверить скрипт, который находится в одной из специализированных папок, то тут еще проще, просто запустите run-paths, передав ей в параметр нужную папку или даже сам скрипт:

sudo run-paths /etc/cron.daily/

Дальше вы увидите весь вывод, включая вывод скрипта и сможете быстро понять в чем проблема.

Выводы

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

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

crontab Tips and Tricks

cron — классический демон (компьютерная программа в системах класса UNIX), использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещенными в файлы crontab и в специальные каталоги.

Отличная тренировочная площадка для оттачивания крон-до

Расположение файлов crontab, большинство находятся в директории /etc

ls -l /etc/ | grep cron

Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами. Первые пять колонок задают время выполнения (минута, час, день, месяц, день недели), в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых дефисом, символы * или /.

* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- день недели (07) (воскресенье = 0 или 7)
| | | ------- месяц (112)
| | --------- день (131)
| ----------- час (023)
------------- минута (059)

Редактирование задания crontab надо осуществлять под тем пользователем, от чьего имени запускается задача.

crontab -e                  # Редактируем
crontab -l                  # Посмотреть существующие задач текущего пользователя
sudo crontab -l -u username # Посмотреть существующие задач другого пользователя
crontab -r                  # Удалить файл crontab. 

прикручиваем журнал к конкретному заданию

30 18 * * * rm /home/user/tmp/ * > /home/someuser/cronlogs/clean_tmp_dir.log
* 10 6,21 * *   # по конкретным датам, например 6 и 21 числа каждого месяца
0 0 * * *       # 0 0 * * *
0 9-18 * * 1-5  # по будням дням с 9 до 18 часов каждый час
0 */3 * * *     # каждые три часа
*/15 * * *      # запуск задач каждые 15 минут каждого часа
@weekly         # каждое воскресение в 00:00
05,40 * * * *   # каждые пять и сорок минут час
05 15 * * 1-5   # по будням в 15:05
05 15 1 1 1     # каждое первое января в 15:05 если выпадает на поедельник
0 */12 * * *    # в 12 часов утра (00:00:00) и 12 часов дня (12:00:00) каждый день
0 09,17 * * *   # в 9 утра и 5 вечера.
crontab -e

Если редактор открывающий crontab, не устраивает по причине своей убогости, поменяем его на vim. Сделать это можно вот такой простой командой:

export EDITOR=vim

Так же следует не забыть, внести данную строку в /home/username/.bashrc

Другие пользователи (не root) также могут настраивать задачи cron, используя программу crontab. Все созданные пользователями файлы crontab хранятся в каталоге /var/spool/cron/ и выполняются от имени создавшего их пользователя. Чтобы создать файл crontab для пользователя, войдите в систему под его именем и введите команду crontab -e, чтобы отредактировать его файл crontab с помощью редактора, указанного в переменной окружения VISUAL или EDITOR. Этот файл имеет тот же формат, что и /etc/crontab. При записи изменений файла crontab, этот файл сохраняется под названием /var/spool/cron/username, в соответствии с именем пользователя.

Демон cron проверяет наличие изменений в файле /etc/crontab, каталоге /etc/cron.d/ и каталоге /var/spool/cron/ каждую минуту. Если обнаруживаются какие-либо изменения, они загружаются в память. Таким образом, демон не нуждается в перезапуске при изменении файла crontab.

Для ограничения доступа к cron используются файлы /etc/cron.allow и /etc/cron.deny. Формат списков управления доступом в обоих файлах прост — в каждой строке файла указывается одно имя пользователя. Пробельные символы в этих файлах не допускаются. Перезапускать демон cron (crond) после изменения файлов управления доступом не требуется. Файлы управления доступом обрабатываются каждый раз, когда пользователь пытается добавить или удалить задание cron.

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

Если файл cron.allow существует, использовать cron разрешено только перечисленным в нём пользователям, а файл cron.deny игнорируется.

Если cron.allow не существует, пользователям, перечисленным в cron.deny, использовать cron не разрешается.

По умолчанию, логи cron пишутся в:

# Fedora/CentOS
/var/log/cron
 
# Debian/Ubuntu
/var/log/syslog

Можно создать файл cron.log, содержащий только записи CRON, которые отображаются в системном журнале. Обратите внимание, что задания CRON по-прежнему будут отображаться в системном журнале, для этого редактируем файл /etc/rsyslog.d/50-default.conf в Ubuntu либо /etc/rsyslog.conf в Debian и снимаем комментарий с:

#cron.*

и перезапускаем демон rsyslog

systemctl restart rsyslog.service 

Теперь должны увидеть файл журнала cron – /var/log/cron.log
Активность Cron теперь будет регистрироваться в этом файле (в дополнение к syslog).

Если нужно проверить, работает ли crontab, то не следует искать его в cron.log или syslog, создайте задание crontab, который перенаправляет вывод в файл журнала по вашему выбору — что-то вроде:

01 14 * * * /home/nevvad/myscript >> /home/nevvad/log/myscript.log 2>&1

Это перенаправит все стандартные выходные данные и ошибки, которые могут возникнуть в сценарии.

Для того чтобы получить завтрашнею дату, выполним команду:

date +%d -d tomorrow
01

Используя эту концепцию, мы можем создать условие, что если завтрашняя дата вернется как 01 (первый день месяца), то задание cron будет выполнено.

Для теста используем такой синтаксис (если завтра первое число –> echo):

[ “$(date +%d -d tomorrow)” = “01” ] && echo “Tommorow is 1st”
“Tommorow is 1st”

Соответственно для планировщика, задание будет выглядеть вот таким образом:

30 13 28-31 * * [ “$(date +%d -d tomorrow)” = “01” ]  && /home/nevvad/my_script.sh

Crontab не позволяет планировать продолжительность выполнения заданий в секундах. Минимально допустимая продолжительность – только каждая минута.

Для того, чтобы запускать shell-скрипт каждые 30 секунд, используем следующую конфигурацию crontab:

* * * * *  script.sh
* * * * *  sleep 30; script.sh

Первый cron запускается каждые 1 минуту, а второй cron также запускается в то же время, но ждет 30 секунд перед выполнением. Таким образом, весь цикл выполняется каждые 30 секунд.

Если в логах получаем нечто такое:

(CRON) info (No MTA installed, discarding output)

Инструкция ниже решает эту проблему:

## NO EMAIL ##
@weekly /scripts/containers-backup  >/dev/null 2>&1
 
## Send email ##
MAILTO="username@skynet.corp"
@daily /scripts/test-raid-array.sh 
 
## Disable email alert ##
MAILTO=""
@monthly /path/to/script/logs.sh > /var/log/monthly.log

Планировщик событий Cron в таблице Crontab

Scheduling Cron Jobs with Crontab


Cron — это демон планирования (компьютерная программа в системах класса UNIX), который выполняет задачи с заданными интервалами. Эти задачи называются заданиями cron и в основном используются для автоматизации обслуживания или администрирования системы.

Планировщик событий Cron в таблице Crontab

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

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

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

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

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

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

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

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

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

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

* * * * * command(s)
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

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

  • Оператор звездочки означает любое значение или всегда. Если у вас есть символ звездочки в поле Час, это означает, что задание будет выполняться каждый час.
  • Оператор запятой позволяет указать список значений для повторения. Например, если у вас есть 1,3,5 поле «Час», задание будет выполняться в 1:00, 3:00 и 5:00.
  • Оператор дефиса позволяет указать диапазон значений. Если у вас есть 1-5 поле «День недели», задание будет запускаться каждый рабочий день (с понедельника по пятницу).
  • Оператор косой черты позволяет указать значения, которые будут повторяться в течение определенного интервала между ними. Например, если у вас есть */4 поле «Час», это означает, что действие будет выполняться каждые четыре часа. Это то же самое, что указать 0,4,8,12,16,20. Вместо звездочки перед оператором косой черты вы также можете использовать диапазон значений, 1-30/10 то же самое, что и 1,11,21.

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

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

* * * * * <username> command(s)

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

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

  • @yearly (или @annually) — запускать задание один раз в год в полночь (12:00) 1 января. Эквивалент 0 0 1 1 *.
  • @monthly — запускать указанное задание один раз в месяц в полночь первого дня месяца. Эквивалент 0 0 1 * *.
  • @weekly — запускать указанное задание один раз в неделю в полночь воскресенья. Эквивалент 0 0 * * 0.
  • @daily — запускать указанное задание один раз в день в полночь. Эквивалент 0 0 * * *.
  • @hourly — запускать указанное задание один раз в час в начале часа. Эквивалент 0 * * * *.
  • @reboot  — Запустите указанное задание при запуске системы (время загрузки).

Linux Crontab Command 

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

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

  • crontab -e — Отредактируйте файл crontab или создайте его, если он еще не существует.
  • crontab -l — Показать содержимое файла crontab.
  • crontab -r — Удалить ваш текущий файл crontab.
  • crontab -i — Удалите текущий файл crontab с запросом перед удалением.
  • crontab -u <username> — Изменить другой файл crontab использования. Требуются права системного администратора.

   Команда crontab открывает файл crontab с помощью редактора, заданного переменными среды VISUAL или EDITOR.

Переменные Crontab 

Демон cron автоматически устанавливает несколько переменных окружения .

  • Путь по умолчанию установлен в PATH=/usr/bin:/bin. Если команда, которую вы вызываете, присутствует в указанном пути cron, вы можете использовать абсолютный путь к команде или изменить $PATH переменную cron . Вы не можете неявно добавлять, :$PATH как если бы вы использовали обычный скрипт.
  • Оболочка по умолчанию установлена ​​в /bin/sh. Вы можете установить другую оболочку, изменив SHELLпеременную.
  • Cron вызывает команду из домашнего каталога пользователя. HOME Переменной может быть изменено с помощью настроек в crontab.
  • Уведомление по электронной почте отправляется владельцу crontab. Чтобы перезаписать поведение по умолчанию, вы можете использовать MAILTOпеременную среды со списком (через запятую) всех адресов электронной почты, которые вы хотите получать по электронной почте. Если MAILTOопределено, но пусто ( MAILTO=""), письмо не отправляется.

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

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

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

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

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

Примеры Cron

Ниже приведены некоторые примеры заданий cron, которые покажут вам, как запланировать выполнение задачи на разные периоды времени.

  • Запускайте команду в 15:00 каждый день с понедельника по пятницу:

    0 15 * * 1-5 command
    
    
  • Запускать скрипт каждые 5 минут и перенаправлять стандартный вывод на dev null, только стандартная ошибка будет отправлена ​​на указанный адрес электронной почты:

    MAILTO=email@example.com
    */5 * * * * /path/to/script.sh > /dev/null
    
    
  • Выполните две команды каждый понедельник в 3 часа дня (используйте оператор &&между командами):

    0 15 * * Mon command1 && command2
    
    
  • Запускайте PHP-скрипт каждые 2 минуты и записывайте результат в файл :

    */2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
    
    
  • Запускать сценарий каждый день, каждый час, каждый час, с 8:00 до 16:00:

    00 08-16 * * * /path/to/script.sh
    
    
  • Запускать сценарий в первый понедельник каждого месяца в 7 часов утра.

    0 7 1-7 * 1 /path/to/script.sh
    
    
  • Запускайте сценарий в 21:15 1 и 15 числа каждого месяца:

    15 9 1,15 * * /path/to/script.sh
    
    
  • Набор пользовательских HOME, PATH, SHELLи MAILTOпеременные и запустить команду каждую минуту.

    HOME=/opt
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    SHELL=/usr/bin/zsh
    MAILTO=email@example.com
    
    */1 * * * * command

Вывод 

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

Июл 23, 2020

Olha L.

5хв. читання

Cron Job: Полное Руководство для Начинающих  2022

Чем бы вы не занимались, практически всегда есть возможность работать более эффективно. Так, например, занятые веб-специалисты нашли способ автоматизировать некоторые процессы, чтобы не тратить своё время на обработку повторяющихся задач. Одним из таких способов является cron job, или запланированные задания cron, доступные пользователям Unix-подобных операционных систем.

В этой статье мы расскажем об основах cron jobs, или как работают запланированные (отложенные) задачи.

Сэкономьте до 77%, ознакомьтесь с VPS-планами Hostinger!

К планам

Cron и Cron Job: Основы

Создавать и редактировать cron-задания можно разными способами. В этом руководстве мы покажем вам, как это делать с помощью командной строки Linux (терминала).

Если у вас есть свой VPS в Hostinger, ваши учётные данные для входа находятся во вкладке управления VPS. Подключитесь к вашему серверу по SSH. Если что-то не получается, ознакомьтесь с нашим руководством по PuTTY SSH.

Вот некоторые основные операции с cron:

Если вы хотите изменить crontab-файл (файл содержащий инструкции по выполнению запланированных заданий), то есть создать и настроить своё первое cron job, введите в терминале следующую команду:

crontab -e

Вот, как будет выглядеть результат.

Результат Команды crontab -e

Скорее всего вы попадёте в редактор vi. Так как этот редактор довольно часто используется при работе с cron, лучше ознакомится с основными командами vi. Так вы будете чувствовать себя более уверенно.

Если вы хотите изменить crontab-файл другого пользователя, используйте команду crontab -u username -e. Имейте в виду, что вы можете редактировать чужие файлы только как суперпользователь, то есть вам нужно ввести sudo su перед командой.

Команда Редактирования Crontab-файла Другого Пользователя

Если вы хотите удалить текущий файл crontab текущего пользователя, введите следующую команду:

crontab -r

Команда ниже делает то же самое, что и -r, однако она просит подтвердить действие, прежде чем удалить crontab:

crontab -i

Если вы хотите отобразить содержимое файла crontab, в который вы зашли, введите в терминале следующую команду:

crontab -l

Ещё одна операция этой команды позволяет посмотреть есть ли у вас crontab-файлы. Просто введите crontab -l. Если у вас нет созданных файлов, вывод покажет следующий результат:

Вывод, Показывающий Отсутствие Каких-либо crontab-файлов

Если вы хотите просмотреть списки crontab-файлов других пользователей, просто введите crontab -u username -l как суперпользователь.

Команда Просмотра crontab-файлов Других Пользователей

Теперь, когда вы ознакомились с базовыми операциями, пора рассмотреть основной синтаксис cron.

По сути, crontab-файл состоит из двух частей: таймера расписания и команды. Вот как записывается команда:

* * * * * /bin/sh backup.sh
  • ***** /bin/sh backup.sh — cron job значит запуск резервного копирования каждую минуту.
  • 30 18 * * * rm /home/sydtesting/tmp/* означает, что файлы tmp будут удаляться из /home/sydtesting/tmp каждый день в 18:30.

Давайте углубимся в некоторые детали.

Как Правильно Написать Синтаксис Cron

Crontab-файл имеет пять полей. Каждое поле представлено звёздочкой и определяет дату и время задачи, которая должна выполняться повторно.

Синтаксис Cron Job

  • Минуты — минута часа, в которую будет запущена команда, указывается в диапазоне от 0 до 59.
  • Часы — час, когда начнётся выполнение команды, в диапазоне от 0 до 23.
  • День месяца — в какой день месяца вы хотите запускать команду, в диапазоне от 1 до 31.
  • Месяц — в какой месяц будет выполняться указанная команда, в диапазоне от 1 до 12.
  • День недели — в какой день недели вы хотите выполнять команду, в диапазоне от 0 до 6 (воскресенье — 0).

Кроме того, важно использовать правильные символы.

  • Звёздочка (*) — чтобы определить параметры планирования.
  • Запятая (,) — чтобы указать два или больше вариантов времени выполнения одной и той же команды.
  • Дефис (-) — чтобы задать диапазон времени выполнения одной команды.
  • Косая черта (/) — для создания заданных интервалов времени в определённом диапазоне.
  • Last (L) — для конкретной цели, чтобы определить последний день недели в данном месяце. Например, 3L означает последнюю среду.
  • Рабочий день (W) — в табах числа и месяца, мы также можем использовать этот символ, чтобы определить ближайший рабочий день недели к заданному времени. Например, 1W означает, что скрипт будет запущен в ближайший рабочий день к первому числу, если 1-ое — Воскресенье, команда будет выполняться в понедельник (2-го).
  • Решетка (#) — чтобы указать день недели в месяце, даёт возможность выбрать цифру в диапазоне от 1 до 5. Например, 1#2 означает второй понедельник.
  • Вопросительный знак (?) — например, чтобы выбрать определённый день для запуска скрипта, нам нужно указать либо число месяца, либо номер дня, мы не можем указывать оба значения одновременно. Вопросительный знак даёт возможность оставить одно значение пустым.

Cron: Примеры

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

Прежде чем двигаться дальше, обратите внимание, что вывод команды будет автоматически отправлен на вашу локальную электронную почту. Если вы не хотите получать эти письма, просто добавьте к синтаксису >/dev/null 2>&1, как показано в примере:

0 5 * * * /root/backup.sh >/dev/null 2>&1

Если вы хотите, чтобы вывод приходил на другую почту, вы можете добавить MAILTO, а затем адрес электронной почты. Например:

MAILTO="mojo_imia@hostinger.com"
0 3 * * * /root/backup.sh >/dev/null 2>&1

Больше примеров синтаксиса:

Выражение Значение
0 0 * * * /bin/sh backup.sh Выполнять резервное копирование базы данных в полночь один раз в день.
0 6,18 * * * /bin/sh backup.sh Выполнять резервное копирование БД два раза в день в 6 утра и 6 вечера.
0 */6 * * * /scripts/monitor.sh Проводить мониторинг каждые шесть часов.
*/10 * * * * /home/user/script.sh Выполнять cron job для файла сценария, находящегося в домашнем каталоге, каждые 10 минут.
0 * 20 7 * /bin/sh backup.sh Запускать резервное копирование базы данных каждый час каждого 20 июля.
0 0 * * 2 * /bin/sh Запускать резервное копирование БД в полночь каждый вторник.
* * * 1,2,5 *  /script/script.sh Выполнить команду в январе, феврале и мае.
10-59/5 5 * * * /home/user/script.sh Выполнять команду каждые 5 минут в 5 часов утра, начиная с 5:10 утра.
0 8 1 */3 * /home/user/script.sh Запускать команду ежеквартально в 1-й день в 8 утра.
* * * * * /scripts/script.sh; /scripts/scrit2.sh Чтобы запланировать несколько заданий в одном cron job.
@reboot /scripts/script.sh Чтобы выполнять определённую задачу каждый раз при запуске системы.
0 0 1 * *  /home/user/script.sh Выполнить команду в первый день каждого месяца.

Разрешения Cron 

Для cron-заданий важны два файла.

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

Что Такое Cron Job?

Cron — это утилита для планирования повторяющихся заданий. Отложенное/запланированное задание — это и есть cron job.

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

Cron — демон, а это означает, что он работает в фоновом режиме для выполнения не интерактивных заданий. В Windows примером фоновых процессов являются Службы.

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

Файл cron — это простой текстовый файл, который содержит команды для запуска в определённое время. Системный файл crontab по умолчанию — /etc/crontab, он находится в каталоге crontab /etc/cron.*/. Только системные администраторы могут редактировать системный crontab-файл.

Однако, поскольку Unix-подобные операционные системы поддерживают несколько пользователей, каждый из них может создать свой собственный crontab-файл и запускать команды в любое время. Демон cron проверяет файл и запускает команды в фоновом режиме.

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

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

Выводы

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

Cron job — отличный способ управления повседневными задачами, который подойдёт как системным администраторам, так и другим веб-специалистам, включая разработчиков. Всё, что вам нужно сделать, это использовать правильную команду и выбрать правильное время для её выполнения.

Вот некоторые из основных команд:

  • crontab e — создать и отредактировать crontab-файл.
  • crontab -u username -e — редактировать crontab-файл другого пользователя с правами суперпользователя.
  • crontab -l — просмотреть список crontab-файлов текущих пользователей.
  • crontab -r — удалить файлы crontab.
  • crontab -a imia_faila — установить имя файла как crontab-файл (в некоторых системах –a не требуется).

А теперь пришло время попрактиковаться и заставить cron работать на вас!

Author

Ольга вже близько восьми років працює менеджером у сфері IT, три з яких вона займається SEO. Написання технічних завдань та інструкцій — один з її основних обов’язків. Її хобі — дізнаватися щось нове і створювати цікаві та корисні статті про сучасні технології, веброзробку, мови програмування, пошукову оптимізацію сайтів та багато іншого.

Понравилась статья? Поделить с друзьями:
  • Как изменить cpu ratio
  • Как изменить cpu fsb
  • Как изменить country
  • Как изменить coob
  • Как изменить continue reading