Crontab unter Plesk 8.3 bei suse 10.2 funktioniert nicht..

dehne

New Member
Hab ein Problem mit dem Crontab von Plesk.
Ich hab 2 Backupscripts geschrieben welches, einmal ein Verzeichnis sichern soll bzw eine Datenbank sichern soll...
Per Hand aufrufen funktionieren die Scirpts, bau ich diese aber per Crontab ein funktionieren sie aufeinmal nicht mehr..
Ich hab nen Root Server von Strato, Betriebssystem ist Suse10.2 mit Plesk 8.3

Einbauen unter Plesk tue ich so..
http://upload.webkost.de/images/datei_1214329888.jpg

die Scripts sind einmal shell..
backup.sh
PHP:
#!/bin/bash
DATUM=`date +%Y-%m-%d_%H:%M`
BACKUPDIR1='/srv/www/vhosts/dacooon-network.com/httpdocs'
BACKUPDIR2='/srv/www/vhosts/dacooon.com/httpdocs'
BACKUPDIR3='/srv/www/vhosts/dacooon.com/subdomains/intern/httpdocs'
BACKUPDIR4='/srv/www/vhosts/dacooon.com/subdomains/board/httpdocs'
 
tar -cf /srv/www/vhosts/static-a1.webkost.de/httpdocs/network/ftpbackup_$DATUM.tar $BACKUPDIR1
cd /srv/www/vhosts/static-a1.webkost.de/httpdocs/network
gzip -f ftpbackup_$DATUM.tar
 
tar -cf /srv/www/vhosts/static-a1.webkost.de/httpdocs/radio/ftpbackup_$DATUM.tar $BACKUPDIR2
cd /srv/www/vhosts/static-a1.webkost.de/httpdocs/radio
gzip -f ftpbackup_$DATUM.tar
 
tar -cf /srv/www/vhosts/static-a1.webkost.de/httpdocs/intern/ftpbackup_$DATUM.tar $BACKUPDIR3
cd /srv/www/vhosts/static-a1.webkost.de/httpdocs/intern
gzip -f ftpbackup_$DATUM.tar
 
tar -cf /srv/www/vhosts/static-a1.webkost.de/httpdocs/board/ftpbackup_$DATUM.tar $BACKUPDIR4
cd /srv/www/vhosts/static-a1.webkost.de/httpdocs/board
gzip -f ftpbackup_$DATUM.tar
die Datei befindet sich unter private hat die Rechte 755..

die backup.mysql_network.php
PHP:
<?php 
error_reporting(E_ALL); 
ini_set('display_errors', TRUE);
 
// ### EINSTELLUNGEN ############# 
// ############################### 
 
$user = 'asdfasdf'; // Name 
$pass = 'asdfasdfa'; // Passwort 
$database = 'asdfasdfasdf; // zu sichernde Datenbank 
$linuxpath = '/srv/www/vhosts/static-a1.webkost.de/httpdocs/network'; 
$path = './network/mysql/';// Backup Ordner 
$number_of_files = '10'; // mehr als x Dateien löschen (Autodelete) 
 
// ############################### 
 
// checke Backupordnergrösse 
function dirsize($dir){ 
$dirsize=0; 
$handle=opendir ($dir); 
while (false !== ($file = readdir ($handle))) { 
$dirsize+=filesize($dir.$file); 
} 
closedir($handle); 
return $dirsize; 
} 
 
// Backupverzeichnis erstellen, falls noch nicht existient! 
if (!is_dir($path)) mkdir($path, 0777); 
$dh = opendir($path); 
while (false !== ($filename = readdir($dh))) 
{ 
if ($filename != "." && $filename != "..") $files_unlink[] = $filename; 
} 
 
@rsort($files_unlink); 
 
if (sizeof($files_unlink) >= $number_of_files) 
{ 
for($n=sizeof($files_unlink)-1; $n>=$number_of_files; $n--) 
{ 
unlink($path.$files_unlink[$n]); 
} 
} 
 
// Backup erstellen 
 
$datei = "networkDB_".date('Y.m.d')."_".date("H:i"); // Dateiname aus Datum und Uhrzeit bilden 
$datei .= ".gz"; 
if (file_exists($datei)) unlink($datei); 
 
$path = str_replace(".", "", $path); 
 
system("/usr/bin/mysqldump -u$user -p$pass -h localhost $database | gzip > ".dirname(__FILE__)."$path/$datei", $fp); 
if ($fp==0) $meldung = "Backup erfolgreich! (dacooon Network)"; else $meldung = "Es ist ein Fehler aufgetreten! (dacooon Network)"; 
 
//print_r($_SERVER);
 
if ($meldung == 'OK!') {
@mail("[email protected]","" . $meldung,"R&uuml;ckmeldung: " . $meldung);
echo '$meldung';
} else {
@mail("[email protected]","Backup: " . $meldung," " . $meldung);
echo $meldung;
}
?>
is unter der Domaine, nur ich versteh das nicht wieso der nichts macht..
Ich hoffe ihr könnt mir weiter helfen.
 
Last edited by a moderator:
Hallo,

wenn Du die Scripte von Hand aufrufst geht's?

Bei Cronjobs nie auf den Pfad verlassen sondern vor jede Datei den kompletten Pfad schreiben, also auch vor date, tar und gzip.
 
Hey, jups die funktionieren denne.
Es is ja nur so das is per crontab nicht gehen und ich versteh nicht wieso..
 
na das ding is ja ich kann es bei cronjob.de machen, da geht es, aber das möchte ich nicht.
Aber nein das geht au nicht.
 
Bei dem Backupscript funktioniert es zwar und es kommt ne email mit der Fehlermeldung:

tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names

und die mysql funktioniert glaub ich garnicht, es sei denn ich bau nen Fehler im Script ein dann bekomm ich ne email mit keine Rechten udn so weiter.

Ich hab für die Datenbank mal nen Shellscript genommen aber der erstellt, zwar die Backup.sql aber er schreibt nichts rein, wiederholt man den vorgang, erstellt er die andere dateiendung und das Archiv ist zerstört aber es ist nichts drinne..
PHP:
#!/bin/sh
DIR="/ihr/serverpfad/zum/backup/"
DATUM=`date '+%d-%m-%Y'`
mysqldump -u BENUTZER -p PASSWORT -h localhost --opt DATENBANKNAME > $DIR/backup.sql
gzip -9 --best $DIR/backup.sql
mv $DIR/backup.sql $DIR/backup-${DATUM}.sql.gz
find $DIR/backup.sql -name \*.sql.gz -mtime +5 -exec rm {} \;
 
Last edited by a moderator:
Back
Top