Backup-Frage

Dieses Thema im Forum "Allgemein" wurde erstellt von redi78, 2. Dez. 2007.

  1. redi78

    redi78 Member

    Hallo Leute,

    ich habe ein kleines Problem mit der Backupfunktion in ISPConfig.

    Es laufen bei mir 4 Websites. Generell funktioniert die Backupfunktion mit Download bei keiner. Problem ist das sich die generierte *.zip Datei nicht öffnen lässt. Diese ist fehlerhaft und ca. nur 300KB groß.

    Backup per FTP funktioniert bei 3 Webs wunderbar. Nur beim 4. Web (ca. 800 MB groß) kommt nach einigerzeit ein Popup welches abfragt ob ich die backup.php ausführen möchte oder nicht. Bei ja wird wieder nur eine ca. 300KB grosse *.zip Datei erstellt die sich nicht öffnen lässt.

    Hat jemand eine Idee?

    Danke und lg,
    redi78
     
  2. Till

    Till Administrator

    Wenn Du Webseiten mit 800 MB hast, dann solltest Du die Sicherung als tar.gz Cronjob durchführen, die ISPConfig Backup Funktion ist nur für kleine Kunden-Websites zur direkten Bedienung durch die Kunden gedacht, da bei zu großen Websites der Webbrowser einen Timeout erhält.
     
  3. redi78

    redi78 Member

    Hallo Leute,

    habe nun folgendes script erstellt und auf den server geladen.

    Code:
    #!/bin/bash # Titel: Backup-Script 
    # Description: Sicherung von /var/log anlegen und automatisch auf einen festgelegten FTP-Server hochladen oder in ein Verzeichnis verschieben. 
    # Version 1.0
    
    
    # Allgemeine Angaben
    
    # MYSQL_USER=[***]
    # MYSQL_PASS=[***]
    # FTP_SERVER=[***]
    # FTP_USER=[***]
    # FTP_PASS=[***]
    
    # Festlegung des Datums - Format: 20050710
    DATE=`date +"%Y%m%d"`
    
    # Das Script
    
    # Backup-Verzeichnis anlegen
    cd ../ 
    mkdir /backup
    cd /backup
    mkdir log
    
    # Verzeichnisse die ins Backup integriert werden sollen 
    # rsync -az --delete --delete-after /srv /backup
    # rsync -az --delete --delete-after /etc /backup
    cd ../
    rsync -az --delete --delete-after /var/log /backup/log
    
    # cd /backup/mysql
    
    # Sicherung der Datenbanken
    # mysqldump -AaCceQ --user=*** --password=*** -r mysql.dbs
    # mysqldump -AaCceQ -u $MYSQL_USER -p$MYSQL_PASS -r mysql.dbs
    
    cd /backup/log
    
    # Alle Dateien mit tar.bz2 komprimieren
    # tar cjfp files-$DATE.tar.bz2 srv
    # tar cjfp etc-$DATE.tar.bz2 etc
    tar cjfp logs-$DATE.tar.bz2 log
    # tar cjfp mysql-$DATE.tar.bz2 mysql
    
    # Alle komprimierten Dateien per FTP auf den Backup-Server laden
    # ftp ftp://$FTP_USER:$FTP_PASS@$FTP_SERVER *$DATE* 21
    
    # Alle komprimierten Dateien auf den Backup-Server verschieben
    mv *$DATE* /media/backup/BackupNeu/log/
    
    # Anschliessend alle auf den Server angelegten Dateien wieder löschen
    rm -r -f /backup
    

    Wenn ich es manuell ausführe, also mit dem Befehl: sh ./backup_log.sh dann läuft es so wie es soll.

    Nun möchte ich das ganze als cronjob automatisieren.
    Befehl:
    crontab -e
    10 11 * * * root /root/scripts/backup_log.sh

    Nur leider wird der Job nicht ausgeführt. Kann mir jemand weiterhelfen?

    Danke und lg,
    redi78
     
  4. Till

    Till Administrator

    Du musst alle Programme in dem Script mit absoluten Pfaden aufrufen.
     
  5. redi78

    redi78 Member

    mhh wie meinst du das absolute Pfade. Die Pfadangaben müssten so doch stimmten und zeigen genau auf die Scripte.
     
    Zuletzt bearbeitet: 21. Sep. 2008
  6. Till

    Till Administrator

    Statt:

    rsync -az --delete --delete-after /var/log /backup/log

    z.B.

    /usr/bin/rsync -az --delete --delete-after /var/log /backup/log

    und auch z.B. für mkdir etc. Du findest die Korrekten Pfade mit dem Programm which:

    z.B.

    which rsync

    Das alles ist notwendig, da ein Cronjob die Pfade nicht kennt bzw. die path Variable nicht gesetzt ist, wie dies bei einem auf der Shell eingeloggten User der Fall ist.
     
  7. redi78

    redi78 Member

    Hallo Till,

    habe jetzt das Skript entsprechend abgeändert. Nur leider passiert nach wie vor nichts:

    Code:
    #!/bin/bash # Titel: Backup-Script 
    # Description: Sicherung von /var/log anlegen und automatisch auf einen festgelegten FTP-Server hochladen oder in ein Verzeichnis verschieben. 
    # Version 1.0
    
    
    # Allgemeine Angaben
    
    # MYSQL_USER=[]
    # MYSQL_PASS=[]
    # FTP_SERVER=[]
    # FTP_USER=[]
    # FTP_PASS=[]
    
    # Festlegung des Datums - Format: 20050710
    DATE=`date +"%Y%m%d"`
    
    # Das Script
    
    # Backup-Verzeichnis anlegen
    cd ../ 
    /bin/mkdir /backup
    cd /backup
    /bin/mkdir log
    
    # Verzeichnisse die ins Backup integriert werden sollen 
    # rsync -az --delete --delete-after /srv /backup
    # rsync -az --delete --delete-after /etc /backup
    cd ../
    /usr/bin/rsync -az --delete --delete-after /var/log /backup/log
    
    # cd /backup/mysql
    
    # Sicherung der Datenbanken
    # mysqldump -AaCceQ --user=--password=-r mysql.dbs
    # mysqldump -AaCceQ -u $MYSQL_USER -p$MYSQL_PASS -r mysql.dbs
    
    cd /backup/log
    
    # Alle Dateien mit tar.bz2 komprimieren
    # tar cjfp files-$DATE.tar.bz2 srv
    # tar cjfp etc-$DATE.tar.bz2 etc
    /bin/tar cjfp logs-$DATE.tar.bz2 log
    # tar cjfp mysql-$DATE.tar.bz2 mysql
    
    # Alle komprimierten Dateien per FTP auf den Backup-Server laden
    # ftp ftp://$FTP_USER:$FTP_PASS@$FTP_SERVER *$DATE* 21
    
    # Alle komprimierten Dateien auf den Backup-Server verschieben
    /bin/mv *$DATE* /media/backup/BackupNeu/log/
    
    # Anschliessend alle auf den Server angelegten Dateien wieder löschen
    /bin/rm -r -f /backup
    cron befehl:
    10 12 * * * root /root/scripts/backup_log.sh


    Bitte um Hilfe.

    Danke und lg,
    redi78
     
  8. Till

    Till Administrator

    Wie hast Du denn den Cronjab abgelegt? Rufe bitte mal als root user auf:

    crontab -e

    und füge dann diese Zeile ein:

    10 12 * * * /root/scripts/backup_log.sh &> /dev/null
     
  9. redi78

    redi78 Member

    mhhh meine crontab sieht jetzt so aus:

    Code:
    30 00 * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/logs.php &> /dev/null
    59 23 * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/ftp_logs.php &> /dev/null
    59 23 * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/mail_logs.php &> /dev/null
    59 23 * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/cleanup.php &> /dev/null
    0 4 * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/webalizer.php &> /dev/null
    0,30 * * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/check_services.php &> /dev/null
    15 3,15 * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/quota_msg.php &> /dev/null
    40 00 * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/traffic.php &> /dev/null
    05 02 * * * /root/ispconfig/php/php /root/ispconfig/scripts/shell/backup.php &> /dev/null
    45 04 * * * root /usr/bin/updatedb &> /dev/null
    22 12 * * * /root/scripts/backup_log.sh &> /dev/null
    
    keine reaktion:

    Code:
    top - 12:22:38 up 2 days, 14:15,  1 user,  load average: 0.73, 0.60, 0.56
    Tasks: 117 total,   1 running, 114 sleeping,   2 stopped,   0 zombie
    Cpu(s):  1.3% us,  0.0% sy,  0.0% ni, 98.7% id,  0.0% wa,  0.0% hi,  0.0% si
    Mem:    515940k total,   398456k used,   117484k free,    13736k buffers
    Swap:  1220900k total,    18960k used,  1201940k free,   237608k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                       
    25969 www-data  16   0 28788   9m 3516 S  1.7  2.0   0:03.93 apache2                                       
        1 root      16   0  1564  528  460 S  0.0  0.1   0:01.61 init                                          
        2 root      34  19     0    0    0 S  0.0  0.0   0:01.50 ksoftirqd/0                                   
        3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                    
        4 root      10  -5     0    0    0 S  0.0  0.0   0:00.22 events/0                                      
        5 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khelper                                       
        6 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kthread                                       
        8 root      10  -5     0    0    0 S  0.0  0.0   0:00.21 kblockd/0                                     
        9 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid                                        
      108 root      15   0     0    0    0 S  0.0  0.0   0:00.13 pdflush                                       
      109 root      15   0     0    0    0 S  0.0  0.0   0:00.00 pdflush                                       
      111 root      17  -5     0    0    0 S  0.0  0.0   0:00.00 aio/0                                         
      110 root      15   0     0    0    0 S  0.0  0.0   0:06.85 kswapd0                                       
      698 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kseriod                                       
     1789 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khubd                                         
     1880 root      15   0     0    0    0 S  0.0  0.0   0:12.70 kjournald                                     
     2076 root      12  -4  2108  544  368 S  0.0  0.1   0:00.45 udevd                                         
     2882 root      20   0     0    0    0 S  0.0  0.0   0:00.00 shpchpd_event                                 
     2919 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kgameportd                                    
     3008 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0                                     
     3009 root      10  -5     0    0    0 S  0.0  0.0   0:00.12 usb-storage                                   
     3011 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_1  

    also der cron funkt trotzdem nicht. wenn ich da script manuell aufrufe funktionierts: sh ./backup_log.sh
     
    Zuletzt bearbeitet: 21. Sep. 2008
  10. redi78

    redi78 Member

    woran kann es liegen? hat jemand eine idee? ich weiss nicht mehr weiter.
     
    Zuletzt bearbeitet: 21. Sep. 2008
  11. redi78

    redi78 Member

    hat schon jemand eine idee?
     
  12. Till

    Till Administrator

    Und wenn Du die aktuelle Version auf der Shell startest, läuft sie problemlos?
     
  13. redi78

    redi78 Member

    hi till,

    ja wie gesagt. wenn ich sie manuell auf der shell mittels sh ./backup_log.sh starte dann funktionierts.

    allerdings ist mir aufgefallen, dass ich das script mit sh ... aufrufen muss. nur mit ./backup_log.sh funktionierts nicht.
     
  14. Till

    Till Administrator

    Ok, dann hast Du vermutlich vergessen es ausführbar zu machen:

    chmod +x backup_log.sh
     
  15. redi78

    redi78 Member

    mhhh ok ja das kann sein. mal sehen obs dann funktioniert. ich geb diesbezüglich noch bescheid.
     
  16. redi78

    redi78 Member

    achja was mir noch eingefallen ist, es gibt ja eine crontab die in /etc/crontab liegt. das ist die system weite.
    und dann gibt es ja noch die userbezogene: aufruf mittels crontab -e.

    welche sollte ich denn verwenden. ich mein es funktioniert bei beiden nicht.
     
  17. Till

    Till Administrator

    Ich würde die userbezogene nehmen, also einfach crontab -a als root. Dort musst Du dann auch nicht den User angeben.

    Kannst Du denn Dein Script jetzt auf der Shell ohne vorangestelltes sh ausführen?
     
  18. redi78

    redi78 Member

    mhh dann bekomme ich folgendes:

     
  19. Till

    Till Administrator

    Ändere die Zeile:

    #!/bin/bash # Titel: Backup-Script


    in:

    #!/bin/bash
     
  20. redi78

    redi78 Member

    mhh jetzt erhalte ich folgende meldung:

     

Diese Seite empfehlen