/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Bash script
Fra : Esben


Dato : 09-12-03 13:13

Halløj..

Jeg er ved at lave et lille script der pakker en backup ned i en tar fil og
herefter brænder den. Backupfilen hedder "backup.`date '+%Y-%m-%d'`.tar.gz"
altså f.eks "backup.2003.12.08.tar.gz" Det er den eneste fil der kommer til
at lægge på cd'en. Jeg ville så gerne have den til at komme med en advarsel
og stoppe scriptet hvis man glemmer og skifte cd.

Derfor mounter jeg cdrommen og leder efter filer der er lavet indenfor 48
timer med navnet backup.200* da jeg jo ikke kan lave en date commando som
viser datoen fra i går.

problemet er bare at den altid påstår at cden er under 48 timer gammel ??

Jeg kan lige vedhæftet koden der bøver:

if [ $BURNCD -eq 1 ]
then mount $CDDEVICE $MOUNTDEST > /dev/null 2>&1
if [ -e `find $MOUNTDEST/ -mtime -48 |grep backup.200` ]
then
if [ $EMAIL -eq 1 ]
then echo "The backup file on the CD/DVD-ROM is less than
48 hours old did you remember to change the CD/DVD disc?" | mail -a
"$EMAILFROM" -s "$EMAILERRORSUB" $EMAILADDRESS
fi
echo "The backup file on the CD/DVD-ROM is less than 48 hours
old, did you remember to change the CD/DVD disc?
umount $MOUNTDEST > /dev/null 2>&1
exit 1
fi
fi

Er der nogen der kan se hvad der er jeg gør galt? Eller kan det gøres
smartere?

Mvh.

Esben



 
 
Thomas Rasmussen (09-12-2003)
Kommentar
Fra : Thomas Rasmussen


Dato : 09-12-03 13:30

"Esben" <hyber@hyber.dont-spam-me.dk> writes:

> Halløj..
>
> Jeg er ved at lave et lille script der pakker en backup ned i en tar fil og
> herefter brænder den. Backupfilen hedder "backup.`date '+%Y-%m-%d'`.tar.gz"
> altså f.eks "backup.2003.12.08.tar.gz" Det er den eneste fil der kommer til
> at lægge på cd'en. Jeg ville så gerne have den til at komme med en advarsel
> og stoppe scriptet hvis man glemmer og skifte cd.
>
> Derfor mounter jeg cdrommen og leder efter filer der er lavet indenfor 48
> timer med navnet backup.200* da jeg jo ikke kan lave en date commando som
> viser datoen fra i går.

Øhh... hvorfor ikke?

date --date='1 day ago'

<snip>

> Er der nogen der kan se hvad der er jeg gør galt? Eller kan det gøres
> smartere?

Hvad med noget ala:

yesterday=`date --date='1 day ago'`
file=/path/to/cdrom/backup.$yesterday.tar.gz
if [ -e $file ] ; then
gør hvad du vil;
else;
gør noget andet;
fi

(Det er _ikke_ testet)

Husk at mounte CDROM'en

/Thomas

--
/"\ | Human Knowledge Belongs To The World
\ / | -- Milo Hoffman in "AntiTrust"
x |
/ \ <-- (ASCII Ribbon Campain against html emails and postings!)

Esben (09-12-2003)
Kommentar
Fra : Esben


Dato : 09-12-03 14:02

<snip>
> > Derfor mounter jeg cdrommen og leder efter filer der er lavet indenfor
48
> > timer med navnet backup.200* da jeg jo ikke kan lave en date commando
som
> > viser datoen fra i går.
>
> Øhh... hvorfor ikke?
>
> date --date='1 day ago'
>

Fair nok, jeg trækker min påstand tilbage og laver lige en RFTM til mig selv
=)

Takker..

Hygge

Esben



Niels Baggesen (09-12-2003)
Kommentar
Fra : Niels Baggesen


Dato : 09-12-03 14:15

Esben <hyber@hyber.dont-spam-me.dk> wrote:
> Derfor mounter jeg cdrommen og leder efter filer der er lavet indenfor 48
> timer med navnet backup.200* da jeg jo ikke kan lave en date commando som
> viser datoen fra i g?r.

Hvis du har GNU date, så virker "date -d yesterday"

/Niels

--
Niels Baggesen -- @home -- Århus -- Denmark -- niels@baggesen.net
The purpose of computing is insight, not numbers -- R W Hamming

Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408836
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste