gpt4 book ai didi

php - MySqldump 成功或失败测试

转载 作者:行者123 更新时间:2023-11-29 04:53:44 26 4
gpt4 key购买 nike

我正在使用 mysqldump 来备份我的 mysql 数据库,并将其置于 cron 作业之下。我想测试它的成功或失败,并希望它在 cron 作业电子邮件中回显成功或失败消息但失败了?请帮帮我...

要传递什么命令?我这样做但失败了:

在我的 php 备份脚本中,我包括:

   $testvar = '
if [ "$?" -eq 0 ]
then
echo "Success"
else
echo "Mysqldump encountered a problem look in database.err for information"
fi
';

exec($testvar);

我的服务器说:文件意外结束

脚本:

 $creatBackup = 'mysqldump -uabc -p password  mydb > myfile '.       
'if [ "$?" -eq 0 ]; then
eho "Success"

else echo "Mysqldump encountered a problem"
fi
';



$BackupMessage = exec($creatBackup);

echo $BackupMessage;

最佳答案

您正在尝试使用 exec 运行 bash 脚本内容。那是不正确的; exec 用于运行命令或脚本文件,而不是 shell 脚本。

我看到了两种解决方法:

1) 将脚本内容保存到 bash 文件并使用 exec 运行它:

/var/www/scripts/script.sh:

#!/bin/bash
mysqldump -uabc -p password mydb > myfile
if [ "$?" -eq 0 ]; then
echo "Success"
else
echo "Mysqldump encountered a problem"
fi

PHP:

$creatBackup = '/var/www/scripts/script.sh';
$BackupMessage = exec($creatBackup);
echo $BackupMessage;

2) 另一种方法是不仅捕获脚本输出,还捕获标准错误(检查第三个 exec parameter ):

$creatBackup = 'mysqldump -uabc -p password  mydb > myfile';
exec($creatBackup, $output, $returnVar);
var_dump($output, $returnVar);

关于php - MySqldump 成功或失败测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8744380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com