crontab használata

Fórumok

crontab használata

Hozzászólások

Csak beleolvastam ide és gondoltam megkérdezem: fut egyáltalán a cron daemon?

Amugy crontab -e szerkesztésben, ha esetleg problémája van valakinek, hogy köv. sor, etc., akkor lehet vi -os edit módszerrel működik. Pl. navigálni: h,j,k,l ; törölni sort: d, inset: i, satöbbi command módban.

Amugy root ként ütemezted a dolgot? Nem tudom, de lehet van valami trace opció, v. loggolás, amit meg lehetne nézni.
Crontab edit után próbáltad cron daemont ujraindítani? Lehet egy kill, aztán start pl. jót tenne neki. (bár, gondolom a rebootot már próbáltad)

Köszi Zahy, működik tökéletesen! :wink:
env EDITOR=/usr/local/bin/kedit crontab -e

A baj csak az, hogy nem akar működni ez a cron... :( Tartalma:

[code:1:bb6b00dd45]35 * * * * /bin/echo "mukodom" > /home/normaluser/proba.txt[/code:1:bb6b00dd45]
És nem csinál semmit. proba.txt-t létrehoztam, még mindig 0 byte...

Morin, hol lehet megnézni hogy fut-e, újrainídtani, leállítani? :roll:

/etc/rc.conf-ban szerepel a
cron_enable="YES" # Run the periodic job daemon.
sor?

Nekem is gondjaim vannak a cron-nal.
A default műveletek, amik eredetileg benne vannak a /etc/crontab fájlban működnek, de amit hozzáadok az nem megy. Lövésem sincs mi lehet a gond.

Most már igen, de hatását nem tapasztaltam. Nyomni kéne egy restartot, mi? ;) Vagyis ez FreeBSD, úgyhogy paranccsal is biztos megoldható... :D

ps aux |grep cron

ha nemfut, akkor /etc/rc.d/cron start

[quote:5d3de62837="ScOut3R"]Nekem is gondjaim vannak a cron-nal.
A default műveletek, amik eredetileg benne vannak a /etc/crontab fájlban működnek, de amit hozzáadok az nem megy. Lövésem sincs mi lehet a gond.

A "crontab -e" -vel kell szerkeszteni, mert ez újraindítja a cron daemont.
A file hivatkozásokat mindig teljes útvonallal kell megadni, a programokat is.
Többsoros utasítás esetén scriptet kell használni.

ELaci

[quote:91e164e0e5="cln"][quote:91e164e0e5="ScOut3R"]Nekem is gondjaim vannak a cron-nal.
A default műveletek, amik eredetileg benne vannak a /etc/crontab fájlban működnek, de amit hozzáadok az nem megy. Lövésem sincs mi lehet a gond.

A "crontab -e" -vel kell szerkeszteni, mert ez újraindítja a cron daemont.
A file hivatkozásokat mindig teljes útvonallal kell megadni, a programokat is.
Többsoros utasítás esetén scriptet kell használni.

ELaci

Sewas! Igaz, hogy nem crontab-e-vel szerkesztettem, de: teljes útvonalat adtam meg, illetve utána újraindítottam a cron-démont. Ettől függetlenül okozhatja ez a problémát?

Sikerült! Valóban az volt a gond, hogy nem a crontab -e paranccsal itnéztem a dolgokat. :) Köszi a segítséget!

[quote:a1b5e2e27e="OxY"]/etc/rc.conf-ban szerepel a
cron_enable="YES"
sor?

[quote:a1b5e2e27e="OxY"]ps aux |grep cron

ha nemfut, akkor /etc/rc.d/cron start

1) /etc/rc.conf-ban szerepel a cron_enable="YES" sor
2) /etc/rc.d/cron start parancsra azt írja, hogy cron already running? (pid=507).
3) ps aux |grep cron parancsot elfogadta

mégsem történik semmi! :cry: Mi lehet a gond? :roll:

Sziasztok,

Az Uptime-Project FreeBSD-s update kliensét szeretném bizonyos időközönként (óránként) lefuttatni. Az oldalról letölthető cuccot telepítve elhelyez egy yasuc futtatható fájlt a bin mapáába, mely konzolból futtatva gyönyörűen megy, és teszi a dolgát. Olvastam a progi mellé adott egyik szövegfájlban, hogy a cron/crontab nevű folyamat tud ilyet. Kerestem is egy leírást: http://www.tech-geeks.org/contrib/mdrone/cron&crontab-howto.htm. Ezek alapján a beállítottam, hogy a yasuc minden óra 24. percében lefusson, ehhez a következő parancs került a /var/cron/tabs/ helyre:

[code:1:440b82ba7c]24 * * * * /bin/yasuc[/code:1:440b82ba7c]
A gond csak az, hogy nem történik semmi se az órák 24. percében... A leírás lehet rossz, vagy másképpen van FreeBSD alatt, vagy én nem csináltam valamit jól? :roll: Amúgy ha konzolból futtatom a progit, nagyszerűen megy...

Hogy raktad be ezt a yasuc, a hova? Mert a hely, amit írtál, értlmetlen, histz könyvtárnevet adtál meg. Szóval rootként azt csináltad, hogy "crontab -e" ? Amúgy FreeBSD-n vagy a /var/cron/tabs, ahol minden felhasználónak lehet crontab -ja, ami a saját nevével megegyező fájlban van, és olyan, mint amit írtál. És van egy /etc/crontab, amiben egy plusz felhasználói név mező is van.

Hát letöltöttem az Uptime-Project oldaláról a klienst, és ahogy a leírásában áll ./install.sh paranccsal telepítettem. Került a bin-be egy yasuc futtatható állomány, és az etc-be egy yasuc.conf beállításokat tartalmazó fájl.

Az elérési út nem lehet rossz, hiszen ha onnan kimásolom, simán futtatja konzolból.

A cron-hoz úgy adtam hozzá, hogy az előbb belinkelt útmutató alapján készítettem egy cron.txt állományt, az előző hozzászólásban Kód mezőben lévő tartalommal, és egy crontab cron.txt-vel hozzáadtam a listájához. Ezután a crontab -l uatsítással ellenőriztem, és tényleg szerepel... Ráadásul a /var/cron/tabs/ helyen kinyitva a szöveges állományt is szerepelt a bejegyzés.

A crontab-hoz mindig a
crontab -e
paranccsal adj hozzá feladatot.

Ha a cron futtatta az időzített feladatot, akkor küldött neked róla egy értesítést (levelet), amit a /var/mail/username mailbox fájlban találsz (ahol a username természetesen annak a felhasználónak a neve, akinek a crontab-jában a futtatandó feladat volt). Konzolból így tudod a levelet megnézni: mail -f /var/mail/username.

Amúgy, ha a cron-nal gondom van, akkor úgy bizonyosodom meg a működőképességéről, hogy először valami egyszerűt írok a crontab-ba a végrehajtandó feladat helyébe, pl:
24 * * * * /bin/echo "működöm" > /home/username/proba.txt

Ha bekerül a szöveg a /home/username/proba.txt fájlba, akkor a cron megy.

Ha a cron megy, de az időzített feladat nem, akkor annak tipikusan két oka szokott lenni:
A) a cron számára a PATH változó alapból üres, azaz bármely futtatható programot csak akkor talál meg, ha a teljes nevét beírják. (Ez megkerülhető, ha a crontab elején értéket adsz a PATH környezeti változónak.)
B) a futtatott program futása közben dialógusra, pl. jelszó beírása, stb. van szükség

Elég trükkös crontab -e paranccsal szerkeszteni, mert ott a konzolban akarja az egészet elvégezni... :roll: Nem akarja az entert enternek venni, nem tudok sortugrani, rendesen navigálni, kilépni... Nincs ennek valami más módja?

[quote:af78732217="janolabs"]Elég trükkös crontab -e paranccsal szerkeszteni, mert ott a konzolban akarja az egészet elvégezni... :roll: Nem akarja az entert enternek venni, nem tudok sortugrani, rendesen navigálni, kilépni... Nincs ennek valami más módja?

Az /usr/bin/editor szimbolikus linket kell megváltoztatnod arra, amire szeretnéd.

Pl.: [code:1:af78732217]rm /usr/bin/editor
ln -s /usr/bin/mcedit /usr/bin/editor
[/code:1:af78732217]

Ekkor a kényelmesebb mcedit-ben szerkeszti a "crontab -e". De az "mcedit" helyére "gedit"-et is tehetsz, akkor végképp grafikus lesz a szerkesztés, igaz X nélkül nem fog menni. (Nem tudom FreeBSD-ben is ezek-e a könyvtárak, de ezt már értelemszerűen változtasd meg).

Nekem csak /usr/bin/edit van, ami alkalmazásnak tűnik, amire meg cserélném az a kedit, de legközelebb csak a /usr/local/bin/kedit útvonalon érhető el... Akkor csak helyettesítsem be ezeket az adatokat; nem baj ha az edit nem parancsikon? :roll:

Nem kell semmi törölni meg linkelni

# export EDITOR=/usr/bin/kedvenceditor

ezt berakhatod bashrc-be, vagy ahova tetszik.

# export EDITOR=/usr/bin/kedit
export: Command not found.

Ha egyszer FreeBSD, akkor valószínűleg az lehet, hogy root-ként csinálja ezt az egészet, és ott bizony csh (no jó, tcsh) van. Szóval ezért nem megy.
Javaolnám azt a módszert, ami minden _elterjedtebb_ shellben ugyanúgy működik:

env EDITOR=/kedvenc/szövegszerkesztőd/elérési/úttal/adott/neve crontab -e

Amúgy csh-ban azt kéne írni:
setenv EDITOR /ize/mize/ecet
crontab -e
de ne kavarjunk már bele shell tanfolyamot is :-)