백업 로그 파일을 만드는 방법은 어떻습니까? 이 같은
$command = "mysqldump -h " . DB_SERVER . " -u ". DB_USER ." -p". DB_PASS ." --add-drop-table --quick --set-gtid-purged=OFF " . DB_NAME . " > ". $filename;
$result = passthru($command);
$file = fopen('backup-file-name', 'a'); // can specify full path
fwrite($file, date('M-d-Y h:i:s') . " -- backup finished \n");
fclose($file);
또는 뭔가 :
가
// open file and say it's in progress
$file = fopen('backup-file-name', 'w'); // can specify full path
fwrite($file, date('M-d-Y h:i:s') . " -- backup in progress \n");
fclose($file);
$command = "mysqldump -h " . DB_SERVER . " -u ". DB_USER ." -p". DB_PASS ." --add-drop-table --quick --set-gtid-purged=OFF " . DB_NAME . " > ". $filename;
$result = passthru($command);
// open file and say that backup is done
$file = fopen('backup-file-name', 'w'); // can specify full path
fwrite($file, date('M-d-Y h:i:s') . " -- backup finished \n");
fclose($file);
편집 : passthru()
이 완료된 후 passthru()
에만 트리거 후에 실행
PHP 코드.
또 다른 유용한 정보는 passthru()
이 명령의 상태를 반환하는 두 번째 인수 return_var
을 취할 수 있다는 것입니다.
커플 노트 :
예 : 당신의 대답에서
$command_status = 'N/A';
$result = passthru($command, $command_status);
// then check if $command_status value === 0
// maybe log the status of the command as well
, 나는 다음 덤프가 완료 될 때까지'경유()'PHP 스크립트로 다시 제어를 반환하지 않음을 수집합니다. 옳은? 나는 그것이 쓰레기통이라고 생각했다. 그렇다면 예제가 정상적으로 작동합니다. 나는 cron 작업의 일부로 이것을 사용합니다. 방해하지 않을 것입니다 (예 : 시간 초과 등). – mseifert
cron을 사용하고 있기 때문에 문제가있을 것이라고 생각하지 않습니다. 그러나 로그 파일을 사용하여 cron 작업에 대한 정보를 저장하는 것은 디버깅과 문제가 발생할 경우 어떤 일이 발생했는지 파악하는 데있어 필수적입니다. (참고 : 심지어 완료 후에도 이메일을 보낼 수 있습니다 : http://php.net/manual/en/function.mail.php). –
대답은 내가 상상했던 것보다 간단했다. 이미 백업 작업의 시작을 기록했습니다. 결말을 기록하는 것은 간단한 문제입니다. 보다 완벽한 답변을 보내 주셔서 감사합니다. – mseifert