Bash file inlezen verschil cron commandline?

Pagina: 1
Acties:

  • djack
  • Registratie: September 2002
  • Laatst online: 11-11-2024
ik heb een scriptie dat een backup neemt van onze svn.
Het rare is dat wanneer ik dit vanaf de command line laat lopen hij volledig zijn ding doet.
Wanneer ik dit vanaf de cron doe doet ie maar een stukje

wat hij moet doen is een fileke inlezen en voor elke regel in dien file den backup laten draaien ... mo hij doet dat vanaf de cron maar voor het eerste lijntje alleen en vanaf de command line voor alle 2 ....


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh

#tuneables
BACKUPSRC=/data/svn 
BACKUPDST=/mnt/backup/sources/repository/svn
BACKUPLIST=/usr/local/bin/repolist
TEMPDIR=/tmp
#end tuneables

DIR=`date "+%Y %B"`                             # autogenerated classification dirs
TIMESTAMP=`date "+%Y%m%d"`                      # timestamp for filename
SRCNAME=`echo "$BACKUPSRC" | tr '/' '_'`        # source designation for filename

echo "-[$0]---------------------------------------"
echo "starting backup run for "$BACKUPSRC" at "`date "+%Y%m%d-%H%M%S"`

if [ ! -d "$BACKUPSRC" ]; then
        echo "error: backup source $BACKUPSRC not a directory"
        exit 1
fi

if [ ! -d "$BACKUPDST" ]; then
        echo "error: backup dest $BACKUPDST not a directory"
        exit 1
fi

if [ ! -e "$BACKUPDST/$DIR" ]; then
        if mkdir "$BACKUPDST/$DIR"; then
                echo "created destination directory "$DIR
        else
                echo "error: could not create directory "$BACKUPDST"/"$DIR
                exit 1
        fi
fi

cat $BACKUPLIST |
while read REPO; do 
FILENAME="$TIMESTAMP"-snapshot-"$REPO"       # effective filename
echo "backing up to "$BACKUPDST"/"$DIR"/"$FILENAME".tar.gz"

cd $BACKUPSRC
svnadmin dump "$REPO" > "$TEMPDIR/$FILENAME" 
cd $TEMPDIR 
tar cf "$FILENAME".tar "$FILENAME"
gzip -f -9 "$FILENAME".tar
mv "$FILENAME".tar.gz "$BACKUPDST/$DIR" 
rm -f "$FILENAME"
cd /usr/local/bin
done

Because Great minds Think alike


  • _Apache_
  • Registratie: Juni 2007
  • Laatst online: 06:04

_Apache_

For life.

offtopic:
Titelfix -> Bash naar Batch.. groot verschil..

Zero SR/S 17.3kWh / 2.7 kWP PV / Xtend WP 5kW + HRSolar zonneboiler


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01-02 15:11

DataGhost

iPL dev

_Apache_ schreef op donderdag 05 juli 2007 @ 15:46:
offtopic:
Titelfix -> Bash naar Batch.. groot verschil..
Wat heeft Batch hiermee te maken :?

TS: Het is me nog een beetje onduidelijk waar precies maar 1 regel van genomen wordt. Verder: hoe roep je het script op de commandline aan en hoe in cron?

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Bekend probleem:
Bij het uitvoeren van cronjobs wordt niet de environment van de user geladen.
Je zult dus niet alle settings voor bv PATH e.d. hebben.

Je kunt het oplossen door als eerste je .profile of .bashrc te sourcen in je script.

[edit]
Zal wel .profile zijn, aangezien je /bin/sh gebruikt. En dus geen bash idd

[ Voor 15% gewijzigd door u_nix_we_all op 05-07-2007 17:51 ]

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01-02 15:11

DataGhost

iPL dev

u_nix_we_all schreef op donderdag 05 juli 2007 @ 17:49:
Bekend probleem:
Bij het uitvoeren van cronjobs wordt niet de environment van de user geladen.
Je zult dus niet alle settings voor bv PATH e.d. hebben.

Je kunt het oplossen door als eerste je .profile of .bashrc te sourcen in je script.

[edit]
Zal wel .profile zijn, aangezien je /bin/sh gebruikt. En dus geen bash idd
Eh, hij gebruikt verder geen env-vars, wat hebben die ermee te maken dan? Alle gebruikte vars zijn netjes vooraf gedeclareerd.

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
DataGhost schreef op donderdag 05 juli 2007 @ 17:54:
[...]

Eh, hij gebruikt verder geen env-vars, wat hebben die ermee te maken dan? Alle gebruikte vars zijn netjes vooraf gedeclareerd.
Ja, maar hij gebruikt ook geen volledig pad naar allerlei executables, en die gaat hij bijv zonder goede $PATH niet vinden.

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 01-02 15:11

DataGhost

iPL dev

Nee ok, maar ik ga er wel min of meer van uit dat dat soort basis-executables in het basis-path staan, anders had zijn script wel anders gereageerd dan 'slechts 1 lijntje'. Daarbij ga ik er ook vanuit dat dat ene lijntje iets te maken heeft met succesvolle uitvoer, maar dat is nog steeds niet duidelijk.

  • djack
  • Registratie: September 2002
  • Laatst online: 11-11-2024
Het lijkt dat het idd he PATH was.
k heb even het path mee geexporteerd en dit lijkt te lukken

thanks

Because Great minds Think alike

Pagina: 1