Cron.hourly не будет работать

ок, я сделал свой скрипт, я бросил его в /etc/cron.hourly потом chmod 777 файл но он не запускается (автоматически). Если я вручную запустить его, он отлично работает. Мне нужно делать что-то еще?

48
задан 11 September 2011 в 22:50

40 ответов

Почему бы не использовать crontab (/ etc / crontab) и использовать * / 1 в поле часа. Я использовал это для запуска скрипта каждые 5 минут, и он хорошо работает:

# m h dom mon dow user  command
* */1  * * *   user    command
12
ответ дан 26 May 2018 в 00:55
  • 1
    Я дам вам возможность и благодарю вас! – Switchkick 21 October 2010 в 05:13
  • 2
    Использование cron.daily и друзей работает немного лучше, если машина не работает все время, потому что anacron пытается приблизиться к правильному расписанию, тогда как простой cron просто не запускает их, если машина не на всю ночь. Для почасовых заданий это, вероятно, не имеет большого значения. – poolie 2 December 2010 в 04:20
  • 3
    Я действительно ценю следующий ответ, поскольку он решает проблему с cron.hourly, вместо того, чтобы найти обходной путь. – tishma 24 January 2014 в 20:24
  • 4
    Это не ответ на вопрос – josh123a123 16 November 2016 в 19:48
  • 5
    @poolie Как видно на /etc/crontab : cron.daily, cron.weekly и cron.monthly работают с anacron (если доступно), но ежечасно run-parts --report /etc/cron.hourly. – Pablo Bianchi 5 February 2018 в 19:24

Почему бы не использовать crontab (/ etc / crontab) и использовать * / 1 в поле часа. Я использовал это для запуска скрипта каждые 5 минут, и он хорошо работает:

# m h dom mon dow user command * */1 * * * user command
12
ответ дан 25 July 2018 в 23:03

Почему бы не использовать crontab (/ etc / crontab) и использовать * / 1 в поле часа. Я использовал это для запуска скрипта каждые 5 минут, и он хорошо работает:

# m h dom mon dow user command * */1 * * * user command
12
ответ дан 27 July 2018 в 02:19

Почему бы не использовать crontab (/ etc / crontab) и использовать * / 1 в поле часа. Я использовал это для запуска скрипта каждые 5 минут, и он хорошо работает:

# m h dom mon dow user command * */1 * * * user command
12
ответ дан 31 July 2018 в 10:29

Почему бы не использовать crontab (/ etc / crontab) и использовать * / 1 в поле часа. Я использовал это для запуска скрипта каждые 5 минут, и он хорошо работает:

# m h dom mon dow user command * */1 * * * user command
12
ответ дан 2 August 2018 в 04:24

Почему бы не использовать crontab (/ etc / crontab) и использовать * / 1 в поле часа. Я использовал это для запуска скрипта каждые 5 минут, и он хорошо работает:

# m h dom mon dow user command * */1 * * * user command
12
ответ дан 4 August 2018 в 20:55

Почему бы не использовать crontab (/ etc / crontab) и использовать * / 1 в поле часа. Я использовал это для запуска скрипта каждые 5 минут, и он хорошо работает:

# m h dom mon dow user command * */1 * * * user command
12
ответ дан 6 August 2018 в 04:28

Почему бы не использовать crontab (/ etc / crontab) и использовать * / 1 в поле часа. Я использовал это для запуска скрипта каждые 5 минут, и он хорошо работает:

# m h dom mon dow user command * */1 * * * user command
12
ответ дан 7 August 2018 в 22:36

Записи в cron.hourly выполняются механизмом run-parts (man run-parts для получения дополнительной информации). И run-parts разборчиво относится к именам файлов, которые он считает действительными.

Например, если ваш сценарий расширяет его, он будет недействительным и приведет к тому, что задание не будет запущено. [a-zA-Z0-9_-] являются действительными символами, поэтому '.' делает его недействительным.

При добавлении задания в /etc/cron.hourly (или .daily, .weekly и т. д.), всегда проверяйте потом, что run-parts фактически запустит его, выполнив команду:

run-parts --test /etc/cron.hourly

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

Каково было имя вашего скрипта?

131
ответ дан 26 May 2018 в 00:55
  • 1
    Есть два: cerebro_random_response.sh и Cerebro Temperature.sh не так ли? – Switchkick 14 May 2011 в 05:41
  • 2
    правильно, не хорошо :) [a-zA-Z0-9_-] - действительные символы, поэтому '.' делает его недействительным. Это то, что я имел в виду выше, «давая вашему сценарию расширение, сделает его недействительным» – DaithiF 19 May 2011 в 21:43
  • 3
    oMG, Это просто спасло огромную головную боль. СПАСИБО! [F1] – Jonathan S. Fisher 6 December 2013 в 04:16
  • 4
    Вы также можете использовать --report для фактического запуска скриптов. – Pablo Bianchi 5 February 2018 в 20:24

Ваша проблема, вероятно, сводится к чрезмерно открытым разрешениям, что позволяет кому-либо редактировать ваш файл. Попробуйте 755 вместо этого.

Глядя в записи cron на вашем выходе syslog, вы должны подтвердить это.

4
ответ дан 26 May 2018 в 00:55

Ответ DaithiF должен быть правильным ответом.

Кроме того, у моего скрипта не было #!/bin/bash в первой строке. Несмотря на то, что сценарий можно выполнить с помощью командной строки, run-parts отклонил его, указав «Ошибка формата Exec».

Изменение имени файла с scriptname.sh до scriptname и добавление #!/bin/bash в первую строку позволило запустить мой скрипт по часам.

4
ответ дан 26 May 2018 в 00:55

Когда вы запускаете

crontab -l

, это задание в списке?

, если нет, добавьте его

crontab -e

добавьте эту строку

0 * * * * yourScript

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

Пример:

bash: #!/bin/bash

Это 2 вещи всегда решали мои проблемы:)

0
ответ дан 26 May 2018 в 00:55
  • 1
    Сделал все, и сценарий хорош, он работает как шарм. Это также в списке crontab, но не почасовая задача. Спасибо, в любом случае :( – Switchkick 20 October 2010 в 13:17

Ваша проблема, вероятно, сводится к чрезмерно открытым разрешениям, что позволяет кому-либо редактировать ваш файл. Попробуйте 755 вместо этого.

Глядя в записи cron на вашем выходе syslog, вы должны подтвердить это.

4
ответ дан 25 July 2018 в 23:03

Записи в cron.hourly выполняются механизмом run-parts (man run-parts для получения дополнительной информации). И run-parts разборчиво относится к именам файлов, которые он считает действительными.

Например, если ваш сценарий расширяет его, он будет недействительным и приведет к тому, что задание не будет запущено. [a-zA-Z0-9_-] являются действительными символами, поэтому '.' делает его недействительным.

При добавлении задания в /etc/cron.hourly (или .daily, .weekly и т. д.), всегда проверяйте потом, что run-parts фактически запустит его, выполнив команду:

run-parts --test /etc/cron.hourly

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

Каково было имя вашего скрипта?

132
ответ дан 25 July 2018 в 23:03
  • 1
    Есть два: cerebro_random_response.sh и Cerebro Temperature.sh не так ли? – Switchkick 14 May 2011 в 05:41
  • 2
    правильно, не хорошо :) [a-zA-Z0-9_-] - действительные символы, поэтому '.' делает его недействительным. Это то, что я имел в виду выше, «давая вашему сценарию расширение, сделает его недействительным» – DaithiF 19 May 2011 в 21:43
  • 3
    oMG, Это просто спасло огромную головную боль. СПАСИБО! [F1] – Jonathan S. Fisher 6 December 2013 в 04:16
  • 4
    Вы также можете использовать --report для фактического запуска скриптов. – Pablo Bianchi 5 February 2018 в 20:24

Ответ DaithiF должен быть правильным ответом.

Кроме того, у моего скрипта не было #!/bin/bash в первой строке. Несмотря на то, что сценарий можно выполнить с помощью командной строки, run-parts отклонил его, указав «Ошибка формата Exec».

Изменение имени файла с scriptname.sh до scriptname и добавление #!/bin/bash в первую строку позволило запустить мой скрипт по часам.

4
ответ дан 25 July 2018 в 23:03

Когда вы запускаете

crontab -l

, это задание в списке?

, если нет, добавьте его

crontab -e

добавьте эту строку

0 * * * * yourScript

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

Пример:

bash: #!/bin/bash

Это 2 вещи всегда решали мои проблемы:)

0
ответ дан 25 July 2018 в 23:03
  • 1
    Сделал все, и сценарий хорош, он работает как шарм. Это также в списке crontab, но не почасовая задача. Спасибо, в любом случае :( – Switchkick 20 October 2010 в 13:17

Ваша проблема, вероятно, сводится к чрезмерно открытым разрешениям, что позволяет кому-либо редактировать ваш файл. Попробуйте 755 вместо этого.

Глядя в записи cron на вашем выходе syslog, вы должны подтвердить это.

4
ответ дан 27 July 2018 в 02:19

Записи в cron.hourly выполняются механизмом run-parts (man run-parts для получения дополнительной информации). И run-parts разборчиво относится к именам файлов, которые он считает действительными.

Например, если ваш сценарий расширяет его, он будет недействительным и приведет к тому, что задание не будет запущено. [a-zA-Z0-9_-] являются действительными символами, поэтому '.' делает его недействительным.

При добавлении задания в /etc/cron.hourly (или .daily, .weekly и т. д.), всегда проверяйте потом, что run-parts фактически запустит его, выполнив команду:

run-parts --test /etc/cron.hourly

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

Каково было имя вашего скрипта?

132
ответ дан 27 July 2018 в 02:19
  • 1
    Есть два: cerebro_random_response.sh и Cerebro Temperature.sh не так ли? – Switchkick 14 May 2011 в 05:41
  • 2
    правильно, ничего хорошего :) [а-яа-З0-9_-] приведены допустимые символы, поэтому ''. делает его недействительным. Это я и имел ввиду выше, отдавая свой скрипт расширением сделает его недействительным' – DaithiF 19 May 2011 в 21:43
  • 3
    oMG, Это просто спасло огромную головную боль. СПАСИБО! [F1] – Jonathan S. Fisher 6 December 2013 в 04:16
  • 4
    Вы также можете использовать --report для фактического запуска скриптов. – Pablo Bianchi 5 February 2018 в 20:24

Ответ DaithiF должен быть правильным ответом.

Кроме того, у моего скрипта не было #!/bin/bash в первой строке. Несмотря на то, что сценарий можно выполнить с помощью командной строки, run-parts отклонил его, указав «Ошибка формата Exec».

Изменение имени файла с scriptname.sh до scriptname и добавление #!/bin/bash в первую строку позволило запустить мой скрипт по часам.

4
ответ дан 27 July 2018 в 02:19

Когда вы запускаете

crontab -l

, это задание в списке?

, если нет, добавьте его

crontab -e

добавьте эту строку

0 * * * * yourScript

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

Пример:

bash: #!/bin/bash

Это 2 вещи всегда решали мои проблемы:)

0
ответ дан 27 July 2018 в 02:19
  • 1
    Сделал все, и сценарий хорош, он работает как шарм. Это также в списке crontab, но не почасовая задача. Спасибо, в любом случае :( – Switchkick 20 October 2010 в 13:17

Ваша проблема, вероятно, сводится к чрезмерно открытым разрешениям, что позволяет кому-либо редактировать ваш файл. Попробуйте 755 вместо этого.

Глядя в записи cron на вашем выходе syslog, вы должны подтвердить это.

4
ответ дан 31 July 2018 в 10:29

Записи в cron.hourly выполняются механизмом run-parts (man run-parts для получения дополнительной информации). И run-parts разборчиво относится к именам файлов, которые он считает действительными.

Например, если ваш сценарий расширяет его, он будет недействительным и приведет к тому, что задание не будет запущено. [a-zA-Z0-9_-] являются действительными символами, поэтому '.' делает его недействительным.

При добавлении задания в /etc/cron.hourly (или .daily, .weekly и т. д.), всегда проверяйте потом, что run-parts фактически запустит его, выполнив команду:

run-parts --test /etc/cron.hourly

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

Каково было имя вашего скрипта?

132
ответ дан 31 July 2018 в 10:29
  • 1
    Есть два: cerebro_random_response.sh и Cerebro Temperature.sh не так ли? – Switchkick 14 May 2011 в 05:41
  • 2
    правильно, не хорошо :) [a-zA-Z0-9_-] - действительные символы, поэтому '.' делает его недействительным. Это то, что я имел в виду выше, «давая вашему сценарию расширение, сделает его недействительным» – DaithiF 19 May 2011 в 21:43
  • 3
    oMG, Это просто спасло огромную головную боль. СПАСИБО! [F1] – Jonathan S. Fisher 6 December 2013 в 04:16
  • 4
    Вы также можете использовать --report для фактического запуска скриптов. – Pablo Bianchi 5 February 2018 в 20:24

Ответ DaithiF должен быть правильным ответом.

Кроме того, у моего скрипта не было #!/bin/bash в первой строке. Несмотря на то, что сценарий можно выполнить с помощью командной строки, run-parts отклонил его, указав «Ошибка формата Exec».

Изменение имени файла с scriptname.sh до scriptname и добавление #!/bin/bash в первую строку позволило запустить мой скрипт по часам.

4
ответ дан 31 July 2018 в 10:29

при запуске

crontab -l

эту задачу в списке?

если нет, то добавить это

crontab -e

добавьте следующую строку

0 * * * * yourScript

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

пример:

bash: #!/bin/bash

эти 2 вещи всегда решал мои проблемы :)

0
ответ дан 31 July 2018 в 10:29
  • 1
    Сделал все, и сценарий хорош, он работает как шарм. Это также в списке crontab, но не почасовая задача. Спасибо, в любом случае :( – Switchkick 20 October 2010 в 13:17

Ваша проблема, вероятно, сводится к чрезмерно открытым разрешениям, что позволяет кому-либо редактировать ваш файл. Попробуйте 755 вместо этого.

Глядя в записи cron на вашем выходе syslog, вы должны подтвердить это.

4
ответ дан 2 August 2018 в 04:24

Записи в cron.hourly выполняются механизмом run-parts (man run-parts для получения дополнительной информации). И run-parts разборчиво относится к именам файлов, которые он считает действительными.

Например, если ваш сценарий расширяет его, он будет недействительным и приведет к тому, что задание не будет запущено. [a-zA-Z0-9_-] являются действительными символами, поэтому '.' делает его недействительным.

При добавлении задания в /etc/cron.hourly (или .daily, .weekly и т. д.), всегда проверяйте потом, что run-parts фактически запустит его, выполнив команду:

run-parts --test /etc/cron.hourly

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

Каково было имя вашего скрипта?

132
ответ дан 2 August 2018 в 04:24
  • 1
    Есть два: cerebro_random_response.sh и Cerebro Temperature.sh не так ли? – Switchkick 14 May 2011 в 05:41
  • 2
    правильно, ничего хорошего :) [а-яа-З0-9_-] приведены допустимые символы, поэтому ''. делает его недействительным. Это я и имел ввиду выше, отдавая свой скрипт расширением сделает его недействительным' – DaithiF 19 May 2011 в 21:43
  • 3
    oMG, Это просто спасло огромную головную боль. СПАСИБО! [F1] – Jonathan S. Fisher 6 December 2013 в 04:16
  • 4
    Вы также можете использовать [F1], чтобы фактически запустить скрипты. – Pablo Bianchi 5 February 2018 в 20:24

Ответ DaithiF должен быть правильным ответом.

Кроме того, у моего скрипта не было #!/bin/bash в первой строке. Несмотря на то, что сценарий можно выполнить с помощью командной строки, run-parts отклонил его, указав «Ошибка формата Exec».

Изменение имени файла с scriptname.sh до scriptname и добавление #!/bin/bash в первую строку позволило запустить мой скрипт по часам.

4
ответ дан 2 August 2018 в 04:24

Когда вы запускаете

crontab -l

, это задание в списке?

, если нет, добавьте его

crontab -e

добавьте эту строку

0 * * * * yourScript

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

Пример:

bash: #!/bin/bash

Это 2 вещи всегда решали мои проблемы:)

0
ответ дан 2 August 2018 в 04:24
  • 1
    Сделал все, и сценарий хорош, он работает как шарм. Это также в списке crontab, но не почасовая задача. Спасибо, в любом случае :( – Switchkick 20 October 2010 в 13:17

Ваша проблема, вероятно, сводится к чрезмерно открытым разрешениям, что позволяет кому-либо редактировать ваш файл. Попробуйте 755 вместо этого.

Глядя в записи cron на вашем выходе syslog, вы должны подтвердить это.

4
ответ дан 4 August 2018 в 20:55

Записи в cron.hourly выполняются механизмом run-parts (man run-parts для получения дополнительной информации). И run-parts разборчиво относится к именам файлов, которые он считает действительными.

Например, если ваш сценарий расширяет его, он будет недействительным и приведет к тому, что задание не будет запущено. [a-zA-Z0-9_-] являются действительными символами, поэтому '.' делает его недействительным.

При добавлении задания в /etc/cron.hourly (или .daily, .weekly и т. д.), всегда проверяйте потом, что run-parts фактически запустит его, выполнив команду:

run-parts --test /etc/cron.hourly

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

Каково было имя вашего скрипта?

132
ответ дан 4 August 2018 в 20:55
  • 1
    Есть два: cerebro_random_response.sh и Cerebro Temperature.sh не так ли? – Switchkick 14 May 2011 в 05:41
  • 2
    правильно, не хорошо :) [a-zA-Z0-9_-] - действительные символы, поэтому '.' делает его недействительным. Это то, что я имел в виду выше, «давая вашему сценарию расширение, сделает его недействительным» – DaithiF 19 May 2011 в 21:43
  • 3
    oMG, Это просто спасло огромную головную боль. СПАСИБО! [F1] – Jonathan S. Fisher 6 December 2013 в 04:16
  • 4
    Вы также можете использовать [F1], чтобы фактически запустить скрипты. – Pablo Bianchi 5 February 2018 в 20:24

Другие вопросы по тегам:

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