Если вы добавите --verbose 2> output.txt
к вашей команде, она будет описывать происходящее, строка за строкой, как показано ниже, например.Очевидно, вам нужно просмотреть содержимое output.txt
после команды.
-- Connecting to localhost...
-- Retrieving table structure for table users...
-- Sending SELECT query...
-- Retrieving rows...
-- Disconnecting from localhost...
Ваша полная команда будет тогда:
"mysqldump --opt -h $dbhost -u $dbuser -p $dbpass --verbose 2> output.txt". "$dbname | gzip > $backup_file"
Также может быть некорректно проверять $sys, как вы сделали в качестве индикатора успеха, вместо этого используйте эту форму ..
system ( string $command, &$return_var);
, и тогда $ return будет содержать состояние возврата выполненной команды (mysqldump), что лучше для проверки фактического успехарезервная копия.
Ваш код может выглядеть следующим образом:
int $return_var;
system ($command, &$return_var);
if ($return_var ==0){
echo "success";
}
else{
echo "failed";
}