1

スクリプトを実行していinnobackupexますが、スクリプトから出力を取得する方法がわかりません。スクリプトが成功したか失敗したかを確認するには、最後の行が必要です..

$output = shell_exec('innobackupex --user=root --password=xxx --databases="test" --stream=tar ./ | gzip -c -1 > /var/bak/2013-08-09-1431_mysql.tar.gz')

スクリプトは正常に機能し、バックアップ zip が作成されますが、$output空です

アップデート

現在、コマンドは gzip にパイプされていませんが、まだ出力はありません

$syntax = 'innobackupex --user='.$mysql_user.' --password='.$mysql_pass.' --databases="'.$mysql_db.'" /var/bak';
$output = shell_exec($syntax);
4

1 に答える 1

2

コメントで@RudyVisserの回答を踏むつもりはありませんが、別の解決策があります:

$syntax = 'innobackupex --user="'.$mysql_user.'" --password="'.$mysql_pass.'"
  --databases="'.$mysql_db.'" --stream=tar ./ | gzip -c -1 
  > /var/bak/2013-08-09-1431_mysql.tar.gz ; echo $?')

$exit_status = shell_exec($syntax);

コマンド内のエコーは、innobackupex の終了ステータスを報告する必要があります。これは、バックアップが成功した場合は 0 であり、エラーが発生した場合はゼロ以外です。

http://www.percona.com/doc/percona-xtrabackup/2.1/xtrabackup_bin/xtrabackup_exit_codes.html

PS: Percona XtraBackup には、非常に高速であることが知られているqpressアルゴリズム--compressを使用するオプションもあります。おそらくパフォーマンスを向上させるために使用していることに気付いたので、これについて言及します。gzip -1

于 2013-08-10T02:25:49.250 に答える