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

Silas Mariusz

SysOp
Administrator
Apr 5, 2008
9,144
7
1,803
153
37
www.devspark.pl
QNAP
TS-x77
Ethernet
1 GbE
[INFO='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.[/info]

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
[HELP='Uprawnienia pliku']Pamiętaj, aby uruchamiany plik z crona miał uprawnienie wykonania.
chmod +x plik.sh[/HELP]

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

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?
 

esk

Nowy użytkownik
Noobie
Oct 28, 2008
4
0
1
Witam
Zadziałoło w qnap-ie 509Pro
vi /mnt/HDA_ROOT/.config/crontab
 

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?
 

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

μC Circuitmaker
Q's Architect
Feb 14, 2011
942
220
98
10
opolskie
kaktusa.pl
QNAP
TS-219P+
Ethernet
1 GbE
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

SysOp
Administrator
Apr 5, 2008
9,144
7
1,803
153
37
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 FAQ 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

μC Circuitmaker
Q's Architect
Feb 14, 2011
942
220
98
10
opolskie
kaktusa.pl
QNAP
TS-219P+
Ethernet
1 GbE
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