Portál AbcLinuxu, 12. května 2025 21:41

Dotaz: jednoduchy skript+casovane spustanie cez crond

Libco avatar 27.6.2007 11:42 Libco | skóre: 8 | Banska Bystrica - sk
jednoduchy skript+casovane spustanie cez crond
Přečteno: 978×
Odpovědět | Admin
Mam skriptik reboot.sh, po spusteni funguje ako ma. Ale precital som si nieco o crond-e a celkom sa mi zapacila moznost opakovat ulohu v jednotlivych casovych intervaloch. Dopisal som do /var/spool/cron/crontabs/root riadok> 40 11 * * * /usr/local/sbin/reboot.sh a subor som ulozil. V dany cas mal restartovat PC, ale nestalo sa tak. Pri vypise ps je crond spusteny. Pouzivam slackware. Poradi mi niekto. Uz dva dni to skusam a stale nic.
lama
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wolf09 avatar 27.6.2007 11:49 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud vam skript bezi i z konzole, tak je asi spravne spustitelny.

Zkuste, zda se spusti i neco jineho pridanim do crontabu treba : 39 11 * * * /bin/date >> /root/test.log

Zkontrolujte, zda ve skriptu pouzivate absolutni cesty pro spusteni prikazu, protoze v cronu neni stejna promenna PATH, takze misto reboot dejte /sbin/reboot.
Zkusili jste to vypnout a znovu zapnout ?
Libco avatar 27.6.2007 12:12 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Urobil som to podla pokynov. Zmenil som reboot na /sbin/reboot = nefungovalo. pridal som do crontabu 11 12 * * * /bin/date >> /root/test.log = nic. Spavne som pochopil ze sa mal vytvorit subor /root/test.log a v nom mal byt datum?
lama
wolf09 avatar 27.6.2007 13:50 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
melo to zapsat datum do souboru /root/test.log

Mimochodem, jake jsete to pridal do crontabu ? crontab -e ?

zkuste jeste restatovat cron
Zkusili jste to vypnout a znovu zapnout ?
Jiří Poláček avatar 27.6.2007 11:54 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nějak mi tam chybí login uživatele, pod kterým se skript má spustit.
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
Libco avatar 27.6.2007 12:15 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
V slackware som pod root - om, takze tam login byt nemusi. Ale skusal som aj to.
lama
Marián Kyral avatar 27.6.2007 11:56 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co je v tom skriptu?

Obvyklý problém u cronu je, že v okamžiku spuštění nejsou nadefinovány žádné proměnné prostředí. Takže všechny programy by se měly uvádět s plnou cestou, nebo ty proměnné nastavit v crontabu. Hlavně PATH.

Cron taky dělá log, takže se podívej do /var/log/cron.log, nebo jak se ten soubor jmenuje.
Libco avatar 27.6.2007 12:24 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
skript> #!/bin/sh /sbin/reboot

vypis cron.log> Jun 27 11:18:19 libco crond[3940]: ./crond 2.3.3 dillon, started, log level 8 Jun 27 11:18:30 libco crond[3942]: crond 2.3.3 dillon, started, log level 8 Jun 27 11:47:01 libco crond[3942]: USER root pid 3992 cmd /usr/bin/run-parts /etc/cron.hourly 1> /dev/null Jun 27 11:47:01 libco crond[3940]: USER root pid 4014 cmd /usr/bin/run-parts /etc/cron.hourly 1> /dev/null Jun 27 12:07:21 libco crond[4071]: crond 2.3.3 dillon, started, log level 8
lama
Libco avatar 27.6.2007 12:47 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Prepacte, je to spatne citatelne. Oprava.

skript>
#!/bin/sh
/sbin/reboot

vypis cron.log>
Jun 27 11:18:19 libco crond[3940]: ./crond 2.3.3 dillon, started, log level 8
Jun 27 11:18:30 libco crond[3942]: crond 2.3.3 dillon, started, log level 8
Jun 27 11:47:01 libco crond[3942]: USER root pid 3992 cmd /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
Jun 27 11:47:01 libco crond[3940]: USER root pid 4014 cmd /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
Jun 27 12:07:21 libco crond[4071]: crond 2.3.3 dillon, started, log level 8
lama
Libco avatar 27.6.2007 12:51 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Je mozne ze by crond nefungoval so skriptom ale len so zdrojakom?
lama
Medved09 avatar 27.6.2007 12:54 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Odpovědět | | Sbalit | Link | Blokovat | Admin

Dopisal som do /var/spool/cron/crontabs/root riadok > 40 11 * * * /usr/local/sbin/reboot.sh a subor som ulozil.
No ja nevim, ja teda vzdycky editoval crontab pomoci crontab -e, takze predpokladam ze problem bude v modtime toho /var/spool/cron/crontabs/ jak se pravi v

man cron

Additionally, cron checks each minute to see if its spool  directory’s  mod-
time  (or the modtime on /etc/crontab) has changed, and if it has, cron will
then examine the modtime  on  all  crontabs  and  reload  those  which  have
changed.   Thus  cron need not be restarted whenever a crontab file is modi-
fied.  Note that the crontab(1) command updates the  modtime  of  the  spool
directory whenever it changes a crontab.

Fordem tam, vlakem zpátky :-)
Dalibor Smolík avatar 27.6.2007 12:58 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejjednodušší je udělat skript
#! /bin/sh
reboot
a pojmenovat ho např. restart a dát ho např. do adresáře /home/uzivatel/skripty.
Do cronu přidat řádek takto:
* */2 * * * root /home/uzovatel/skripty/restart
a zadat příkaz /etc/init.d/cron restart.
Což znamená, že každé dvě hodiny se provádí restart, případně 17 15 * * * znamená, že se spouští v 15.17 hodin každý den.
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
Medved09 avatar 27.6.2007 13:08 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Nejjednodušší je udělat skript
#! /bin/sh
reboot

Za trest stokrat napsat: "Uz nikdy nebudu ve scriptu pro cron pouzivat prikazy bez absolutni cesty" !!
Kdyz uz tak:

#! /bin/sh
/usr/bin/reboot

Fordem tam, vlakem zpátky :-)
Dalibor Smolík avatar 27.6.2007 13:18 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Nojo,pořád .. :-) tu chybějící absolutní cestu jsem uviděl vteřinu poté, co jsem to odeslal .. :-)
Ale jinak na tomhle principu mám pár skriptů
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
Libco avatar 27.6.2007 13:24 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
A ked ta pekne poprosim, mozes sem nejaky jednoduchy dat?
lama
Dalibor Smolík avatar 27.6.2007 13:46 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
No, není to nic na posílání :-) - především jsou to zálohovací skripty, kde zálohuji některé adresáře na externí disk a spouštím je v cronu. Kritické soubory, kde může dojít k jejich poškození, mám zálohované do zvláštních adresářů pojmenovaných pondělí .. až pátek a záloha proběhne v příslušný den. V případě poškození zjistím, že záloha dva dny stará byla ještě v pořádku. Takže:
#! /bin/sh
#pondelni_skript
cp -u -r /home/uzivatel/pracovni /mnt/usbdisk/pondeli
v cronu:
10 17   * * 1   root    /home/uzivatel/pondelni_skript
pak restart cronu
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
Libco avatar 27.6.2007 14:27 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Lenze ja mam maly problem. Restart cronu neurobim, lebo "cron" v mojej distre nie je! Je tu len crond.
lama
Libco avatar 27.6.2007 13:20 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Problem je v tom, ze ja nemam init.d v /etc.
Subor cron je iba vo /var/log.
Subor crond je v /usr/sbin.
lama
Libco avatar 27.6.2007 13:31 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Asi to vzdam na slackware (je tam ine rozlozenie suborov a niektore chybaju - cron) a doma to skusim na ubuntu.
lama
Medved09 avatar 27.6.2007 13:38 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond

Pozij crontab -e to za tebe udela veskere potrebne ukony.

Fordem tam, vlakem zpátky :-)
Libco avatar 27.6.2007 13:51 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Spustil som crontab -e. Otvorilo mi to subor s tym istym obsahom ako /usr/spool/cron/crontabs/root.
Co s tym mam spravit?
Tu je vypis:
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null. We'll do this here since these jobs should run
# properly on a newly installed system, but if they don't the average newbie
# might get quite perplexed about getting strange mail every 5 minutes. :^)
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
# but most really don't need greater granularity than this. If the exact
# times of the hourly, daily, weekly, and monthly cron jobs do not suit your
# needs, feel free to adjust them.
#
# Run hourly cron jobs at 47 minutes after the hour:
47 * * * * /usr/bin/run-parts /etc/cron.hourly 1> /dev/null
#
# Run daily cron jobs at 4:40 every day:
40 4 * * * /usr/bin/run-parts /etc/cron.daily 1> /dev/null
#
# Run weekly cron jobs at 4:30 on the first day of the week:
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly 1> /dev/null
#
# Run monthly cron jobs at 4:20 on the first day of the month:
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null
18 13 * * * root /home/uzivatel/skripty/restart
19 13 * * * root /bin/date >> /root/test.log
lama
Medved09 avatar 27.6.2007 15:42 Medved09 | skóre: 26 | Havlíčkův Brod / Brno
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond

Ano to je spravne. Program crontab ti otevrel ten spravny soubor ve tvem oblibenem editoru (no nejspis ve VI), takze udelej nejakou malickou zmenu (ve vi pomoci 'i') a uloz ho ('2xESC' a ':wq') a program crontab se postara o to aby si cron daemon vsimnul, ze mu nekdo zmenil konfiguraci.

Fordem tam, vlakem zpátky :-)
27.6.2007 13:42 mlz | skóre: 12 | blog: Obcas
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Obecně, cron se upravuje crontab -e, možná bychom se pohli výpisem crontab -l, je možné, že to crond vůbec nevidí

Jinak pozor na proměnné. Jako root by problém s právy neměl být, spouští se cron-hourly. Slack používá velmi konzervativní Dillon cron, který VŠE edituje crontabem
Libco avatar 27.6.2007 13:58 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Vypis crontab -1:
root@libco:/etc# crontab -1
crontab 2.3.3
crontab file opts replace crontab from file
crontab - opts replace crontab from stdin
crontab -u user specify user
crontab -l [user] list crontab for user
crontab -e [user] edit crontab for user
crontab -d [user] delete crontab for user
crontab -c dir specify crontab directory
root@libco:/etc#
PS.
opts bolo uzavrete v <>, ale forum napisalo Značka OPTS není povolena!
lama
27.6.2007 14:04 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
crontab -l je s malé "L", ne s jedničkou :-)
27.6.2007 14:06 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Já dnes dobrá češtin ;-) crontab -l má být s malým "L", ne s jedničkou.
Libco avatar 27.6.2007 14:10 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
crontab -l nevypisuje nic.
root@libco:/etc# crontab -l
root@libco:/etc# crontab -l
root@libco:/etc#
lama
Libco avatar 27.6.2007 14:13 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Mam dojem, ze som cely obsah suboru vymazal a ani neviem ako.
lama
Libco avatar 27.6.2007 14:19 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Nakopiroval som ho spet a crontab -l urobi znovu vypis suboru /var/spool/cron/crontabs/root, ktory som tu uz prezentoval.
lama
wolf09 avatar 27.6.2007 14:33 wolf09 | skóre: 30
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
To je prave ono, crontab se opravuje pomoci crontab -e a nedava se to primo do souboru
Zkusili jste to vypnout a znovu zapnout ?
Dalibor Smolík avatar 27.6.2007 14:22 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Nic se neděje, snad konfigurační skripty máš zálohované.
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
Dalibor Smolík avatar 27.6.2007 14:28 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
jinak soubor crontab edituji zásadně ručně (v mc nebo pico crontab) :-)
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
Libco avatar 27.6.2007 14:30 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Editujem ho v mc.
lama
Libco avatar 27.6.2007 14:34 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Ale je zaujimave, ze ked otvorim pico contrab, je prazdny. Nebude chyba tam?
lama
Dalibor Smolík avatar 27.6.2007 14:39 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
no je potřeba zadat správnou cestu nebo být v tom adresáři, kde se nachází soubor crontab. Jinak se otevře nový, prázdný pod tímto názvem.
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
Libco avatar 27.6.2007 14:57 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Este sem dam vypis suboru crontab (cesta /usr/bin):
Nedam, lebo je binarny a pomerne velky.
lama
27.6.2007 15:45 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Není potřeba nás zahlcovat výpisy jednotlivých souborů. Rozumnější by bylo:
  1. zjistit, jakým způsobem se editují crontab soubory vašeho cron daemona a příslušným způsobem je upravit
  2. zjistit, jakým způsobem cron daemonu řeknete, že má načíst novou konfiguraci
  3. zjistit, jakým způsob zápisu používá vás cron daemon pro crontab (jednotlivé cron daemony se v detailech liší)
Pokud si s něčím nevíte rady a man cron a man crontab nepomůžou, bude asi pro další rady potřeba vědět, jaký cron daemon používáte. Nejspíš to poznáte třeba z man cron, cron daemon by o sobě také mohl něco prozradit při použití s přepínačem -h nebo -v, případně s použité distribuce by snad bylo možné usoudit, který cron daemon je tam jako defaultní.
Libco avatar 27.6.2007 20:35 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
No už som doma a funguje to. Urobil som to v dreambox-e (digi sat prijímač na báze linuxu). Bash tu nahradzuje BusyBox. Urobil som to cez crontab -e, editoval som editorom vi a nakoniec /etc/init.d/busybox-cron restart. Teraz mám ale iný problém. Mojim zámerom bolo nerobiť reboot dreambox-u, ale jeho prechod do režimu standby a nemôžem nikde nájsť príkaz na tento prechod. No myslím si že v tomto mi asi nepomôžete.
lama
Libco avatar 27.6.2007 20:56 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Sorry, zabudol som všetkým poďakovať. Ste veľmi ochotní a to si vysoko cením. Díky ešte raz.

libco
lama
27.6.2007 21:31 Ash | skóre: 53
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Nevím, co je stand-by. Znám shutdown -r a shutdown -h, první je reboot a v druhém případě lze u moderních desek budit magic packetem.
Libco avatar 28.6.2007 07:14 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Standby je pohotovostny rezim u dreambox-u. Take nieco ako na televizore. Ale uz to mam vyriesene na fore dreambox mi poradili. Aj tak diky.
lama
Libco avatar 27.6.2007 14:40 Libco | skóre: 8 | Banska Bystrica - sk
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Sorry, prvy krat som mal otvoreny pico contrab. Teraz viem ze musim v nom otvorit subor ktory potrebujem.
lama
28.6.2007 09:26 Richard Tesař | skóre: 5
Rozbalit Rozbalit vše Re: jednoduchy skript+casovane spustanie cez crond
Odpovědět | | Sbalit | Link | Blokovat | Admin
Each user can have their own crontab, and though these are files in /var/spool/ , they are not
intended to be edited directly.
viz. man crontab

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.