perl中的mysqldump - 返回值始终为0

时间:2014-04-07 10:29:11

标签: mysql perl ubuntu backup mysqldump

当我在perl中执行以下操作时,我总是得到错误代码“0”。即使例如mysql数据库不存在,或者密码错误等等。

@args = ("mysqldump -u root -ppassword database1 | gzip -c > /usr/local/bin/database.gzip");
system(@args) == 0
        or die "Command failed: @args \nError Code: $? \n";

我的目标是捕获mysqldump命令的任何错误,这样我就可以确保备份是否成功。

1 个答案:

答案 0 :(得分:5)

我想这是给出这个问题的管道。您可能会获得退出状态

"gzip -c > /usr/local/bin/database.gzip" 

您可能必须将dump和gzip部分拆分为两个。

使用

`mysqldump -u root -ppassword database1 > ./dump.txt`;
if ($? == 0){
    `gzip -9 ./dump.txt`;
    }
else{
die "errored";
}