Задание крона в течение каждой минуты, выполняясь не в порядке?

Необходимо смочь наблюдать журналы веб-сервера, в сочетании с выполненным wget. Ищите 404в файле журнала и получении по запросу referrer поле. Это скажет Вам страницу, которая содержит неработающую ссылку.

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

3
20.06.2013, 02:43
2 ответа

Нет никакой гарантии, что крон выполнит задачи в порядке, в котором они появляются в cronfile. На самом деле это может выполнить две задачи одновременно. Таким образом, это определенно не, хорошая идея иметь задачи зависит друг от друга. Например, в Вашем cronfile, одна задача создает файл, и другой (или три) добавляет к нему. Если appender запустится сначала, то создатель эффективно удалит работу appender.

Лучше должен был бы создать сценарий драйвера с четырехкаждыми-минутными выполнениями myscript и другой с двумя выполнениями every-five-minute. Затем Вы можете крон два сценария драйвера, приводящие только к одной задаче крона для каждого временного интервала.

3
27.01.2020, 21:17
  • 1
    Это - лучшее решение в моем случае, так как у меня есть ограниченный доступ к системе, но я могу запустить скрипты локально от моего идентификатора пользователя. Очень ценивший. Корректный :) –  Nick L. 19.06.2013, 21:19

Что касается крона, у Вас есть много команд, которые выполняются одновременно. Крон просто создает некоторые дочерние процессы, которые работают 'параллельно' - т.е. они так или иначе мультиопределяются задачу/планируются, который представляет гонки данных за Вашим вариантом использования.

Для Вашей проблемы Вам действительно не нужен крон. Простой сценарий оболочки как этот достаточно:

#!/bin/sh
function f1() {
  ~/myscript.pl ~/mylog | tail -3 | head -1 > ~/myreport1
  ~/myscript.pl ~/mylog | tail -2 | head -1 >> ~/myreport1
}

function f2() {
 ~/myscript.pl ~/mylog | tail -8 | head -1 > ~/myreport2
 ~/myscript.pl ~/mylog | tail -7 | head -1 >> ~/myreport2
 ~/myscript.pl ~/mylog | tail -3 | head -1 >> ~/myreport2
 ~/myscript.pl ~/mylog | tail -2 | head -1 >> ~/myreport2
}

while true; do
  f1
  f2
  sleep 1
  f2
  sleep 1
  f2
  sleep 1
  f2
  sleep 1
  f2
  sleep 1
done

Теперь все четко определено, т.е. порядок выполнения гарантируется.

Вы могли запустить его (как фоновое задание) через at - или звоните от a screen сессия.

2
27.01.2020, 21:17

Теги

Похожие вопросы