Гаразд, тому я зробив свій сценарій, я запустив його, /etc/cron.hourly
тоді я chmod 777
файл, але він не запуститься (автоматично). Якщо я вручну запускаю, це працює чудово. Чи потрібно мені щось ще робити?
Гаразд, тому я зробив свій сценарій, я запустив його, /etc/cron.hourly
тоді я chmod 777
файл, але він не запуститься (автоматично). Якщо я вручну запускаю, це працює чудово. Чи потрібно мені щось ще робити?
Відповіді:
Чому б не використовувати crontab (/ etc / crontab) і не використовувати * / 1 у годинному полі. Я використовував це для запуску сценарію кожні 5 хв. Він добре працює:
# m h dom mon dow user command
* */1 * * * user command
cron.daily
та друзів працює трохи краще, якщо машина не працює весь час, оскільки анакрон намагається наблизити правильний графік, тоді як звичайний крон просто не запустить їх, якщо машина не працює всю ніч. Для погодинної роботи це, мабуть, не так важливо.
/etc/crontab
: cron.daily
, cron.weekly
і cron.monthly
працювати з Anacron (якщо такі є) , а по годинах run-parts --report /etc/cron.hourly
.
Записи в cron.hourly
них виконуються за допомогою механізму виконання частин ( man run-parts
для отримання додаткової інформації). І не run-parts
викликає сумнівів у тому, які імена файлів він вважає дійсними.
Наприклад, додавання розширення сценарію зробить його недійсним і призведе до того, що завдання не буде виконано. [a-zA-Z0-9_-]
є дійсними символами, тому "." робить його недійсним.
Додаючи завдання до /etc/cron.hourly
(або .daily
, .weekly
і т. Д.), Завжди перевіряйте після цього, що run-parts
насправді буде запущено, видавши команду:
run-parts --test /etc/cron.hourly
Якщо запустивши цю команду, він показує ваш файл, це означає, що він працював. В іншому випадку, якщо нічого не відображається, ім’я вашого файла недійсне.
Як звали твій сценарій?
giving your script an extension will make it invalid and result in the job not being run
--report
для запуску сценаріїв.
Можливо, ваша проблема зводиться до надто відкритих дозволів, що дозволяє будь-кому редагувати ваш файл. Спробуйте 755
замість цього.
Дивлячись на записи хронів у вашому висновку syslog, це слід підтвердити.
Відповідь DaithiF має бути правильною відповіддю.
Крім того, мій сценарій не був #!/bin/bash
у першому рядку. Навіть незважаючи на те, що сценарій може бути виконаний командним рядком, run-parts
він відхилив його, кажучи "Помилка формату Exec".
Зміна імені файлу з scriptname.sh
на scriptname
та додавання #!/bin/bash
до першого рядка дозволило моєму сценарію працювати щогодини.
Коли ти біжиш
crontab -l
це завдання у списку?
якщо ні, додайте його
crontab -e
додати цей рядок
0 * * * * yourScript
якщо він є в цьому списку, спробуйте додати шлях мови програмування до верхньої частини сценарію
Приклад:
bash: #!/bin/bash
Ці 2 речі завжди вирішували мої проблеми :)