Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: jormala - 14.03.11 - klo:21.57
-
Osaisiko joku neuvoa, että miksi alla oleva crontab + ftp scripti ei toimi. Se vai ei näytä tekevän mitään ? Scripti kyllä toimii komentoriviltä, eli /etc/crontab ilmeisesti mättää?
# /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
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * * root ~/jorma/ardu/koe.sh
#
#!/bin/sh
WINDOWS_SERVER= domaini.com/public_ftp
LOCALDIR=/oma/hakemisto/
FILENAME=ulkolampo.png
# transfer the file
ftp -in << EOF
open $WINDOWS_SERVER
user käyttäjä salasana
ascii
lcd $LOCALDIR
put $FILENAME
close
EOF
-
* * * * * * root ~/jorma/ardu/koe.sh
Noni. Ensinnäkin kaikki kohdat * tarkoittaisi että suoritetaan skripti joka minuutti joka tunti joka päivä jne. Sitten tuo osoitus skriptin sijaintiin kannattaa tehdä suorana eli matomerkki pois
Päätä intervalli, esim aina tasatunnein olisi
00 * * * * * root /home/jorma/ardu/koe.sh
tai 6 tunnein välein 15 yli
15 */6 * * * * root /home/jorma/ardu/koe.sh
skriptin toimintaan en ota kantaa, paitsi olet varmasti antanut sille suoritusoikeudet ;D
-
Se vain ei onnistu. Mikähän mättää, kun tuo crontab ei edelleenkään tottele. Pitäisi siis toistaa minuutin välein tuo testaus scripti. Kyseessä on ubuntu 10.10. Onko joutunut woodoon kohteeksi?
tiedoston matti oikeudet:
-rwxrw---- 1 j j 98 2011-03-16 07:27 koe.sh
j@j-System-Product-Name:~$ ^C
scriptin koe.sh oikeudet:
-rwxrw---- 1 j j 98 2011-03-16 07:27 koe.sh
j@j-System-Product-Name:~$ ^C
/etc/crontab:
#00 * * * * * root
# m h dom mon dow command
00 * * * * * root /home/matti/koe.sh
scripti testattu ja toimii ainakin komentorivikäskyllä. Scripti matti -tiedostossa:
#!/bin/bash
echo "Lasketaan kymmeneen:" > koe.dat
for luku in $(seq 10)
do
echo $luku
done
Osaisiko joku neuvoa, että miksi alla oleva crontab + ftp scripti ei toimi. Se vai ei näytä tekevän mitään ? Scripti kyllä toimii komentoriviltä, eli /etc/crontab ilmeisesti mättää?
# /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
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * * root ~/jorma/ardu/koe.sh
#
#!/bin/sh
WINDOWS_SERVER= domaini.com/public_ftp
LOCALDIR=/oma/hakemisto/
FILENAME=ulkolampo.png
# transfer the file
ftp -in << EOF
open $WINDOWS_SERVER
user käyttäjä salasana
ascii
lcd $LOCALDIR
put $FILENAME
close
EOF
-
Ehkä olisi paras editoida käyttäjän omaa crontab:
crontab -e
Lue lisää:
man crontab
Tuo ongelma voi johtua siitä, että jos editoit crontab-filejä suoraan, itse demoni ei ota niitä silti käyttöön.
Käyttämällä crontab -e tuo pävitys demonille tehdään oikein.
-
Ja root on tosiaan myös käyttäjä, jolla on oma crontab, käytä sitä (sudo crontab -e), älä editoi /etc/crontabia.
Erikoiskuoppa, johon pudota, viimeisenkin rivin loppuun tulee laittaa rivinvaihto.
-
Ja root on tosiaan myös käyttäjä, jolla on oma crontab, käytä sitä (sudo crontab -e), älä editoi /etc/crontabia.
Erikoiskuoppa, johon pudota, viimeisenkin rivin loppuun tulee laittaa rivinvaihto.
Tosin nyt kun katsoi tarkemmin tuota quotattua siinähän lukee että tuota pitäisi pystyä editoimaan suoraan ilman crontab --> Lisää kahvia jospa sitä silmät + aivot heräisi.
Joka tapauksessa itse laittaisin scriptit ihan normaali tunnuksen alle ellei ne sitten ihan välttämättä tarvi root oikeuksia.
-
Pitäisi siis toistaa minuutin välein tuo testaus scripti.
/etc/crontab:
#00 * * * * * root
# m h dom mon dow command
00 * * * * * root /home/matti/koe.sh
Minuutin välein on aika nopea mutta silloin tuo vika rivi menee
*/1 * * * * root /home/matti/koe.sh
Eli aina kun minuuttiviisari liikahtaa, yhden välein. Ei mene kuitenkaan sekunnin tarkkuudella vaan käynnistyy sen minuutin aikana.
Huomaa että tuossa on viisi kohtaa ennen suoritettavaa käskyä, eli minuutit, tunnit, kuukaudenpäivä, kuukausi, viikonpäivä (numeroilla).
-
Ja root on tosiaan myös käyttäjä, jolla on oma crontab, käytä sitä (sudo crontab -e), älä editoi /etc/crontabia.
Erikoiskuoppa, johon pudota, viimeisenkin rivin loppuun tulee laittaa rivinvaihto.
Tosin nyt kun katsoi tarkemmin tuota quotattua siinähän lukee että tuota pitäisi pystyä editoimaan suoraan ilman crontab --> Lisää kahvia jospa sitä silmät + aivot heräisi.
Joka tapauksessa itse laittaisin scriptit ihan normaali tunnuksen alle ellei ne sitten ihan välttämättä tarvi root oikeuksia.
Muistaakseni tuo aiheuttaa sitten sen, ettei se systeemitason crontab toimi.
Tuon /etc/crontab:in vahvuutena olen pitänyt sitä että saa samaan skriptiin useita käyttäjiä.
Sorttinsa yleisnäkymä het' laakista.
-
Kiitokset hyvästä neuvoista! Eiköpä tuo tuosta ratkea.
Osaisiko joku neuvoa, että miksi alla oleva crontab + ftp scripti ei toimi. Se vai ei näytä tekevän mitään ? Scripti kyllä toimii komentoriviltä, eli /etc/crontab ilmeisesti mättää?
# /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
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * * root ~/jorma/ardu/koe.sh
#
#!/bin/sh
WINDOWS_SERVER= domaini.com/public_ftp
LOCALDIR=/oma/hakemisto/
FILENAME=ulkolampo.png
# transfer the file
ftp -in << EOF
open $WINDOWS_SERVER
user käyttäjä salasana
ascii
lcd $LOCALDIR
put $FILENAME
close
EOF
-
Pitäisiköhän varmistaa, että cron on ylipäätään käynnissä...
-
Pitäisiköhän varmistaa, että cron on ylipäätään käynnissä...
Kyllä cron oli käynnissä. Sain lopulta kaikki kohdalleen ja juttuni toimii. Kävin läpi tarkasti oikeudet ja polut ym. säännöt. Niinhän se sitten onnistui.