Backup-Frage

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
 

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.
 

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
 

redi78

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

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.
 

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
 

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
 

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:

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.
 

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.
 

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?
 

Werbung

Top