automatisches Backup beim vServer (S4Y)?

Stephan222

Registered User
Hallo,

wäre das Möglich, immer nachts ein automatisches Backup der Datenbanken machen zu lassen?
Das alte Backup soll mit den neuen überschrieben werden.
Wenn das beides Möglich wäre, wie müsste ich da vorgehen?

Vielleicht gibt es ja schon ein Thread dazu, welches ich nicht gefunden habe!?
S4Y will das wohl einrichten, nur wollen die dafür Geld haben.
Dann versuche ich das doch lieber selber.
 
Wohin soll denn gebackupt werden?
Grundsätzlich wäre das kein Problem. Mit dem Programm mysqldump (gehört afair zu MySQL) kannst du die Datenbank Dumps erstellen. Verbunden mit einem Shell-, Perl- oder PHP-Script (ich benutz dafür PHP, weil das nicht die einzige Aufgabe des Scripts ist und ich Bash-/Perl nicht wirklich kann. Grundsätzlich wären wohl Perl oder ein direktes Shellscript besser geeignet) ließe sich sowas dann als Cronjob eintragen und du hast ständig ein aktuelles Backup.
 
Hallo

Mit mysqldumper kannst einen cron einrichten, der wann du willst ein backup erstellt. da kann man sogar (wie ich glaube gesehen zu haben) sich die backups per email zuschicken lassen.

Würd mir das teil mal installieren und anschauen - scheint interessant zu sein...

[edit] :D da war jemand wohl ein paar sekunden schneller :D [/edit]
 
hi,

erst einmal Danke für die super schnellen Antworten.

Leider habe ich, was Serverkonfiguration ect. angeht, sehr sehr wenig Ahnung von.
Ich muss mich damit mal etwas mehr beschäftigen, doch leider fehlt mir im Moment die Zeit.

Was ist mysqldumper/cron und wie muss ich das wo einrichten?
Das Backup soll auf meinen FTP-Server, am liebsten unter /html/backup/db geschrieben werden.
Ich denke, wenn ich mir das Backup per Mail schicken lassen würde, wäre das zu heftig (Dateigrösse). :)
 
Server4you empfiehlt im Rootserver-Kundeninterface unter "FTP-Backup" folgendes:
Um Ihre Daten automatisiert zu sichern, können Sie ein Backupscript nutzen, welches Sie unter http://linux.ott-support.de/ finden.
Beachten Sie bitte, das wir für dieses Script keinen Support anbieten.

Hab ich am laufen, funktioniert 1A und sichert nicht nur SQL sondern auch alles andere was man möchte.

Gruß

Tscherni
 
Last edited by a moderator:
hey, das wird's sein. :)
Gehe ich richtig in der Annahme, dass die s4fbackup.rpm ins Wurzelverzeichnis muss, um die auszuführen, oder ist das Wuscht?

Dann noch eine Frage, muss ich nach der Installation den Server neu starten lassen?
 
hey, das wird's sein. :)
Gehe ich richtig in der Annahme, dass die s4fbackup.rpm ins Wurzelverzeichnis muss, um die auszuführen, oder ist das Wuscht?

Kann ich lieder ned sagen, da ich die .tar.gz genommen hab und es von Hand installiert hab. Soweit ich weiss musst Du die Datei nur irgendwo hinlegen (/root bietet sich an) und dann mit rpm -i s4fbackup.rpm installieren.

Dann noch eine Frage, muss ich nach der Installation den Server neu starten lassen?

Neustarten ist was für Windows :) Es ist bei dem Script kein Neustart notwendig. Wenn Du das Script regelmässig automatisch ausführen lassen willst, musst Du nur sichergehen, dass es als Crontab (crontab -l) eingetragen ist.
 
"rpm -i s4fbackup.rpm" hat bei mir nicht funktioniert, obwohl ich die Rechte auf 755 gesetzt habe.
Na ja egal, jetzt habe ich auch die s4fbackup.tar.gz genommen und ins root gepackt und installiert.
Es wird automatisch dahin installiert, wo die Dateien hingehören.
Jetzt stehe ich da und weiss nicht, wie ich die s4fbackup.conf konfigurieren muss. :(
Kann mir bitte jemand noch einmal dabei helfen?
 
hmm, kann mir niemand sagen, was genau in die einzelnen Zeilen in der s4fbackup.conf stehen muss?
Ich bin dafür zu blöd und meine Englischkenntnisse sind nicht so pralle. :(
 
Hat jemand das Skript schon auf Sicherheit geprüft?
Möchte nicht, wenn ich es installiere ein Sicherheitsloch aufmachen.....
Ich weiss- klingt paranoid - aber besser paranois als gehackt:D
 
Ich habe mir selbst nen Script geschrieben.
Macht nen Backup der Mysql Datenbanken, der HTML Verzeichnisse und der Mails und schiebt diese auf Wunsch noch auf nen FTP.

Code:
#!/bin/bash

# config
web_dir="/var/www/"
mail_dir="/var/spool/mail"
backup_group="my_backup"
mysql_opt="--opt --allow-keywords"
mysql_pass="blubber"
sql_backup="yes"
mail_backup="yes"
ftp_upload="yes"
ftp_user="user"
ftp_pass="blubber"
ftp_ip="192.168.0.2"
ftp_dir="/backup"

test -d /backup || /bin/mkdir /backup
test -d /backup/excludes || /bin/mkdir /backup/excludes

if [ ! -n "`cat /etc/group | grep ${backup_group}`" ]; then
groupadd ${backup_group}
fi

# system
/bin/tar cfz /backup/etc.tar.gz /etc
/etc/init.d/mysql stop
/bin/tar cfz /backup/mysql.tar.gz /var/lib/mysql/confixx /var/lib/mysql/mysql
/etc/init.d/mysql start
/bin/tar cfz /backup/system.tar.gz /backup/etc.tar.gz /backup/mysql.tar.gz
/bin/rm /backup/etc.tar.gz /backup/mysql.tar.gz
if [ "${ftp_upload}" = yes ]; then
    /usr/bin/ncftpput -V -u ${ftp_user} -p ${ftp_pass} ${ftp_ip} ${ftp_dir} /backup/system.tar.gz
fi

# users
for nr in `ls ${web_dir} | grep web\[0-9\] | sed 's/web//'`
do
        test -d /backup/web${nr} || /bin/mkdir /backup/web${nr}
        test -e /backup/excludes/exclude_${nr}.list || /bin/touch /backup/excludes/exclude_${nr}.list
        /bin/tar -X /backup/excludes/exclude_${nr}.list -C ${web_dir}/web${nr}/html -c -z -f /backup/web${nr}/web${nr}_html.tar.gz .
        if [ "${sql_backup}" = yes ]; then
            for db in `echo show databases | mysql -u root -p${mysql_pass} | grep usr_web${nr}_ | sed 's/usr_web[0-9]\{1,3\}_//'`
            do
                /usr/bin/mysqldump ${mysql_opt} -uroot -p${mysql_pass} -hlocalhost usr_web${nr}_${db} > /backup/web${nr}/web${nr}_db${db}.sql
            done
            if [ "`ls /backup/web${nr} | grep web${nr}_db | wc -w`" -gt 0 ]; then
                ls /backup/web${nr} | grep web${nr}_db | xargs tar -C /backup/web${nr} -c -z -f /backup/web${nr}/web${nr}_sql.tar.gz
                /bin/rm /backup/web${nr}/web${nr}_db*.sql
            fi
        fi
        if [ "${mail_backup}" = yes ] && [ "`ls ${mail_dir} | grep web${nr}p | wc -w`" -gt 0 ]; then
            ls /var/spool/mail | grep web${nr}p | xargs tar -C /var/spool/mail -c -z -f /backup/web${nr}/web${nr}_mail.tar.gz
        fi
        if [ "`ls /backup/web${nr} | grep web\[0-9\] | wc -w`" -gt 1 ]; then
            /bin/tar -C /backup/web${nr} -c -z -f /backup/web${nr}.tar.gz .
        else
            /bin/mv /backup/web${nr}/web${nr}_html.tar.gz /backup/web${nr}.tar.gz
        fi
        /bin/rm -r /backup/web${nr}
        if [ "`groups web${nr} | grep ${backup_group} | sed 's/web[0-9]\{1,3\}.:.ftponly.//'`" = ${backup_group} ]; then
            /bin/cp /backup/web${nr}.tar.gz ${web_dir}/web${nr}/files/web${nr}.tar.gz
            /bin/chown web${nr}:ftponly ${web_dir}/web${nr}/files/web${nr}.tar.gz
            if [ "${ftp_upload}" = yes ]; then
                /usr/bin/ncftpput -V -u ${ftp_user} -p ${ftp_pass} ${ftp_ip} ${ftp_dir} /backup/web${nr}.tar.gz
            fi
        fi
done
 
Back
Top