How-To Cron (Crontab) - harmonogram zadań - edycja

Silas Mariusz

Silas Mariusz

rm -rf /
Help us, GOD!
Apr 5, 2008
10,004
30
2,666
153
39
www.devspark.pl
QNAP
TS-x77
Ethernet
1 GbE
cron cron jest opartym na czasie programem do harmonogramowania zadań w systemach operacyjnych z rodziny Unixa. Może zostać wykorzystany do uruchamiania zadań (programów, komend, skryptów) o określonych godzinach, datach albo regularnie zgodnie z określonym interwałem.


Aby wyświetlić znajdujące się w cron'ie zaplanowane zadania wykonaj polecenie:
Bash:
crontab -l

Aby dodać nowe zadanie do cron'a:
  1. Edytuj plik /etc/config/crontab, za pomocą edytora np.: nano, vi lub mcedit
    Bash:
    mcedit /etc/config/crontab
    
    # lub vi...
    vi /etc/config/crontab

  2. Przeładuj cron'a i zrestartuj jego usługę:
    Bash:
    crontab /etc/config/crontab && /etc/init.d/crond.sh restart
uprawnienia pliku Pamiętaj, aby uruchamiany plik z crona miał uprawnienie wykonania.
chmod +x plik.sh


Stara metoda:
Wielu z Was pewnie chcialoby dodac jakas swoja aplikacje do crontab'a.
Sprawa bardzo prosta lecz nie robimy tego w sposob crontab -e, lecz:
Code:
vi /mnt/HDA_ROOT/.config/crontab
 
  • Like
Reactions: QNAP and kaktus
E

esk

Nowy użytkownik
Noobie
Oct 28, 2008
4
0
1
Witam.
Na Qnap'ie 109 crontab pamięta ustawienia po restarcie natomiast na 509 po każdym restarcie crontab jest bez moich wpisów,
co prawda wpisywałem przy urzyciu edytora z MC ale to chyba nie ma znaczenia?
Gdzie i jak można ustawić crontaba na stałe?
 
Silas Mariusz

Silas Mariusz

rm -rf /
Help us, GOD!
Apr 5, 2008
10,004
30
2,666
153
39
www.devspark.pl
QNAP
TS-x77
Ethernet
1 GbE
na TS-509 sprawdz:
# crontab -e
moze zadziala... daj znac
 
m@k

m@k

Passing Basics
Beginner
May 6, 2009
22
2
3
Kraków
QNAP
TS-x51
Ethernet
1 GbE
Na moim TS-109 II faktycznie, jakakolwiek modyfikacja po crontab -e nie jest zapisywana. Zmieniłem plik

/mnt/HDA_ROOT/.config/crontab

zrestartowalem /etc/init.d/crond.sh restart. Ale crontab -l wypisuje wciąż starą listę zadań różną od tego co mam w pliku /mnt/HDA_ROOT/.config/crontab.
Jak sprawdzić, skąd faktycznie cron czyta plik?
 
S

sebattt

Nowy użytkownik
Noobie
Jul 3, 2010
1
1
3
m@k said:
Na moim TS-109 II faktycznie, jakakolwiek modyfikacja po crontab -e nie jest zapisywana. Zmieniłem plik

/mnt/HDA_ROOT/.config/crontab

zrestartowalem /etc/init.d/crond.sh restart. Ale crontab -l wypisuje wciąż starą listę zadań różną od tego co mam w pliku /mnt/HDA_ROOT/.config/crontab.
Jak sprawdzić, skąd faktycznie cron czyta plik?

cron dziala na danych zapisanych w
Code:
/var/spool/cron/crontabs/
Nie edytuje się ich bezpośrednio, lecz wymusza załadowanie z pliku:
Code:
crontab /etc/config/crontab
Trzeba tu wspomnieć, że /etc/config/crontab jest podlinkowany do /mnt/HDA_ROOT/.config/crontab, a więc w Twoim przypadku, przed restartem crond trzeba jeszcze wywołać crontab /etc/config/crontab.
 
  • Like
Reactions: kaktus
kaktus

kaktus

μC Circuitmaker
Contributor
Feb 14, 2011
941
220
113
12
opolskie
kaktusa.pl
QNAP
TS-219P+
Ethernet
1 GbE
  • ·
  • TS-219P+
  • ·
  • 1 GbE
  • ·
  • ostatni możliwy do używania
Co może być na rzeczy, że po starcie QTS nie uruchamia się moje zadania z cron-a. Postępowałem wg powyższych instrukji, wpis nie jest tracony z tablicy. Zaczyna dopiero funkcjonować po:
Bash:
/etc/init.d/crond.sh restart
 
Silas Mariusz

Silas Mariusz

rm -rf /
Help us, GOD!
Apr 5, 2008
10,004
30
2,666
153
39
www.devspark.pl
QNAP
TS-x77
Ethernet
1 GbE
Klasyczny problem. Otóż @kaktus wyobraź sobie, że podczas startu Twój system ma zupełnie inne zmienne środowiskowe niż te, które są po Twoim zalogowaniu się na shell z /etc/profile.

Dlatego w cron'ie zrób sobie wpis na plik pośredni który będzie logował uruchomienie docelowego pliku.
Bash:
#!/bin/sh

EXECLOG="/share/Public/cronexec.log"

# log stderr
sh /share/Public/runme.sh >> $EXECLOG 2>&1

# lub stdout
sh /share/Public/runme.sh >> $EXECLOG

# albo jesli posiadasz w systemie tee
export PATH="$PATH:/usr/bin:/opt/bin"
sh /share/Public/runme.sh | tee -a $EXECLOG

Pamiętaj też, żeby wykorzystywać crontab do zadań do, którym ma on służyć. Czyli cykliczny harmonogram uruchomień programu. Przypadkiem nie używaj crontab'a jako alternatywy do autostartu.
 
kaktus

kaktus

μC Circuitmaker
Contributor
Feb 14, 2011
941
220
113
12
opolskie
kaktusa.pl
QNAP
TS-219P+
Ethernet
1 GbE
  • ·
  • TS-219P+
  • ·
  • 1 GbE
  • ·
  • ostatni możliwy do używania
Tych czarówmarów nie uskuteczniłem, ale naprowadziłeś mnie na rozwiązanie, dopisałem pełną ścieżkę do wywoływanego programu ;-)

Powinno działać po restarcie lepiej. ;-p
 
Silas Mariusz

Silas Mariusz

rm -rf /
Help us, GOD!
Apr 5, 2008
10,004
30
2,666
153
39
www.devspark.pl
QNAP
TS-x77
Ethernet
1 GbE
Co Ty chcesz mi powiedzieć, że uruchamiałeś program nie podając jego ścieżki?!
 

Users search this thread by keywords

  1. crontab edycja