如何判断 mysqldump 何时完成
How to tell when mysqldump is complete
每天晚上我都会使用以下命令备份我的数据库。我每晚都 ftp 在异地备份文件,但我不知道何时可以安全地开始 ftp 会话,因为我不知道转储需要多长时间。
php
是否有任何方法可以判断 mysqldump
何时完成 - 例如测试 $filename
是否仍在使用或查询 mysql 中的转储进步?
提前致谢。
$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);
创建备份日志文件如何?
$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()
之后执行的PHP代码仅在passthru()
完成后触发。
另一个有用的信息是 passthru()
可以使用第二个参数 return_var
来 returns 命令的状态。
夫妇注意事项:
0表示Unix命令返回成功
second argument对于passthru()
returns的值是引用,所以请传递一个声明的变量给函数。
示例:
$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
每天晚上我都会使用以下命令备份我的数据库。我每晚都 ftp 在异地备份文件,但我不知道何时可以安全地开始 ftp 会话,因为我不知道转储需要多长时间。
php
是否有任何方法可以判断 mysqldump
何时完成 - 例如测试 $filename
是否仍在使用或查询 mysql 中的转储进步?
提前致谢。
$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);
创建备份日志文件如何?
$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()
之后执行的PHP代码仅在passthru()
完成后触发。
另一个有用的信息是 passthru()
可以使用第二个参数 return_var
来 returns 命令的状态。
夫妇注意事项:
0表示Unix命令返回成功
second argument对于
passthru()
returns的值是引用,所以请传递一个声明的变量给函数。
示例:
$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