Ok, więc stworzyłem swój skrypt, upuściłem go, /etc/cron.hourly
a następnie chmod 777
plik, ale nie uruchomi się (automatycznie). Jeśli uruchomię go ręcznie, działa dobrze. Czy muszę zrobić coś jeszcze?
cron-jobs
command-line
crontab
cron
Switchkick
źródło
źródło
Odpowiedzi:
Dlaczego nie użyć crontab (/ etc / crontab) i użyć * / 1 w polu godziny. Użyłem tego do uruchamiania skryptu co 5 minut i działa dobrze:
źródło
cron.daily
i znajomych działa nieco lepiej, jeśli maszyna nie działa przez cały czas, ponieważ anacron próbuje zbliżyć się do właściwego harmonogramu, podczas gdy zwykły cron po prostu nie uruchomi ich, jeśli maszyna nie będzie działać przez całą noc. W przypadku godzinowych prac prawdopodobnie nie ma to większego znaczenia./etc/crontab
:cron.daily
,cron.weekly
icron.monthly
biegać z anacron (jeśli są dostępne), ale co godzinęrun-parts --report /etc/cron.hourly
.Wpisy
cron.hourly
są uruchamiane przez mechanizm części roboczych (man run-parts
więcej informacji). Irun-parts
jest wybredny co do nazw plików, które uważa za prawidłowe.Na przykład nadanie skryptu rozszerzenia spowoduje, że będzie ono nieprawidłowe i spowoduje, że zadanie nie zostanie uruchomione.
[a-zA-Z0-9_-]
są poprawnymi znakami, więc „.” czyni to nieważnym.Podczas dodawania zadania do
/etc/cron.hourly
(lub.daily
,.weekly
itp), zawsze przetestować potem, żerun-parts
faktycznie go uruchomić za pomocą polecenia:Jeśli uruchomienie tego polecenia pokazuje plik, oznacza to, że zadziałało. W przeciwnym razie, jeśli nic nie pokazuje, nazwa pliku jest nieprawidłowa.
Jak nazywał się twój skrypt?
źródło
giving your script an extension will make it invalid and result in the job not being run
--report
do faktycznego uruchomienia skryptów.Problem prawdopodobnie wynika z nadmiernie otwartych uprawnień, które pozwalają każdemu edytować plik. Spróbuj
755
zamiast tego.Przejrzenie wpisów cron w danych wyjściowych syslog powinno to potwierdzić.
źródło
Odpowiedź DaithiF powinna być właściwą odpowiedzią.
Poza tym mój skrypt nie miał
#!/bin/bash
w pierwszym wierszu. Mimo że skrypt można wykonać za pomocą wiersza polecenia,run-parts
odrzucił go, mówiąc „Błąd formatu wykonania”.Zmiana nazwy pliku z
scriptname.sh
celuscriptname
i dodanie#!/bin/bash
w pierwszej linii włączony mój skrypt do uruchomienia co godzinę.źródło
Kiedy biegniesz
czy to zadanie jest na liście?
jeśli nie, dodaj go
dodaj tę linię
jeśli jest na tej liście, spróbuj dodać ścieżkę języka programowania na górze skryptu
Przykład:
Te 2 rzeczy zawsze rozwiązały moje problemy :)
źródło