2012-04-23 5 views
0

간단한 백업 스크립트를 실행하려고하는데 오류 메시지 만 표시됩니다. 내가 뭘 잘못하고 있니? 여기에 완전한 코드가 있습니다. 나는 리눅스에 있고 데이터베이스에 대한 모든 권한을 가지고있다.샘플 백업 스크립트

그것은 단지 인쇄는 당신의 도움을

<?php 
$dbhost = "localhost"; // usually localhost 
$dbuser = "myuser"; 
$dbpass = "mypass"; 
$dbname = "mydb"; 
$sendto = "Webmaster <[email protected]>"; 
$sendfrom = "Automated Backup <[email protected]>"; 
$sendsubject = "Daily Mysql Backup"; 
$bodyofemail = "Here is the daily backup."; 


$headers = 'My Shop <[email protected]>' . "\n"; 
$headers .= 'MIME-Version: 1.0' . "\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n"; 

$backupfile = $dbname . date("Y-m-d") . '.sql'; 

if(system("mysqldump -h $dbhost -u $dbuser -p$dbpass $dbname > $backupfile")){ 
    mail('[email protected]','Back Up Service','Back Up successfully completed',$headers); 
     echo'Back up saved successfully.'; 
    }else { 
    echo'There was an issue with your system that prevented the backup from completing'; 
    } 
?> 

감사합니다 '를 완료 백업 방지 시스템에 문제가 있었다'.

+0

인쇄중인 오류 메시지 : 코드에있는 오류 메시지 또는 다른/낮은 수준? –

+0

내 코드에 오류가 출력됩니다 –

+1

공유 서버에있는 경우 프로세스 목록을보고 싶다면 해당 서버의 다른 모든 사용자가 MySQL 암호를 사용할 수 있습니다. – ceejayoz

답변

0

명령에 문제가있을 것입니다 :

mysqldump -h $dbhost -u $dbuser -p$dbpass $dbname > $backupfile 

이 잘 보이지만, 당신은 당신이 얻을 결과를 알기 위해 명령 줄에서 그것을 확인할 수 있도록 그것을 밖으로 인쇄 할 가치가있다.

편집 : 여기에서 사용할 수있는 시스템 문서를 보려면 system이 명령 출력의 마지막 줄을 반환하는 것처럼 보입니다. mysqldump가 성공적으로 실행되었지만 어떤 출력도 생성하지 않으면 if은 false를 반환한다. 어느 쪽을 사용 하시겠습니까?

if(system("mysqldump blah blah") === false){ 

또는 시스템의 return_var 인수를 사용하여 상태 코드를 확인하십시오 (성공시 0이어야 함).

+0

하, 백업하는 것 같지만 이메일이 발송되지 않으므로 공유 서버에서만 수감 된 액세스 권한을 제공해야하므로 문제가 될 수 있습니다. –

+0

전자 메일 코드를 별도의 스크립트로 가져 와서 스스로 실행하여 문제를 디버깅하십시오. –

+0

@HelenNeely 답변을 업데이트했습니다. 문제는 아마도 if 문일 것입니다. – Jim

관련 문제