$outputFile\n"; } else { echo " mysqldump -h $db_host -u $db_user -p $db_name > $outputFile\n"; } echo "\n"; echo "비밀번호를 입력하라는 프롬프트가 나타나면 MySQL root 비밀번호를 입력하세요.\n"; echo "덤프 파일이 생성되면 다음 명령으로 다운로드하세요:\n"; echo " SFTP: Download -> $outputFile\n"; echo " 또는: scp pro@114.203.209.83:$outputFile .\n"; exit(0); } // mysqldump 명령 구성 // localhost인 경우 -h 옵션 생략 (소켓 연결 사용) if ($db_host === 'localhost' || $db_host === '127.0.0.1') { // 비밀번호를 환경 변수로 전달 (더 안전) $command = sprintf( 'MYSQL_PWD=%s mysqldump -u %s %s > %s 2>&1', escapeshellarg($db_pass), escapeshellarg($db_user), escapeshellarg($db_name), escapeshellarg($outputFile) ); $commandDisplay = "mysqldump -u $db_user [비밀번호] $db_name > $outputFile"; } else { $command = sprintf( 'MYSQL_PWD=%s mysqldump -h %s -u %s %s > %s 2>&1', escapeshellarg($db_pass), escapeshellarg($db_host), escapeshellarg($db_user), escapeshellarg($db_name), escapeshellarg($outputFile) ); $commandDisplay = "mysqldump -h $db_host -u $db_user [비밀번호] $db_name > $outputFile"; } echo "명령 실행 중...\n"; echo "\n"; exec($command, $output, $returnCode); if ($returnCode === 0 && file_exists($outputFile)) { $fileSize = filesize($outputFile); echo "✅ 덤프 생성 완료!\n"; echo "파일: $outputFile\n"; echo "크기: " . number_format($fileSize / 1024 / 1024, 2) . " MB\n"; echo "\n"; echo "다음 명령으로 다운로드하세요:\n"; echo " SFTP: Download -> $outputFile\n"; echo " 또는: scp pro@114.203.209.83:$outputFile .\n"; } else { echo "❌ 덤프 생성 실패\n"; if (!empty($output)) { echo "오류 메시지:\n"; echo implode("\n", $output) . "\n"; } echo "\n"; echo "수동으로 시도해보세요:\n"; if ($db_host === 'localhost' || $db_host === '127.0.0.1') { echo " mysqldump -u $db_user -p $db_name > $outputFile\n"; } else { echo " mysqldump -h $db_host -u $db_user -p $db_name > $outputFile\n"; } }