Donation- Aukos
[EN] For dictionaries and Lithuanian history topics.
[LT] Žodynų ir istorijos skilties vystymui

Amount: 

Login form



LINUX. Suplanuoti procesai. Cron, at, atq, atrm, /etc/crontab.
cron servisas

Debian Linux, suplanuotų procesų valdymas vyksta /etc/crontab faile, bendras pavidalas:
/etc/crontab

.---------------- minutės(0 - 59)
|    .------------- valandos(0 - 23)
|    |    .---------- dienos(1 - 31)
|    |    |    .------- mėnesiai(1 - 12) OR jan,feb,mar,apr ...
|    |    |    |   .---- savaitės dienos (0 - 6) (Sekmadienis=0 or 7) arba sun,mon,tue,wed,thu,fri,sat
|    |    |    |   |
*  *  *  *  *  vartotojas komanda

Galimos reikšmės:


*

visos reikšmės,  * mėnesiui reiškia: "kiekvienas mėnuo"

x-y

tarp x ir y,  2-4  reiškia 2, 3, 4 dienos.

x/n

dažnumas, */2 reiškia kas dvi valandas


Pvz.:
0 0 1 1 *   root /_scripts/data1.script
1 1 1,3-6 * *   root /_scripts/data2.script
*/2 * * * * root /_scripts/data3.script
* * * * * * jonas /home/jonas/personal.script


Jame jau yra parašyti aplinkos kintamieji ir katalogai, kur galima dėti savo kodus. Tarkim kataloge /etc/monthly laikomi failai bus paleidžiami kas mėnesį, kiekvieno mėnesio pirmą dieną, 01:01 laiku.
1 1 1 * * * root /bin/run-parts /etc/monthly
Įkėlus ten failą, nereikia pamiršti pakeisti jam teises:
chmod 700 /etc/monthly/data.script
Po pakeitimų /etc/crontab būtina perleisti cron servisą /etc/init.d kataloge:
./cron restart
Servisas nebūtinai ten, priklausomai nuo Linux tipo. Tada pasižiūrim, kaip buvo paleistas, ir perleidžiam komandų pagalba. Pvz.:
ps -ef | grep cron
killall cron
cron

/etc/crontab pavyzdys:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
# for user
* * * * * root /bin/date > /xyz.txt
*/2 * * * * root /bin/date > /xyz1.txt

Patartina crontab gale palikti tuščią eilutę (kaip ir daugelyje Linux config-ų)
Jeigu /etc/crontab crontab nėra. Naudojami vartotojų crontab failai. Čia perlesti crond nereikia.

Vartotojų crontab-ai, kai keičia  root-as:

crontab -e -u petras
crontab -l -u petras
crontab -d -u petras

kitiems, kai jie keičia savo cron konfiguracinius failus:
crontab  -u
crontab -l
crontab -d

Gaunami failai, panašūs į /etc/crontab/bet juose nenurodomas vartotojas, kuriuo bus paleidžiami kodai ar komandos. Slackware neturi sisteminio /etc/crontab, Slackware Linux cron failai "pririšti"  prie vartotojų:  /var/spool/cron/crontabs/<user>

at komanda
Ši komanda paleidžia procesą vieną kartą:
at  -f  failas laikas
arba
at laikas
komanda1
komanda2
ctrl +d Sąrašas:

Paleistų procesų sąrašas:
atq
at -l

Trynimas:
atrm at_id
at -r at_id

Laikai at komandoje (minute hour year month day weekday):

at -f ooo now +1 minute
at 4pm +3 days
at 10am Jul 31
at 1am tomorrow


 
[ BBC news ][ Yahoo news ][ Linux guru ][ Webmaster ACE ]