Cron linux каждую секунду

Содержание
  1. How To Run a Cron Job Every 30 Seconds in Linux
  2. Run Cron Job Every 30 Seconds in Linux
  3. Run Cron Job Every 10 Seconds in Linux
  4. 15 отличных примеров для создания cron задач в Linux
  5. 1. Планирование задач в течение определённого времени
  6. 2. Расписание задач для более частого выполнения (например, дважды в день)
  7. 3. Расписание работы в течение определённого интервала времени (например, только в будние дни)
  8. 4. Как просмотреть записи Crontab?
  9. 5. Как редактировать записи crontab?
  10. 6. Выполнение Cron каждую минуту
  11. 7. Запуск фоновых задач Cron каждые 10 минут
  12. 8. Расписание работы для первой минуты каждого года с использованием @yearly
  13. 9. Запуск задач каждый месяц с использованием ключевого слова @monthly
  14. 10. Запуск задач каждый день с использованием @daily
  15. 11. Как выполнить команду Linux после каждой перезагрузки, используя @reboot?
  16. 13. 12. Как отключить/перенаправить исходящую почту Crontab, используя ключевое слово MAIL?
  17. 13. Как выполнять задачи Linux Cron кажду секунду, используя Crontab
  18. 14. Указание переменной PATH в Crontab
  19. 15. Установка Crontab из Cron-файла

How To Run a Cron Job Every 30 Seconds in Linux

Brief: The cron job scheduler does not support scheduling jobs to run at an interval of seconds. In this article, we will show you a simple trick to help you run a cron job every 30 seconds or x seconds in Linux.

Are you new to the cron job scheduler and want to run a job every 30 seconds? Unfortunately, cron does not allow for it. You can not schedule a cron job to run every x second. Cron only supports a time interval of at least 60 seconds (i.e 1 minute). To run a cron job every 30 seconds, you need to employ the trick we have explained below.

You might also like:

In this guide, we will also cover many other examples to run a job or command, or script every x second. But let’s start by covering how to run a cron job every 30 seconds in Linux.

Run Cron Job Every 30 Seconds in Linux

To achieve the above task, create two entries in the crontab. The first job will run the date command after every minute (60 seconds), then the second entry makes use of the sleep command to delay for a specified amount of time (30 seconds in this case) and invoke the date command again.

You need to add the following entries in the crontab (cron table), and open it for editing using the following crontab command (the -e flag enables editing):

Add the following cron entries to the file.

* * * * * date>> /tmp/date.log * * * * * sleep 30; date>> /tmp/date.log

Add Cron Job in Linux

Now if you check the contents of the /tmp/date.log file, you should see that the date command is run every 30 seconds. We can use the cat command to view the file and check the time column to confirm, as follows:

Читайте также:  Linux zip password recovery

Check Cron Runs Every 30 Seconds

You can also watch the file getting updated in real-time. To do that, use the tail command with the -f flag.

View File Contents in Real Time

Run Cron Job Every 10 Seconds in Linux

Let’s look at more examples. This one shows how to run a cron job every 10 seconds. The trick is to simply play around with the sleep command number of seconds:

* * * * * date>> /tmp/date.log * * * * * sleep 10; date>> /tmp/date.log * * * * * sleep 20; date>> /tmp/date.log * * * * * sleep 30; date>> /tmp/date.log * * * * * sleep 40; date>> /tmp/date.log * * * * * sleep 50; date>> /tmp/date.log

Once again if we watch the /tmp/date.log file, it should be updated every 10 seconds based on the above crontab entries:

Here is another example of executing the date command after every 15 seconds:

* * * * * date>> /tmp/date.log * * * * * sleep 15; date>> /tmp/date.log * * * * * sleep 30; date>> /tmp/date.log * * * * * sleep 45; date>> /tmp/date.log

Finally, to run a cron job every 20 seconds, you can have something like this:

* * * * * date>> /tmp/date.log * * * * * sleep 20; date>> /tmp/date.log * * * * * sleep 40; date>> /tmp/date.log

Also, here are more articles for you to learn job scheduling using cron:

Now you know it! We have shown you different examples to run a cron job every x second in Linux. Read the cron man pages (by running man cron and man crontab commands) for more information.

If you know any useful cron command tips or tricks, please share them in the comments below.

Источник

15 отличных примеров для создания cron задач в Linux

1. Планирование задач в течение определённого времени

Основа использования cron – выполнение задач в определённое время, как показано ниже. Это будет выполнять скрипт полного резервного копирования (full-backup) 10 июня в 8.30.

Пожалуйста, обратите внимание, что поле времени использует 24-часовой формат, Так что 8 АМ – 8, 8 РМ – 20 часов.

30 08 10 06 * /home/developer/full-backup

2. Расписание задач для более частого выполнения (например, дважды в день)

Следующий скрипт использует дополнительное резервное копирование дважды в день каждый день. В этом примере выполняется дополнительное резервное копирование (incremental-backup) в 11:00 и в 16:00 каждый день. Значения через запятую в поле указывают, что команда должна быть выполнена в каждое указанное время.

00 11,16 * * * /home/developer/bin/incremental-backup

00 – 0-ая минута (начало часа) 11, 16 – 11 и 16 часов * – каждый день * – каждый месяц * – каждый день недели

3. Расписание работы в течение определённого интервала времени (например, только в будние дни)

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

Подпрограмма Cron для каждого дня в течение рабочих часов

Этот пример каждый день проверяет состояние базы данных (включая выходные) в течение рабочих часов с 9 утра до 6 вечера.

00 09-18 * * * /home/developer/bin/check-db-status

00 – 0-ая минута (начало часа) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (часы) * – каждый день * – каждый месяц * – каждый день недели

Читайте также:  Postgresql сбросить пароль postgres linux

Подпрограмма Cron для каждого рабочего дня в течение рабочих часов

Этот пример проверяет состояние базы данных каждый рабочий день (кроме субботы и воскресенья) с 9 утра до 6 вечера.

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

00 – 0-ая минута (начало часа) 09-18 – 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (часы) * – каждый день * – каждый месяц 1-5 – Понедельник, Вторник, Среда, Четверг и Пятница (каждую неделю)

4. Как просмотреть записи Crontab?

Просмотр текущих Crontab-файлов пользователя.

Чтобы просмотреть ваши файлы crontab-l из вышей учётной записи unix, проделайте следующее.

developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space [Note: This displays crontab of the current logged in user]

Просмотр root записей crontab

Залогиньтесь в качестве root пользователя ( su — root ) и выполните crontab-l как показано ниже.

root@dev-db# crontab -l no crontab for root

Практические рекомендации crontab: просмотрите другие записи crontab пользователя linux.

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

root@dev-db# crontab -u username -l @monthly /home/username/monthly-backup 00 09-18 * * * /home/username/check-db-status

5. Как редактировать записи crontab?

Редактирование текущих пользовательских cron-записей.

Чтобы редактировать записи, используйте cronab -e как показано ниже. По умолчанию, будут редактироваться текущие записи crontab пользователя.

developer@dev-db$ crontab -e @yearly /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C [Note: This will open the crontab file in Vim editor for editing. Please note cron created a temporary /tmp/crontab.XX... ]

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

~ "crontab.XXXXyjWkHw" 2L, 83C written crontab: installing new crontab

Редактирование root записей crontab

Залогиньтесь как root пользователь ( su — root ) и сделайте crontab -e , как показано ниже.

Редактирование записей crontab-файла другого пользователя

Чтобы отредактировать запись crontab другого пользователя Linux, залогиньтесь в под root и используйте -u –е , как показано ниже.

root@dev-db# crontab -u username -e @monthly /home/username/fedora/bin/monthly-backup 00 09-18 * * * /home/username/ubuntu/bin/check-db-status ~ ~ ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

6. Выполнение Cron каждую минуту

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

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

Указание */5 в поле минут означает каждые 5 минут. Указание 0-10/2 в поле минут означает каждые 2 минуты в первых 10 минутах. Таким образом, данная условность может быть использована во всех 4 полях.

7. Запуск фоновых задач Cron каждые 10 минут

Используйте следующее, если хотите проверять место на диске каждые 10 минут.

*/10 * * * * /home/ramesh/check-disk-space

Эта задача выполняет указанную команду проверки диска каждые 10 минут на протяжении года. Но вам может потребоваться выполнение проверки только в рабочие часы или наоборот. Приведённые выше примеры показывают, как это сделать.

Вместо указания значений в 5 полях мы можем указать их, используя ключевое слово, как показано ниже.

Читайте также:  Как удалить язык в linux

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

Специальные ключевые слова Cron и их значение

Ключевое слово Эквивалент
@yearly 0 0 1 1 *
@daily 0 0 ***
@hourly 0 ****
@reboot Запуск системы

8. Расписание работы для первой минуты каждого года с использованием @yearly

Если вы хотите, чтобы cron задача выполнялись в первые минуты каждого года, то можете использовать ключевое слово @yearly , как это показано ниже. В стаком случае система будет выполнять ежегодное техническое обслуживание, используя скрипт ежегодного тех.обслуживания в 00:00 1 января каждого года.

@yearly /home/developer/red-hat/bin/annual-maintenance

9. Запуск задач каждый месяц с использованием ключевого слова @monthly

Оно схоже со словом @yearly , приведённым выше. Но команда выполняется ежемесячно. Команда будет выполнять резервное копирование в 00:00 первого числа каждого месяца.

@monthly /home/ramesh/suse/bin/tape-backup

10. Запуск задач каждый день с использованием @daily

Используя ключевое слово @daily , будет ежедневно создаваться лог-файл очистки журнала в 00:00 каждый день.

@daily /home/developer/arch-linux/bin/cleanup-logs "day started"

11. Как выполнить команду Linux после каждой перезагрузки, используя @reboot?

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

13. 12. Как отключить/перенаправить исходящую почту Crontab, используя ключевое слово MAIL?

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

developer@dev-db$ crontab -l MAIL="developer" @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space [Note: Crontab of the current logged in user with MAIL variable]

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

13. Как выполнять задачи Linux Cron кажду секунду, используя Crontab

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

14. Указание переменной PATH в Crontab

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

Например, вместо указания /home/developer/tape-backup , если вы хотите указать только tape-backup , добавьте путь /home/developer к переменной PATH в crontab , как показано ниже.

developer@dev-db$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/developer @yearly annual-maintenance */10 * * * * check-disk-space [Note: Crontab of the current logged in user with PATH variable]

15. Установка Crontab из Cron-файла

Вместо прямого редактирования файла crontab вы можете добавить, все записи в cron-файл. Если в файле есть эти записи, вы можете выгрузить или установить их в cron, как показано ниже.

Примечание: Будет создан файл cron-file.txt в вашем crontab, который удалит прежние записи cron. Поэтому, пожалуйста, будьте внимательны при загрузке записей cron из cron-file.txt :

developer@dev-db$ crontab -l no crontab for developer
$ cat cron-file.txt @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space
developer@dev-db$ crontab cron-file.txt
developer@dev-db$ crontab -l @yearly /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Источник

Оцените статью
Adblock
detector