![]() |
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 |
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. |
Zitat:
|
Dann würde ich mit wget über ftp arbeiten.
|
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: Code:
gftp benutzer:[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] 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/* 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? |
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... |
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 |
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.
|
wget -nc ist es nur zum teil.
Zitat:
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. |
Du könntest den FTP auch lokal mounten und dann lokal mit rsync arbeiten.
Alternative wäre vllt lftp mit dem Befehl mirror. |
S***** findest du zb hier:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] Den ftp mounten damit das funktioniert ;) |
ich habs nun so gemacht, trotzdem Danke für den Link thyriel
Code:
#!/bin/bash 1. wenn ich das mit ./backups*****.sh > /dev/null aufrufe bekomme ich diese Rückmeldung: Zitat:
2. Verbesserungsvorschläge |
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 |
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 / |
Zitat:
also sudo crontab -e Code:
30 3 * * * /home2/webspacebackup/backups*****.sh > /dev/null Zitat:
|
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 |
Zitat:
Code:
backupuser ALL= NOPASSWD: /usr/bin/curlftpfs sudo chown -R backupuser /home2/webspacebackup |
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 und freigeschaltete Mitglieder sichtbar. Jetzt 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) |
sry, aber das mit dem /etc/fstab funktioniert nicht
Code:
curlftpfs#BENUTZER:[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]/html /home2/webspacebackup/FTPMountDir fuse noauto,rw,users,uid=1000,tlsv1,allow_other,disable_eprt 0 0 Code:
fuse: failed to open /dev/fuse: Permission denied Zitat:
|
Sicher das du die DOMAIN.de als ftp eingetragen hast ?
Fehler pemission denied: lt.google muss der user in der gruppe fuse sein |
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 und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]/html /home2/webspacebackup/FTPMountDir fuse noauto,rw,users,uid=1000,tlsv1,allow_other,disable_eprt 0 0 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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.