Problemer med CRON
Jeg har en Ubuntu Server 10.04 hvor uret går alt for hurtigt (det vinder en halv time om dagen). Jeg har prøvet at skifte det lille cr2032 batteri på bundkortet, men det hjalp ikke.
Derfor har jeg oprettet et cron-job med kommandoen: sudo crontab -e (så jeg er sikker på kommandoen bliver kørt som root).
Cron-jobbet ser således ud:
01 05 * * * /home/logger/adjusttime.sh
Indhold af adjusttime.sh:
ntpdate ntp.bbsyd.dk
Alligevel bliver uret ikke stillet, hvad er der galt? Uret bliver fint synkroniseret hvis jeg kører ntpdate ntp.bbsyd.dk for sig selv.
På forhånd tak!
Derfor har jeg oprettet et cron-job med kommandoen: sudo crontab -e (så jeg er sikker på kommandoen bliver kørt som root).
Cron-jobbet ser således ud:
01 05 * * * /home/logger/adjusttime.sh
Indhold af adjusttime.sh:
ntpdate ntp.bbsyd.dk
Alligevel bliver uret ikke stillet, hvad er der galt? Uret bliver fint synkroniseret hvis jeg kører ntpdate ntp.bbsyd.dk for sig selv.
På forhånd tak!
Kommentarer5
#0Du skal ikke bruge sudo i
Du skal ikke bruge sudo i cron, den kører allerede som root. Du kan heller ikke være sikker på at PATH er sat op, så det er bedre at angive hele stien. Desuden er der ingen grund til at lave et script for så simpel en kommanda, smæk den i stedet direkte i cron. Endelig, hvis uret vinder en halv time om dagen er en daglig opdatering ikke nok, jeg vil foreslå en gang i timen.
Prøv derfor med denne linje:
0 * * * * /usr/sbin/ntpdate -b ntp.bbsyd.dk &> /dev/null
Den sidste del med /dev/null gør at outputtet fra cron ikke mailes til root hver gang den kører.
Jeg bruger i øvrigt dk.pool.ntp.org som tidsserver.
EDIT: Nu ved jeg jo ikke om din ntpdate befinder sig i /usr/sbin, men det kan du finde ud af ved fra kommandolinjen at skrive:
which ntpdate
EDIT 2: Det jeg skriver med at cron kører som root gælder kun hvis du redigerer cronjobbet med sudo crontab -e
Du har ikke fortalt cron
01 05 * * * /bin/bash /home/logger/ajusttime.sh
Alternativt kan du tilføje en "shebang" line i toppen af dit script
#!/bin/bash
#1 : Alle brugere kan oprette en crontab, så hvis man ikke eksplicit åbner den som root, bliver den ikke kørt som root.
Må jeg komme med en helt
Installer og konfigurer ntp istedet. Så syncer du med en "pools" af ur, ude i verden.
--edit--
Glem det. Skal læse før jeg skriver. :-)
Alle brugere kan oprette
Nå ja, det er jo rigtigt, jeg plejer blot altid at bruge sudo crontab -e for netop at undgå root-problemer.
Tak for de gode indlæg, jeg