Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: jar1969 - 07.10.13 - klo:00.23
-
miten crontab virtual serverille kuin toiselle koti päätteelle?
kokeilin koodia molemmille koneille virtual servelille ja toiselle koti päätteelle :==>
sudo crontab -e..pääte tulosti
no crontab for root - using an empty one
888
tämän jälkeen ajastuksen
10 * * * * php /home/......cron.php
Siten ctrl+z kun tavan omaisesta ei toiminnut ctrl+x
ja koodia sudo crontab -e..
pääte..
no crontab for root - using an empty one
888
puuttuuko jokin paketti?
-jerry-
-
crontab ajetaan normaalikäyttäjänä, eli jätä sudo komennon edestä pois.
10 * * * * php /home/......cron.php
ja tuossa pitää olla koko polku php:n luo,
eli ei pelkkä php /jotakin/jossakin/joku.php, vaan /koko/polku/php /jotakin/jossakin/joku.php
-
resetoin cron:nin sudo /etc/init.d/cron start
sitten koodia crontab -e
pääte..
no crontab for root - using an empty one
888
ja sitten päätteeseen toimivan ajastuksen tiedostoineen[ainakin toisessa koti koneella toimii]
*/2 * * * * php /home/koti/Asiakirjat/run-cron.sh
taaskaan alalaidassa ei ole valikkoriviä, joten joudun sulkemaan päätteen ctrl+z kun ctrl+x ei toimi ,
Tarkastan ajastuksen sudo crontab -l
no crontab for root
Alalaidassa ei ole valikkoriviä ja ja nuolinäppäimet eivät toimi oikein crontab-näytössä.
koti@koti:~$ sudo apt-get install cron
Luetaan pakettiluetteloita... Valmis
Muodostetaan riippuvuussuhteiden puu
Luetaan tilatiedot... Valmis
cron on jo uusin versio.
Kokeilin myös graaafisesti asentaa cron, mutta ei,kuntaas toisessa koneessa koodilla crontab-e myös graafisesti asettettu näkyy.
tässä on jokin vika kun kirjoitan koodin sudo crontab -e päätteeseen
pääte..
no crontab for root - using an empty one
888
Miten korjaan,
-jerry-
-
Nuo komennot,
crontab -e
crontab -l
Ovat vallan muista systeemeistä kuin Debianista.
No, tietysti cronejakin on erilaisia.
Kokeilepa mita saat kun kysyt
more /etc/crontab
-
Virtual server...
crontab -e
katso kuvaliite
ja more /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
43 * * * * root cd / && run-parts --report /etc/cron.hourly
50 0 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
27 3 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
8 2 30 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
aivan uutta virtual server.
-
Laita tämä ~/.bashrc tiedostoon niin saat editoriksi nano:n se on nyt jokin äklöttävä vim
export EDITOR=nano
pääte pitää sulkea ja avata että tuo tulee käyttöön.
-
Nuo komennot,
crontab -e
crontab -l
Ovat vallan muista systeemeistä kuin Debianista.
Käyttäjien omia crontabeja muokataan crontab -e:llä myös Debianissa ja Ubuntussa, mutta pääkäyttäjänä ajastuksen voi yhtä hyvin tehdä järjestelmätason /etc/crontab-tiedostoon. Itse laittaisin ajettavan skriptin /etc/cron.hourly -hakemistoon ilman crontabien editoimista. Ubuntuni ajaa sen silloin tunnin välein, 17 minuuttia yli tasan. (Minuutteja voi säätää /etc/crontab-tiedostossa.)
Jos kuitenkin haluat lisätä ajastimen /etc/crontab-tiedostoon (sudo nano /etc/crontab), huomaa, että siellä on yksi kenttä enemmän kuin käyttäjäkohtaisissa crontabeissa. Rivi on siis muotoa:
10 * * * * root /usr/bin/php /home/jerry/skriptit/cron.php
(ennen ajettavaa komentoa määritellään siis käyttäjätunnus)
Laita tämä ~/.bashrc tiedostoon niin saat editoriksi nano:n se on nyt jokin äklöttävä vim
export EDITOR=nano
pääte pitää sulkea ja avata että tuo tulee käyttöön.
Vim (http://linux.fi/wiki/Vim) on ainoa oikea editori, mutta Raimon diagnoosi on kyllä muutoin kohdallaan. :)
EDITOR-ympäristömuuttujan asettaminen käyttäjän puolella ei pelkästään riitä, koska useimmissa jakeluissa sudo on oletuksena asetettu resetoimaan ympäristömuuttujat (/etc/sudoers: "Defaults env_reset"). Lisäksi pitää siis käyttää sudon parametria -E:
sudo -E crontab -e
Tai voit vaikka siirtyä sudo -i:llä pääkäyttäjän komentokehotteeseen ja asettaa ympäristömuuttujan siellä pysyvästi tai väliaikaisesti:
sudo -i
EDITOR=nano crontab -e
-
1.Miten alla oleva esim . jos vaihtoestoisesti ajetaan /etc/cron.hourly kansiosta ja miten minuutit säädetään /etc/crontab tiedostosta cron.php:lle. tehdääkö cron.php sisälle uudet linkitykset /etc/cron.hourly kansisosta?
****
10 * * * * root /usr/bin/php /home/jerry/skriptit/cron.php
2. uutta virtual serveristä
Miten tehdää virtual serveille päätteellä käyttäjä,käyttäjän koti hakemisto ja oikeudet käyttäjälle?
kiitos
-
1.Miten alla oleva esim . jos vaihtoestoisesti ajetaan /etc/cron.hourly kansiosta ja miten minuutit säädetään /etc/crontab tiedostosta
Tiedostossa on rivi:
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Vaihda minuuttisarakkeen luvun 17 tilalle 10:
10 * * * * root cd / && run-parts --report /etc/cron.hourly
cron.hourly-hakemistossa ei tavallisesti ole mitään eli oletusasennuksessa mitään ei ajeta cronilla tunnin välein. Muutos ei siis haittaa järjestelmän normaalia toimintaa.
tehdääkö cron.php sisälle uudet linkitykset /etc/cron.hourly kansisosta?
1. Lisää cron.php:n ensimmäiselle riville shebang: (http://en.wikipedia.org/wiki/Shebang_%28Unix%29)
#!/usr/bin/php
2. Aseta tiedosto ajettavaksi:
chmod a+x /home/jerry/skriptit/cron.php
3. Kopioi tiedosto /etc/cron.hourly-hakemistoon tai tee symbolinen linkki:
sudo ln -s /home/jerry/skriptit/cron.php /etc/cron.hourly/cron.php
Miten tehdää virtual serveille päätteellä käyttäjä,käyttäjän koti hakemisto ja oikeudet käyttäjälle?
sudo adduser matti
adduser luo automaattisesti kotihakemiston oikeuksineen.
Jos haluat antaa Matille sudo-oikeudet, komenna tunnuksen luonnin jälkeen:
sudo adduser matti sudo
-
eli ..
10 * * * * root cd / && run-parts --report /etc/cron.hourly ajaa /etc/cron.hourly hakemistossa olevat scrpit ,miten ne jotka ajastetaan esim 5min yli tasatunnin, ovat myös /etc/cron.hourly hakemistossa
esim.
5 * * * * root cd / && run-parts --report /etc/cron.hourly # osaako lukea tuon 5 min yli ajastettavan cron:in?
-
eli ..
10 * * * * root cd / && run-parts --report /etc/cron.hourly ajaa /etc/cron.hourly hakemistossa olevat scrpit 10min yli tasatunnin,miten ne jotka ajastetaan esim 5min yli tasatunnin, ovat myös /etc/cron.hourly hakemistossa
Jos tarvitset useita eri aikoja eri skripteille, joudut tekemään jokaiselle oman hakemiston tai skriptikohtaisen säännön.
-
Kiitos paljon.