Willkommen |
|
|
myGully |
|
|
Links |
|
|
Forum |
|
|
|
|
 |
16.04.13, 22:11
|
#1
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
Externer Webserver -> Backupprogramm
Hallo,
ich bin nicht sicher obs hier oder ins Programmierforum passt, sry.
Also ich habe ein normalen kleinen Webserver bei Netcup und zu Hause ein RaspberryPI.
Derzeit mache ich 1x im Monat immer noch manuell die Backups vom Webserver über das Confixx Panel (Backup erstellen und dann per FTP runter laden).
Ich frage mich nun ob es nicht ein Programm ähnlich dem MySqlDumper gibt, welches sich z.b. 1x pro Woche mit meinem Webserver (über FTP) verbindet, diesen komplett runter lädt/kopiert und dann mit Datum beschriftet in ein Ordner packt.
Gibt es schon so ein Programm, oder soll ich mir eher selbst ein S***** schreiben und das mitm Cron ausführen?
Gruß
Logan517
|
|
|
16.04.13, 22:21
|
#2
|
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.794
Bedankt: 1.700
|
Mir fällt kein Programm ein.
Das ist aber relativ simpel, deshalb würde ich zu einem S***** tendieren. Allerdings würde ich, wenn möglich rsync oder scp über ssh verwenden.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
16.04.13, 22:35
|
#3
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
Zitat:
Zitat von spartan-b292
rsync oder scp über ssh verwenden.
|
leider steht mir nur FTP zur Verfügung, weil es nur ein reiner Webspace mit PHP, MySql und Perl ist.
|
|
|
16.04.13, 23:03
|
#4
|
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.794
Bedankt: 1.700
|
Dann würde ich mit wget über ftp arbeiten.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
17.04.13, 00:02
|
#5
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
meinst du nicht eher mget??
wie schreibe ich es denn in dem s***** rein, dass der befehl an gftp gehen soll und nicht als shell befehl behandelt wird?
so meine ich das:
ich vermute mal wider ist es total einfach, bloß ich komme momentan nicht drauf.
mit dem restlichen sollt eich klarkommen, runtergeladenen html ordner komprimieren, mit passendem namen versehen und vorher noch eine Überprüfung durchführen in denen alle extrem alten Backups gelöscht werden.
btw. ich glaube das Thema passt nun eher in das Forum Programmierung
EDIT:
Sag ich doch, total einfach, aber ich komm nicht drauf
Code:
wget -r -l0 --ftp-user=USER --ftp-password=PW --directory-prefix=~/webspacebackup ftp://DOMAIN.de/html/*
Merci
EDIT2:
gibts auch ein Programm ähnlich rsync für ftp, also dass ich nicht immer den kompletten webspace downloaden muss sondern diesen quasi immer dupliziere?
|
|
|
17.04.13, 14:05
|
#6
|
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.794
Bedankt: 1.700
|
Ich meinte schon wget  mget würde vermtl. auch gehen.
Ich verstehe nicht ganz was du mit duplizieren meinst?
Wenn du alle Dateien von deinem Webspace runterlädst hast du doch auf deiner Festplatte ein duplikat des Webspace...
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
17.04.13, 15:25
|
#7
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
jup, das funktioniert auch mit dem wget Befehl.
Ich habe nun ein Backup gemacht, nun kommen morgen z.b. noch 100 Dateien hinzu, wenn ich dann nochmal wget mache, werden nur die 100 Dateien runtergeladen.
Jetzt werden übermorgen die 100 Dateien nochmal gelöscht, wenn ich dann wieder wget mache, bleiben mir diese jedoch lokal erhalten.
ähnlich diesem Befehl hier:
Code:
rsync --delete -avze "ssh -p 22 -i /home/backup_key" --rsync-path='sudo /usr/bin/rsync' [email protected]:/home2 /backup > /dev/null
|
|
|
17.04.13, 15:47
|
#8
|
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.794
Bedankt: 1.700
|
Schau dir mal die Manpage von wget an. Und zwar den Abschnitt mit der Option -nc. Ich glaube das ist aber nicht das was du willst. Ich wüsste auch nicht wie das mit wget funktioniert.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
17.04.13, 18:42
|
#9
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
wget -nc ist es nur zum teil.
Zitat:
|
If a file is downloaded more than once in the same directory, [...] it will be preserved.
|
also werden die vorhandenen Dateien übersprungen/beiberhalten, falls diese gleich sin.
Fehlt nur noch die Funktion, welche die "alten" Dateien lokal löscht falls diese nicht mehr auf dem Webserver vorhanden sind.
Ich muss nicht wget benutzen, wenn jemand ein anderes Programm kennt, nehme ich dieses auch gerne.
|
|
|
17.04.13, 19:14
|
#10
|
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.794
Bedankt: 1.700
|
Du könntest den FTP auch lokal mounten und dann lokal mit rsync arbeiten.
Alternative wäre vllt lftp mit dem Befehl mirror.
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
18.04.13, 01:09
|
#11
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
ich habs nun so gemacht, trotzdem Danke für den Link thyriel
Code:
#!/bin/bash
####################################
### Variablen
Domain=domain.de
Ordner=html
Benutzer=benutzer
Passwort=passwort
MountDir=/home2/webspacebackup/FTPMountDir
RsyncDir=/home2/webspacebackup/rsync-$Domain
#-----------------
Datum=`date +"%d.%m.%Y"`
Uhrzeit=`date +"%H.%M"`
Datei=Backup_"$Domain"_"$Datum"_"$Uhrzeit".tar.gz
####################################
### S*****
# Mountet das FTP Laufwerk
curlftpfs $Benutzer:$Passwort@$Domain/$Ordner $MountDir -o allow_other,disable_eprt,tlsv1
# Kopiert die Dateien von $MountDir nach $RsnycDir
rsync --delete -av $MountDir $RsyncDir
# Unmountet das FTP Laufwerk
fusermount -u $MountDir
# Packt den Ordner $RsyncDir
tar -cvzf "$Datei" $RsyncDir/
# Verschiebt das gepackt in einen anderen Ordner
mv "$Datei" "./backups/$Datei"
# Löscht alle Backups, welche älter als 90 Tage sind
find ./backups -atime +90 -print -exec rm {} \; > log.txt
nur noch 2 kleine Fragen,
1. wenn ich das mit ./backups*****.sh > /dev/null aufrufe bekomme ich diese Rückmeldung:
Zitat:
|
tar: Entferne führende „/“ von Elementnamen
|
was kann man dagegen tun bzw. wie unterdrücke ich diese Meldung.
2. Verbesserungsvorschläge
|
|
|
18.04.13, 18:17
|
#12
|
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.794
Bedankt: 1.700
|
Thyriel hat recht. Die Meldung kommt wenn man mit Absoluten Pfaden arbeitet. Du hast $RsyncDir als Variable mit dem Inhalt
/home2/webspacebackup/rsync-$Domain .Mach einfach relative Pfad draus und mach an den Anfang des S*****s ein cd /
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
|
|
|
19.04.13, 01:25
|
#13
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
Zitat:
Zitat von thyriel
[...]Wenn du das unter cron laufen lässt wird es normalerweise nicht funktionieren, crons laufen als nobody und der darf nix mounten[...]
|
auch wenn ich es in den root cron reinschreibe?
also
sudo crontab -e
Code:
30 3 * * * /home2/webspacebackup/backups*****.sh > /dev/null
30 3 1 * * /home2/webspacebackup/backups*****.sh complete > /dev/null
Zitat:
Zitat von spartan-b292
[...]Mach einfach relative Pfad draus und mach an den Anfang des S*****s ein cd /
|
ich habe es nun so gelöst, so bekomme ich keine Meldung mehr (wenn ich cd / an den Anfang schreibe funktioniert es nicht):
|
|
|
19.04.13, 12:03
|
#14
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
Zitat:
Zitat von thyriel
Entweder du lässt es unter nem normalen benutzer laufen
|
also mit "sudo visudo" das hier hinzufügen?
Code:
backupuser ALL= NOPASSWD: /usr/bin/curlftpfs
backupuser ALL= NOPASSWD: /bin/fusermount
und dann noch vorher den kompletten ordner mit s***** dem backupuser zuweisen?
sudo chown -R backupuser /home2/webspacebackup
|
|
|
19.04.13, 19:11
|
#15
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
sry, aber das mit dem /etc/fstab funktioniert nicht
Code:
curlftpfs#BENUTZER:[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]/html /home2/webspacebackup/FTPMountDir fuse noauto,rw,users,uid=1000,tlsv1,allow_other,disable_eprt 0 0
mount /home2/webspacebackup/FTPMountDir
Code:
fuse: failed to open /dev/fuse: Permission denied
und mit sudo davor, was allerdings ja nicht sinn der sache ist, weil ich sonst aber den nobody/backupuser in visudo eintragen muss
Zitat:
|
sudo mount /home2/webspacebackup/FTPMountDir
|
funktioniert es nur halb, also ich bekomme keine Rückmeldung, und der FTPMountDir ist auch leer.
|
|
|
20.04.13, 22:46
|
#16
|
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 275
Bedankt: 54
|
es gibt ne grp mit nem namen fuse, wtf?
ok, hätte ich das vorher gewusst, dann wäre das Problem früher gelöst.
Gestern Abend hat es halbwegs funktioniert, also ich konnte es hier drüber mounten
/etc/fstab
Code:
curlftpfs#BENUTZER:[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]/html /home2/webspacebackup/FTPMountDir fuse noauto,rw,users,uid=1000,tlsv1,allow_other,disable_eprt 0 0
mount /home2/webspacebackup/FTPMountDir
Nun funktioniert es irgendwie nicht mehr.
Ich konnte auch gestern Abend das Laufwerk mit "fusermount -u /home2/webspacebackup/FTPMountDir" nicht mehr unmounten. Leider kann ich die Fehlermeldung nun nicht mehr posten, weil ich diese nicht mehr bekomme.
Wenn ich es nun über den mount Befehl mounte, dann bekomme ich keine Fehlermeldung, allerdings werden mir keine Dateien angezeigt. Beim Demounten bekomme ich dießmal jedoch keine Fehlermeldung.
Ich versuche nun morgen noch das in gang zu bringen, ansonsten mache ich es über visuo, so wie in dem Beitrag Nr. 17
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 Uhr.
().
|