Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
16.04.13, 21:11
|
#1
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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, 21:21
|
#2
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
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, 21:35
|
#3
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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, 22:03
|
#4
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
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"
|
|
|
16.04.13, 23:02
|
#5
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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, 13:05
|
#6
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
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, 14:25
|
#7
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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, 14:47
|
#8
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
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, 17:42
|
#9
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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, 18:14
|
#10
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
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"
|
|
|
17.04.13, 19:03
|
#11
|
Banned by himself
Registriert seit: May 2009
Beiträge: 2.938
Bedankt: 2.107
|
S***** findest du zb hier:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Den ftp mounten damit das funktioniert
__________________
Lebt wohl war mir eine Freude über viele Jahre mit euch, zumindest mit jenen die mich nicht des trollens bezichtigten...
|
|
|
18.04.13, 00:09
|
#12
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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, 12:41
|
#13
|
Banned by himself
Registriert seit: May 2009
Beiträge: 2.938
Bedankt: 2.107
|
könnte mich grad auch verschätzen, aber die Meldung könnte vom $RsyncDir/ in der tar zeile kommen.
Kleine anmerkung: Wenn du das unter cron laufen lässt wird es normalerweise nicht funktionieren, crons laufen als nobody und der darf nix mounten. Müsstest halt ausprobieren und ggf die Benutzerrechte anpassen oder das S***** mit nem eigenen user laufen lassen der das darf
__________________
Lebt wohl war mir eine Freude über viele Jahre mit euch, zumindest mit jenen die mich nicht des trollens bezichtigten...
|
|
|
18.04.13, 17:17
|
#14
|
Echter Freak
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.856
Bedankt: 1.701
|
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, 00:25
|
#15
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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, 01:27
|
#16
|
Banned by himself
Registriert seit: May 2009
Beiträge: 2.938
Bedankt: 2.107
|
Also davon S*****s als root laufen zu lassen kann man echt nur abraten.
Insbesondere wenn normale User schreibrechte auf das S***** haben und das als cron läuft.
Damit kann sich dann jeder selbst zum root machen.
Entweder du lässt es unter nem normalen benutzer laufen und gibst dem die rechte den ftp zu mounten, oder du gibst dem nobody user mountrechte
__________________
Lebt wohl war mir eine Freude über viele Jahre mit euch, zumindest mit jenen die mich nicht des trollens bezichtigten...
|
|
|
19.04.13, 11:03
|
#17
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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, 14:55
|
#18
|
Banned by himself
Registriert seit: May 2009
Beiträge: 2.938
Bedankt: 2.107
|
Ich würd das gar nicht über visudo machen sondern den ftp mount in der /etc/fstab vorbereiten (also nicht einhängen:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ] (funktioniert analog auch in nicht ubuntu systemen)
Und dazu halt "noauto,users" als optionen damit es nicht eingehängt wird beim systemstart und jeder benutzer das Ding mounten darf
Benutzerrechte auf /home2/webspacebackup würd ich so setzen:
chown -R backupuser:users /home/webspacebackup
chmod -R 0770 /home2/webspacebackup
gehört dem backupuser und jeder benutzer hat schreibrechte darauf, sonst darf niemand was.
Willst du allerdings das Dateien die dein S***** anlegt auch von jedem benutzer gelöscht werden dürfen müsstest du das s***** noch mit umask befehlen anpassen (oder am ende den chmod von oben nochmal machen). Standard Wäre Besitzer (backupuser) rw, gruppe r, rest r (wobei dem rest das r nix bringt wenn es auf den ordner kein r hat)
__________________
Lebt wohl war mir eine Freude über viele Jahre mit euch, zumindest mit jenen die mich nicht des trollens bezichtigten...
|
|
|
19.04.13, 18:11
|
#19
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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.
|
|
|
19.04.13, 19:51
|
#20
|
Banned by himself
Registriert seit: May 2009
Beiträge: 2.938
Bedankt: 2.107
|
Sicher das du die DOMAIN.de als ftp eingetragen hast ?
Fehler pemission denied: lt.google muss der user in der gruppe fuse sein
__________________
Lebt wohl war mir eine Freude über viele Jahre mit euch, zumindest mit jenen die mich nicht des trollens bezichtigten...
|
|
|
20.04.13, 21:46
|
#21
|
Ausfänger
Registriert seit: Jun 2010
Beiträge: 280
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 23:54 Uhr.
().
|