backupscript hilfe

Message
Author
panthera

Re: backupscript hilfe

#16 Post by panthera »

ih, der erste preis fuer eine ueberfluessige funktion geht an mich :)

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#!/bin/sh

LANG=de_DE

DATUM=`date -I`
WOCHENTAG=`date +%A`
ZEIT=`date +%c`

DIRECTORY_BACKUP=/backup
DIRECTORY_LOG=/var/log/backup

if [ ! -d $DIRECTORY_BACKUP ]
then
mkdir -p $DIRECTORY_BACKUP
fi

if [ ! -d $DIRECTORY_LOG ]
then
mkdir -p $DIRECTORY_LOG
fi

lock()
{
if [ $(id -u) -ne 0 ]
then
echo 'Error: permission denied (user is not root)'
exit 1
fi

if [ -e /var/lock/backup.lock ]
then
echo 'Error: process locked (backup is already running)'
exit 1
fi

trap 'test -e /var/lock/backup.lock && rm -f /var/lock/backup.lock; exit 0' 0 2 15
touch /var/lock/backup.lock
}

backup_full()
{
echo 'Fullbackup erzeugen'
echo "Full Backup: $ZEIT" >> $DIRECTORY_LOG/backup.$2.log

tar cfvzp $DIRECTORY_BACKUP/fullbackup-$2.$DATUM-$WOCHENTAG.tar.gz $1 >> $DIRECTORY_LOG/backup.$2.log >&1
}

backup_weekend()
{
echo 'Weekendbackup erzeugen'
echo "Incrementelles (Weekend) Backup: $ZEIT" >> $DIRECTORY_LOG/backup.$2.log

find $1 -mtime -3 -type f > /var/cache/backup.log
tar cfvzp $DIRECTORY_BACKUP/incremental-$2.$DATUM-$WOCHENTAG.tar.gz -T /var/cache/backup.log >> $DIRECTORY_LOG/backup.$2.log >&1
rm -f /var/log/backup.log
}

backup_incremental()
{
echo 'Incrementelles Backup erzeugen'
echo "Incrementelles Backup: $ZEIT" >> $DIRECTORY_LOG/backup.$2.log

find $1 -mtime -1 -type f > /var/cache/backup.log
tar cfvzp $DIRECTORY_BACKUP/incremental-$2-$DATUM-$WOCHENTAG.tar.gz -T /var/cache/backup.log >> $DIRECTORY_LOG/backup.$2.log >&1
rm -f /var/log/backup.log
}

main()
{
lock

case $1 in
zip)
mount /dev/sda4 $DIRECTORY_BACKUP &&
;;

samba)
smbmount //Windows2kRechner/backup $DIRECTORY_BACKUP -o username=Text,password=Test &&
;;
*)
echo "Usage: $0 {zip,samba}"
exit 1
esac

if [ "$WOCHENTAG" == 'Montag' ]
then
BACKUP=weekend
elif [ "$WOCHENTAG" == 'Dienstag' ]
then
BACKUP=full
else [ "$WOCHENTAG" != 'Freitag' ]
BACKUP=incremental
fi

backup_$BACKUP /etc etc
backup_$BACKUP /home home
backup_$BACKUP /var/www www
backup_$BACKUP /var/log www-log

umount $DIRECTORY_BACKUP

exit 0
}

main $1
</font><hr></pre></blockquote>

arno

Re: backupscript hilfe

#17 Post by arno »

@panthera
danke *gg*
sorry hab mittag leider keine zeit mehr gehabt. aber jetzt dafür die ganze nacht
um zu testen usw. *gg*
das mit dem removing / schreckt mich schon lange nicht mehr <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
im grossen und ganzen ist mir das script klar bis auf die zeile:
trap 'test -e /var/lock/backup.lock && rm -f /var/lock/backup.lock; exit 0' 0 2 15
und da vorallem das "trap" (ich werd aus der man page net ganz schlau) und dann die zahlen 0 2 15
nach dem exit 0'?

ps.: die frage mit dem zip und den modulen war ein denkfehler von mir.(praktisch ein biomechanical system error)
am vormittag arbeitet mein hirn noch net auf vollen touren *gg*.

bis bald
mfg
arno

Post Reply