Backup per Cron

Backup, Restore und Transfer von Daten
afrika123
Posts: 82
Joined: 2005-10-31 12:43
 

Backup per Cron

Post by afrika123 »

Suche eine gute Möglichkeit ein Backup per Cron zu erstellen.
Per ssh geht es ja schon recht gut, aber nun möchte ich das gerne automatisieren.
Soetwas in der Richtung hatte ich gedacht:

Code: Select all

tar cvfz backup$date.tar.gz /der/zu/sichernde/ordner/
und die Datenbank mit

Code: Select all

mysqldump -hlocalhost -udeinUser -pdeinPasswort deineDB > db$date.sql
kennt da jemand eine schöne Möglichkeit?
Ich möchte auf ein komplettes Sicherungsprogramm verzichten, und nur komplette Datensätze sichern.
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Backup per Cron

Post by Roger Wilco »

afrika123 wrote:kennt da jemand eine schöne Möglichkeit?
Pack die von dir genannten Kommandos in ein Shellskript.
tobiask
Posts: 164
Joined: 2004-05-02 12:08
Location: NRW
 

Re: Backup per Cron

Post by tobiask »

so sichere ich:

/home komplett:

Code: Select all

tar czf - /home 2>/dev/null | split -b 50000k - /home/backup/home_backup.tar.gz

mysql:

Code: Select all

mysqlhotcopy --flushlog -u root --password=rootpasswort --regexp=usr_web?_? -allowold /home/mysqlbackup

mysql geht auch so z.b.:

Code: Select all

DATUM=`date +%d-%m`
mysqldump --databases usr_web1_2 -uroot -ppasswort -C -x -F --opt > mysqldumb.$DATUM.web2.sql;
musst natürlich passwörter und datenbanknamen etc anpassen ;)
afrika123
Posts: 82
Joined: 2005-10-31 12:43
 

Re: Backup per Cron

Post by afrika123 »

Tobiask wrote:so sichere ich:

/home komplett:

Code: Select all

tar czf - /home 2>/dev/null | split -b 50000k - /home/backup/home_backup.tar.gz

mysql:

Code: Select all

mysqlhotcopy --flushlog -u root --password=rootpasswort --regexp=usr_web?_? -allowold /home/mysqlbackup

mysql geht auch so z.b.:

Code: Select all

DATUM=`date +%d-%m`
mysqldump --databases usr_web1_2 -uroot -ppasswort -C -x -F --opt > mysqldumb.$DATUM.web2.sql;
musst natürlich passwörter und datenbanknamen etc anpassen ;)
Das sieht schon super aus. :-D
Shell Script? Vielleicht mal ein Beispiel posten.
User avatar
daemotron
Administrator
Administrator
Posts: 2641
Joined: 2004-01-21 17:44
 

Re: Backup per Cron

Post by daemotron »

Shell Script? Vielleicht mal ein Beispiel posten.
Wie der Name schon sagt, sind Shell-Skripte nichts anderes als eine Abfolge von Shell-Befehlen (zwar kann man prinzipiell noch ein bisschen mehr damit machen, aber für den Anfang sollte das reichen 8) ). Du musst nur in der ersten Zeile den Interpreter für das Script angeben, hier im Beispiel /bin/sh - musst Du eben an Dein System anpassen. Danach einfach die Shell-Befehle reinpacken - fertig.

Code: Select all

#!/bin/sh

#Dateien sichern
tar czf - /home 2>/dev/null | split -b 50000k - /home/backup/home_backup.tar.gz

#Datenbank sichern
mysqlhotcopy --flushlog -u root --password=rootpasswort --regexp=usr_web?_? -allowold /home/mysqlbackup
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
 

Re: Backup per Cron

Post by captaincrunch »

...und am allerbesten lernst du dabei direkt von Anfang an, mit absoluten Pfaden zu arbeiten.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
afrika123
Posts: 82
Joined: 2005-10-31 12:43
 

Re: Backup per Cron

Post by afrika123 »

Habe die Datei nun backup.sh genannt chmod 755, allerdings command unknown kommt als Antwort.
Muss die datei denn in einem bestimmten verzeichnis liegen?
tobiask
Posts: 164
Joined: 2004-05-02 12:08
Location: NRW
 

Re: Backup per Cron

Post by tobiask »

afrika123 wrote:Habe die Datei nun backup.sh genannt chmod 755, allerdings command unknown kommt als Antwort.
Muss die datei denn in einem bestimmten verzeichnis liegen?
verzeichniss ist egal

probier mal

Code: Select all

 chmod 0755 backup.sh
und dann kannste eigentlich problemlos mit

Code: Select all

sh ./backup.sh
aufrufen.
afrika123
Posts: 82
Joined: 2005-10-31 12:43
 

Re: Backup per Cron

Post by afrika123 »

Supi.
Das funktionierte schonmal gut ;)
Wie mache ich nun einen cron draus?
also den Aufruf
0 1 * * *usr/web/html/backup/sh ./backup.sh
tobiask
Posts: 164
Joined: 2004-05-02 12:08
Location: NRW
 

Re: Backup per Cron

Post by tobiask »

afrika123 wrote:Supi.
Das funktionierte schonmal gut ;)
Wie mache ich nun einen cron draus?
also den Aufruf
0 1 * * *usr/web/html/backup/sh ./backup.sh

so für zb alle 2 tage:

Code: Select all

* * */2 * * sh /pfad/zum/script/backup.sh
afrika123
Posts: 82
Joined: 2005-10-31 12:43
 

Re: Backup per Cron

Post by afrika123 »

Das hat jetzt hervorragend geklappt.
Nun kommt der 2.te Teil, die Sicherung mit FTP.
Ich möchte nun die Daten per Cron auf einen FTP Server legen.
FTP = backup@domain.de passwort = "pas***rt"
Kann ich das auch mit so einem Shellscript machen oder bietet sich da php an?
Die Datei vom Vortag sollte dann ebenfalls gelöscht werden.
DATUM=`date +%d-%m`
DATUM_DEL = $DATUM-"1" oder so in der Richtung
del mysqldumb.DATUM_DEL.web2.sql;
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main
 

Re: Backup per Cron

Post by aubergine »

Schau dir mal sitecopy an
metrax
Posts: 194
Joined: 2003-02-22 22:51
Location: München / Berg-am-Laim
 

Re: Backup per Cron

Post by metrax »

Tobiask wrote: mysql geht auch so z.b.:

Code: Select all

DATUM=`date +%d-%m`
mysqldump --databases usr_web1_2 -uroot -ppasswort -C -x -F --opt > mysqldumb.$DATUM.web2.sql;
Wo wir gerade mal beim Thema MySQL mit Datumspfaden backuppen sind ...


kenn jemand ne Möglichkeit das alle Backups die Ã?lter als ne Woche sind zu entfernen, ohne jetzt groß mit PHP und Perl rumhantieren zu müssen?
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53
 

Re: Backup per Cron

Post by Roger Wilco »

Code: Select all

find /path/to/backups -ctime +7 -name *.sql -exec rm {} ;
Wenn es sehr viele Dateien sind, eventuell noch ein xargs dahinterknallen.
tobiask
Posts: 164
Joined: 2004-05-02 12:08
Location: NRW
 

Re: Backup per Cron

Post by tobiask »

ftp transfer mache ich so:

ne .netrc anlgenen und ftp login daten rein

im cron so:

Code: Select all

ftp < /home/ftptrans > /dev/null
in der datei ftptrans:

Code: Select all

open webmaster-eye.de
cd mynpbackups
prompt
lcd /home/backup
mput mysql*
mput dum*
close
open backup92.pureserver.info
lcd /home/backup
mput *_backup*
mput dum*
close
exit

und zum löschen:

Code: Select all

#! /usr/bin/sh
for dir in /home/backup
do
  if   [ -d $dir ]
  then   find $dir -type f -mtime +7 -exec rm {} ;
  fi
done
exit
afrika123
Posts: 82
Joined: 2005-10-31 12:43
 

Re: Backup per Cron

Post by afrika123 »

Nun habe ich das mal so gemacht.

Code: Select all

tar cvfz backup_daten_server.$DATUM.tar.gz /srv/www/htdocs/web1/datensicherung/

ftp -in <<EOF
open backup.serverkompetenz.de
user usernummer passwort
bin


cd /stratobackup

put backup_daten_server.$DATUM.tar.gz
Nun habe ich einen upstream von 23kb. Normal sind es so 5 MB
Woran kann das nun wieder liegen?
tobiask
Posts: 164
Joined: 2004-05-02 12:08
Location: NRW
 

Re: Backup per Cron

Post by tobiask »

Nun habe ich einen upstream von 23kb. Normal sind es so 5 MB
Woran kann das nun wieder liegen?
vielleicht war der server grad überlastet, teste doch nochma
afrika123
Posts: 82
Joined: 2005-10-31 12:43
 

Re: Backup per Cron

Post by afrika123 »

Das wars wohl, nun geht es wieder.