|
| Script opfører sig anderledes som cronjob Fra : Kristian Thy |
Dato : 26-01-07 11:54 |
|
Ubuntu Server 6.06 LTS.
Har skrevet flg. lille script for at lave en natlig backup med tar og
kopiere den over på en ftp-server (har pt. ikke mulighed for rsync):
#!/bin/bash
d=`date +%Y%m%d%k%M`
tracdir=/tmp/trac_$d
f=/backup_$d.tar.bz2
rm /backup_*.tar.bz2
mkdir $tracdir
for p in $( ls /var/trac ); do
trac-admin /var/trac/$p hotcopy $tracdir/$p
done
tar cvpjf $f --exclude=/proc --exclude=/lost+found --exclude=$f
--exclude=/mnt --exclude=/sys /
ncftpput -u username -p password -r 5 -DD 256.256.256.256 Foo_Dir $f
rm -rf $tracdir
Det fungerer fint når jeg kører det manuelt - der ender en fil med et
navn som backup_200701261111.tar.bz2 på ca. 1,5GB på FTP-serveren.
Men når jeg smider det ind i /etc/cron.daily/ kan jeg om morgenen
konstatere at jeg har fået en fil der hedder backup_20070126 (jeps,
ingen extension) på ca. 2,5GB, hvilket matcher den ukomprimerede
størrelse af alle data på harddisken. Folderen tracdir mangler
ligeledes timer og minutter, og der bliver ikke lagt noget ind i den af
hotcopy. Hvor er min fejl 40?
\\kristian
| |
Thomas S. Iversen (26-01-2007)
| Kommentar Fra : Thomas S. Iversen |
Dato : 26-01-07 11:58 |
|
> Det fungerer fint når jeg kører det manuelt - der ender en fil med et
Hvem kører du det som?
> Men når jeg smider det ind i /etc/cron.daily/ kan jeg om morgenen
Hvem kører cron den som?
Thomas
--
| |
Thorbjørn Ravn Ander~ (26-01-2007)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 26-01-07 12:04 |
|
"Kristian Thy" <thy@42.dk> writes:
> konstatere at jeg har fået en fil der hedder backup_20070126 (jeps,
> ingen extension) på ca. 2,5GB, hvilket matcher den ukomprimerede
I cronjobs er stien ikke sat. Du skal derfor angive dine stinavne (og
det er nok en GNU date du ser, og en ikke-GNU date cronjobbet ser)
--
Thorbjørn Ravn Andersen
| |
Kristian Thy (26-01-2007)
| Kommentar Fra : Kristian Thy |
Dato : 26-01-07 12:55 |
|
On Jan 26, 11:58 am, "Thomas S. Iversen" <zenso...@zensonic.dk> wrote:
> > Det fungerer fint når jeg kører det manuelt - der ender en fil med et
> Hvem kører du det som?
root
> > Men når jeg smider det ind i /etc/cron.daily/ kan jeg om morgenen
> Hvem kører cron den som?
Jeg var under den opfattelse af scriptsene i cron.daily, weekly etc
blev kørt som root, men jeg er usikker på hvordan jeg verificerer
det. Under alle omstændigheder har jeg automatisk opdatering af apt
kørende i cron.daily, og det har jeg aldrig haft problemer med, så
der må være root-priviligier. Men det er jo kun indicier.
\\kristian
| |
Klaus Alexander Seis~ (26-01-2007)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 26-01-07 16:29 |
|
Kristian Thy skrev:
> Jeg var under den opfattelse af scriptsene i cron.daily, weekly
> etc blev kørt som root, men jeg er usikker på hvordan jeg verifi-
> cerer det.
Hvis du er i tvivl, kan du lave et shellscript, fx:
#!/bin/sh
echo "I am $(who am i)"
echo "My ID is $(id)"
# eof
Mvh,
--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/
| |
Kristian Thy (26-01-2007)
| Kommentar Fra : Kristian Thy |
Dato : 26-01-07 12:58 |
|
On Jan 26, 12:04 pm, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
wrote:
> I cronjobs er stien ikke sat. Du skal derfor angive dine stinavne
Hvor? Så vidt jeg kan se er alle mine stier absolutte.
> (og det er nok en GNU date du ser, og en ikke-GNU date cronjobbet ser)
Det lyder som en ledetråd. For root:
# which date
/bin/date
Hvordan finder jeg den date-kommando cronjobbet kører?
\\kristian
| |
Thorbjørn Ravn Ander~ (26-01-2007)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 26-01-07 13:10 |
|
"Kristian Thy" <thy@42.dk> writes:
> On Jan 26, 12:04 pm, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
> wrote:
> > I cronjobs er stien ikke sat. Du skal derfor angive dine stinavne
>
> Hvor? Så vidt jeg kan se er alle mine stier absolutte.
Hvad er stinavnet til tar, date, rm osv osv?
>
> > (og det er nok en GNU date du ser, og en ikke-GNU date cronjobbet ser)
>
> Det lyder som en ledetråd. For root:
>
> # which date
> /bin/date
>
> Hvordan finder jeg den date-kommando cronjobbet kører?
echo `which date`
måske?
--
Thorbjørn Ravn Andersen
| |
Kristian Thy (26-01-2007)
| Kommentar Fra : Kristian Thy |
Dato : 26-01-07 13:31 |
|
On Jan 26, 1:10 pm, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
wrote:
> > > I cronjobs er stien ikke sat. Du skal derfor angive dine stinavne
> > Hvor? Så vidt jeg kan se er alle mine stier absolutte.
> Hvad er stinavnet til tar, date, rm osv osv?
Oho, på den måde. Men den har jo godt kunne finde fx mkdir og
ncftpput - de står nemlig i path. I /etc/crontab ser jeg:
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 run-parts --report /etc/cron.hourly
25 3 * * * root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.daily
47 4 * * 7 root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.weekly
52 5 1 * * root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.monthly
Så fint nok, mine cronscripts bliver kørt som root. Men betyder
SHELL=/bin/sh at min shebang bliver overredet, eller er det den shell i
scriptet der får præcedens?
\\kristian
| |
Kristian Thy (26-01-2007)
| Kommentar Fra : Kristian Thy |
Dato : 26-01-07 14:36 |
|
On Jan 26, 12:04 pm, nospam0...@gmail.com (Thorbjørn Ravn Andersen)
wrote:
> (og det er nok en GNU date du ser, og en ikke-GNU date cronjobbet ser)
Jeps, d=`date +%Y%m%d` i stedet for d=`date +%Y%m%d%k%M` løste
problemet. Takker.
\\kristian
| |
|
|