Гаразд, тому я зробив свій сценарій, я запустив його, /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 речі завжди вирішували мої проблеми :)