gulli:board Logo

Anzeige


  Antwort
Littlejohny
Mitglied
 
Registrierungsdatum: Apr 2007
Beiträge: 75
backupscript

hi leute, da ich mich noch nicht sogut in dem gebiet linux auskenne. habe ich eine frage an euch.

und zwar geht es um dieses backupscript. ich krieg da immer errors. verzeichnis nicht gefunden etc. obwohl es stimmen müsste. ist das script richtig configuriert?

Code:
MYSQL_USER=[ ] MYSQL_PASS=[ ] FTP_SERVER=[ ] FTP_USER=[ ] FTP_PASS=[ ] # Festlegung des Datums - Format: 20050710 DATE=`date +"%Y%m%d"` # Das Script # Backup-Verzeichnis anlegen mkdir /backup mkdir /backup/mysql # Verzeichnisse die ins Backup integriert werden sollen rsync -az --delete --delete-after /home /backup rsync -az --delete --delete-after /etc/proftpd /backup rsync -az --delete --delete-after /etc/apache2 /backup rsync -az --delete --delete-after /var/www /backup rsync -az --delete --delete-after /root /backup cd /backup/mysql # Sicherung der Datenbanken mysqldump -AaCceQ -u$MYSQL_USER -p$MYSQL_PASS -r mysql.dbs cd ../ # Alle Dateien mit tar.bz2 komprimieren tar cjfp home-$DATE.tar.bz2 home tar cjfp proftpd-$DATE.tar.bz2 proftpd tar cjfp apache2-$DATE.tar.bz2 apache2 tar cjfp www-$DATE.tar.bz2 www tar cjfp root-$DATE.tar.bz2 root tar cjfp mysql-$DATE.tar.bz2 mysql # Alle komprimierten Dateien per FTP auf den Backup-Server laden ftp -u ftp://FTP_USER:FTP_PASS@FTP_SERVER $DATE # Anschließend alle auf den Server angelegten Dateien wieder löschen rm -r -f /backup
Alt 20. 05. 2008, 22:56 Littlejohny is offline Mit Zitat antworten #1
DrFuture
Der aus der Zukunft
 
Benutzerbild von DrFuture
 
Registrierungsdatum: Apr 2003
Beiträge: 2.856
Re: backupscript

Konfiguriert??
da wir deinen Server nicht auswendig kennen kann dir keiner sagen ob die Pfade stimmen außer dir selber ....
Alt 20. 05. 2008, 23:46 DrFuture is offline Mit Zitat antworten #2
Datafreak
quassel-irc.org User
 
Benutzerbild von Datafreak
 
Registrierungsdatum: Sep 2004
Ort: $HOME
Beiträge: 1.281
Re: backupscript

Hast du das Script als User oder als Root ausgeführt?

MFG
Datafreak
Alt 21. 05. 2008, 07:08 Datafreak is online now Mit Zitat antworten #3
Littlejohny
Mitglied
(Threadstarter)
 
Registrierungsdatum: Apr 2007
Beiträge: 75
Re: backupscript

Zitat:
Hast du das Script als User oder als Root ausgeführt?

MFG
Datafreak

als root


Zitat:
Konfiguriert??
da wir deinen Server nicht auswendig kennen kann dir keiner sagen ob die Pfade stimmen außer dir selber ....

die pfade stimmen eigentlich

EDIT:
also ich habs geschafft die pfade sind jetzt richtig eingestellt
das nächste problem. das uploaden auf den backupserver funzt nicht

ich krieg diese meldung:
Code:
r11514:~# ./backup.sh ftp: u: unknown option r11514:~#
Alt 21. 05. 2008, 08:21 Littlejohny is offline Mit Zitat antworten #4
Datafreak
quassel-irc.org User
 
Benutzerbild von Datafreak
 
Registrierungsdatum: Sep 2004
Ort: $HOME
Beiträge: 1.281
Re: backupscript

Das liegt an folgender Zeile:

Code:
ftp -u ftp://FTP_USER:FTP_PASS@FTP_SERVER $DATE

MFG
Datafreak
Alt 21. 05. 2008, 08:45 Datafreak is online now Mit Zitat antworten #5
Littlejohny
Mitglied
(Threadstarter)
 
Registrierungsdatum: Apr 2007
Beiträge: 75
Re: backupscript

Zitat:
Zitat von Datafreak
Das liegt an folgender Zeile:

Code:
ftp -u ftp://FTP_USER:FTP_PASS@FTP_SERVER $DATE

MFG
Datafreak

jo ich weiß aber was ist daran falsch?
Alt 21. 05. 2008, 09:03 Littlejohny is offline Mit Zitat antworten #6
Datafreak
quassel-irc.org User
 
Benutzerbild von Datafreak
 
Registrierungsdatum: Sep 2004
Ort: $HOME
Beiträge: 1.281
Re: backupscript

Aus meiner Sicht kann diese Zeile überhaupt nicht funktionieren, da er ja noch nicht mal weis das "FTP_USER" eine Variable ist, weil das "$" fehlt. Auch steht dirt nicht, welche Dateien er hochladen soll.
Ich würde es mit ncftp bzw. ncftpput machen.

UNGETESTET
Code:
ncftpput -R -u $FTP_USER -p $FTP_PASS $FTP_SERVER /$DATE /backup/

Ich habe dies auf meinem Server mit folgendem Script gelöst.
Dieses löscht auch alte Backups auf dem FTP-Server.
Code:
#!/bin/bash HOST="backup.serverkompetenz.de" USER="" PASS="" FTPDIR="autobackup" MYSQLADMIN="" MYSQLPASS="" DELDAY="7" datum=$(date +%d-%m-%G) EXCLUDE="--exclude=/home/ftp" TMPBACKUP="/tmp/backup" DIRLIST="${TMPBACKUP}/list.txt" mkdir -p ${TMPBACKUP}/${datum}/mysql/ for DOMAIN in /var/www/vhosts/* do TEMPDOMAIN=$(echo $DOMAIN | awk -v FS="/var/www/vhosts/" '{print $2}') tar $EXCLUDE -cvzf ${TMPBACKUP}/${datum}/${TEMPDOMAIN}.tar.gz $DOMAIN >/dev/null 2>&1 echo $DOMAIN done. done tar $EXCLUDE -cvzf ${TMPBACKUP}/${datum}/home.tar.gz /home >/dev/null 2>&1 echo /home done. tar -cvzf ${TMPBACKUP}/${datum}/mysql_dir.tar.gz /var/lib/mysql >/dev/null 2>&1 echo /var/lib/mysql done. tar -cvzf ${TMPBACKUP}/${datum}/etc_dir.tar.gz /etc >/dev/null 2>&1 echo /etc done. for i in $(mysql -u$MYSQLADMIN -p$MYSQLPASS -Bs -e "show databases") do mysqldump -u$MYSQLADMIN -p$MYSQLPASS --opt --quote-names "$i" | bzip2 -c > "${TMPBACKUP}/${datum}/mysql/$i.sql.bz2" >/dev/null 2>&1 done echo MySQL-Dump done. ncftpput -R -u $USER -p $PASS $HOST /$FTPDIR ${TMPBACKUP}/${datum}/ >/dev/null 2>&1 echo Uploade done. rm -R ${TMPBACKUP}/${datum} ncftpls -u $USER -p $PASS ftp://$HOST/$FTPDIR/ >> $DIRLIST backupdel="0" while read test; do case $test in .) ;; ..) ;; *) tagx=$(echo $test | awk -v FS="-" '{print $3$2$1}') heute=$(date +%Y%m%d) tage=$((($(date +%s --date $heute)-$(date +%s --date $tagx))/86400)) if (($tage>=$DELDAY)); then loeschen="$loeschen $test" backupdel="1" else echo "$test uebersprungen" fi ;; esac done<$DIRLIST rm -R ${TMPBACKUP} case $backupdel in 0) ;; 1) ncftp -u"$USER" -p"$PASS" ftp://$HOST << EOF cd $FTPDIR rm -r $loeschen quit EOF ;; esac echo "Backup done!"

MFG
Datafreak
Alt 21. 05. 2008, 10:30 Datafreak is online now Mit Zitat antworten #7
Littlejohny
Mitglied
(Threadstarter)
 
Registrierungsdatum: Apr 2007
Beiträge: 75
Re: backupscript

danke für eure hilfe. Habe es geschafft. backup wird nun mit wput hochgeladen
Alt 21. 05. 2008, 21:31 Littlejohny is offline Mit Zitat antworten #8
Littlejohny
Mitglied
(Threadstarter)
 
Registrierungsdatum: Apr 2007
Beiträge: 75
Re: backupscript

so, alles funktioniert zwar einwandfrei. der macht backup und ladet es auf nen anderen webspace aber das funzt nicht mit crontab.

habe es so gesetzt:
Code:
* 3 * * * root /root/backup.sh

solle eigentlich immer um 3 uhr nachts ein backup machen oder?
Alt 24. 05. 2008, 12:31 Littlejohny is offline Mit Zitat antworten #9
vmk Spender
Beiträge: 1‰
 
Benutzerbild von vmk
 
Registrierungsdatum: Jun 2000
Ort: /home/vmk
Beiträge: 15.433
Re: backupscript

Ja, wenn der cron-Daemon dann auch läuft und das Skript korrekt ist.

Was steht für 3:00 in den Logfiles drin?

btw, deinem Skript fehlt die shebang-Zeile. Vielleicht liegt es daran?
Alt 24. 05. 2008, 13:31 vmk is offline Mit Zitat antworten #10
Littlejohny
Mitglied
(Threadstarter)
 
Registrierungsdatum: Apr 2007
Beiträge: 75
Re: backupscript

thx, so mal abwarten obs heute nacht funzt
Alt 24. 05. 2008, 19:56 Littlejohny is offline Mit Zitat antworten #11
Littlejohny
Mitglied
(Threadstarter)
 
Registrierungsdatum: Apr 2007
Beiträge: 75
Re: backupscript

Zitat:
Zitat von vmk
Ja, wenn der cron-Daemon dann auch läuft und das Skript korrekt ist.

Was steht für 3:00 in den Logfiles drin?

btw, deinem Skript fehlt die shebang-Zeile. Vielleicht liegt es daran?

wtf, was ist eine shebang-Zeile?

wenn ich ./backup.sh

eingebe funzt das script ja nur über crontab nicht^^
Alt 24. 05. 2008, 19:57 Littlejohny is offline Mit Zitat antworten #12
vmk Spender
Beiträge: 1‰
 
Benutzerbild von vmk
 
Registrierungsdatum: Jun 2000
Ort: /home/vmk
Beiträge: 15.433
Re: backupscript

Tip1: http://www.google.de/search?q=shebang

Tip2: Faulheit wird auf diesem Board nicht unterstützt.
Alt 24. 05. 2008, 20:03 vmk is offline Mit Zitat antworten #13
Littlejohny
Mitglied
(Threadstarter)
 
Registrierungsdatum: Apr 2007
Beiträge: 75
Re: backupscript

thx, so mal abwarten obs heute nacht funzt
Alt 24. 05. 2008, 20:12 Littlejohny is offline Mit Zitat antworten #14
Littlejohny
Mitglied
(Threadstarter)
 
Registrierungsdatum: Apr 2007
Beiträge: 75
Re: backupscript

shit, ging heute nacht wieder nicht habt ihr vllt. noch eine idee?
Alt 25. 05. 2008, 09:36 Littlejohny is offline Mit Zitat antworten #15
Datafreak
quassel-irc.org User
 
Benutzerbild von Datafreak
 
Registrierungsdatum: Sep 2004
Ort: $HOME
Beiträge: 1.281
Re: backupscript

Was sagen deine Logs?

MFG
Datafreak
Alt 25. 05. 2008, 10:39 Datafreak is online now Mit Zitat antworten #16
arkelanfall
offline
 
Registrierungsdatum: Jul 2005
Beiträge: 2.385
Re: backupscript

Zitat:
Zitat von Littlejohny
ist das script richtig configuriert?

Mal noch ein paar generelle Anmerkungen zum Skript:

1) Shebang fehlt (wurde ja schon erwähnt)
2) entweder $PATH im Skript definieren, oder absolute Pfade verwenden.
NIE auf korrekte Umgebungsvariablen verlassen! Das ist böse!
3) Wenn das Skript als root laufen muss, dann muss es das auch prüfen. So z.B.:
Code:
if [ $(id -u) -ne 0 ]; then echo "ERROR: Must be run as root! -- EXITING!" >&2 exit 1 fi


Zitat:
# Das Script

# Backup-Verzeichnis anlegen
mkdir /backup
mkdir /backup/mysql

4a) Sowas gehört nach /tmp/backup, oder /var/tmp/backup, oder...
Aber man arbeitet NIE direkt auf /
4b) Umask setzen! Sonst bekommst du eventl. ein gewaltiges Sicherheitsloch!
4c) NIE einfach so davon ausgehen, dass der Befehl funktioniert hat!
Wenn dein Verz. nicht angelegt werden konnte (waurm auch immer), dann landen deine Backups irgendwo auf der Platte!

Beispiel:
Code:
if ! mkdir /tmp/backup; then echo "ERROR: Could not create /tmp/backup -- EXITING!" > &2 exit 1 fi

Zitat:
# Sicherung der Datenbanken
mysqldump -AaCceQ -u$MYSQL_USER -p$MYSQL_PASS -r mysql.dbs

5) Unbedingt darauf achten, dass dein Skript 700 als Permissions hat. Sonst kann am Ende jeder lokale User dein mysql-Passwort lesen.
Am besten du fängst das ebenfalls mit einem Test im Skript ab (damit das Skript eine fette Warnung ausgibt, sobald seine eigenen File-Rechte nicht stimmen. --> Du siehst den Fehler sofort in den Logs).

<edit>
Kleiner Einschub, bevor du fragst "wie geht das:
Code:
if [ $(stat --format=%a $0 ) -ne 700 ]; then echo "WARNING: Insecure file permissions on $0!" >&2 fi
</edit>

Zitat:
cd ../

6) siehe 4c) Du solltest abfangen, ob das auch wirklich geklappt hat. pwd sollte danach das Verzeichnis angeben, in dem du auch sein willst.

Zitat:
rm -r -f /backup

7) Siehe 4c): Prüfen, ob das Verzeichnis auch wirklich weg ist!
Alt 25. 05. 2008, 11:28 arkelanfall is offline Mit Zitat antworten #17
Themen-Optionen Antwort


Themen-Optionen

Gehe zu



Alle Zeitangaben in UTC +1. Es ist jetzt 16:50 Uhr.
Angetrieben von vBulletin
Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
neurotypical.gullisys.net

Anmelden

Benutzername
Kennwort
© Copyright 2008 gulli.com home | regeln | sitemap | kontakt | impressum | partner | downloads | disclaimer |
Message Boards and Forums Directory