当我在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命令的任何错误,这样我就可以确保备份是否成功。
答案 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";
}