PDA

View Full Version : Bash scripting...dov'e' l'errore?


DaRkBoDoM
11-05-2003, 20:33
Scopo dello script: montare una dir su un server windown remoto e farci su il backup di alcuni files "pacchettandoli" con tar.

Lo script non funziona, da' questo errore:
tar: /mnt/backup/Backups200/www.tar: Cannot stat: No such file or directory
per ogni directory, anche se la dir viene montata corettamente.... help!


#!/bin/bash

#Backuppo il backuppabile su Transylvania se possibile

echo "Backup in corso..."

PRIO=18 #Priorita' backup
BACKUPTO="Backups200" #Dir di destinazione
BACKUPFROM=("/var/www" "/var/ftp" "/var/mail" "/home" "/root" "/etc" "/var/log" "/var/lib/mysql" "/var/wwws") #Dirs da backuppare
BACKUPNAMES=("www" "ftp" "mail" "home" "root" "etc" "log" "mysql" "wwws") #Nomi files bz2
MOUNTPOINT="/mnt/backup"
SMBTARGET="//Transylvania/Dati"
SMBUSER="webserver"
SMBPASS="xxx"

#Controllo almeno un po' che i prametri siano ok

if [ ${#BACKUPFROM[*]} != ${#BACKUPNAMES[*]} ]
then
echo "Errore interno dello script. (${#BACKUPFROM[*]} ${#BACKUPNAMES[*]})"
exit 1
fi

echo "Monto la dir x il backup..."

#Smonto la dir se fosse gia' montata
umount $MOUNTPOINT

#Monto la mia dir o esco se qlc nn va
mount -t smbfs -o username=$SMBUSER,password=$SMBPASS $SMBTARGET $MOUNTPOINT || exit 1

#Backuppo

echo "Inizio copia files"

i="0"

while [ $i -lt ${#BACKUPFROM[*]} ]
do
echo Backuppo: ${BACKUPFROM[$i]}
nice -n $PRIO tar -cPfv $MOUNTPOINT/$BACKUPTO/${BACKUPNAMES[$i]}.tar ${BACKUPFROM[$i]}/

i=$[$i+1]
done

echo "Smonto la dir..."

umount $MOUNTPOINT || exit 2

echo "Fatto."

exit 0

Jøhñ Ðøë
12-05-2003, 01:07
Secondo me il rpblema sta nel fatto che non crei la directory $BACKUPTO

prova a sostituire il contenuto del ciclo con

i="0"
mkdir -p $MOUNTPOINT/$BACKUPTO/
cd $MOUNTPOINT/$BACKUPTO/

while [ $i -lt ${#BACKUPFROM[*]} ]
do
echo Backuppo: ${BACKUPFROM[$i]}
nice -n $PRIO tar -cPjvf ${BACKUPNAMES[$i]}.tar.bz2 ${BACKUPFROM[$i]}/
i=$[$i+1]
done


E ricorda che in tar se vuoi bzippare devi aggiungere -j alle opzioni, e .bz2 al file (anche se non è obbligatorio l'estensione)
Inoltre la cosa che segue l'opzione f deve essere direttamente il file destinazione.

Se invece la directori $backupto esiste già nel tuo flesystem questo è solo un vaneggiamento :p
John

DaRkBoDoM
12-05-2003, 01:29
Grazie per la risposta!

mi ero dimenticato che f dev'essere l'ultima opzione :D

$BACKUPTO esiste gia'.

Risolto.

P.s. Avevo tolto j e l'estensione bz2 per motivi di rapidità nei test :)

Gavrila
12-05-2003, 16:29
Originally posted by "DaRkBoDoM"



mi ero dimenticato





:pig: :pig: :pig: :pig:

DaRkBoDoM
13-05-2003, 05:02
Tra l'altro questo script è nato bastardo... la prima volta che l'ho provato mi son dimenticato di essere root e ho wippato /etc

-_-'