golang exec 标准错误输出有 error 但是 err 是 nil

golang 的 exec 模块,有可能标准错误输出会有类似“ERROR: Incorrect date and time argument: 2021-11-16 13:52:10 +0000 UTC” 但是 err 确是 nil

package main
import (
	"fmt"
 	"os/exec"
)

func main(){
    binlogCmd := "mysqlbinlog  --stop-datetime='2021-11-16 13:52:10 +0000 UTC' /tmp/dbs/mybackup/my3306timepoint/mysql-bin.000084 | mysql -h127.0.0.1 -uroot -p123456 -P3306"
	cmd := exec.Command("bash", "-c", binlogCmd)
	out, err := cmd.CombinedOutput()
	fmt.Printf("apply binlog For [%s], out = %s", cmd.String(), string(out))
	fmt.Println("-----111-----")
	fmt.Println(err)
	fmt.Println("-----222-----")
}
[root@dbs-recover-dest dbs]# go build exec.go
[root@dbs-recover-dest dbs]# ./exec 
apply binlog For [/usr/bin/bash -c mysqlbinlog  --stop-datetime='2021-11-16 13:52:10 +0000 UTC' /tmp/dbs/mybackup/my3306timepoint/mysql-bin.000084 | mysql -h127.0.0.1 -uroot -pstart01all -P3306], 
out = mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR: Incorrect date and time argument: 2021-11-16 13:52:10 +0000 UTC
-----111-----
<nil>
-----222-----
[root@dbs-recover-dest dbs]# 

package main
import (
	"fmt"
 	"os/exec"
)

func main(){
    binlogCmd = "ls /tmp/haahah"
	cmd := exec.Command("bash", "-c", binlogCmd)
	out, err := cmd.CombinedOutput()
	fmt.Printf("apply binlog For [%s], out = %s", cmd.String(), string(out))
	fmt.Println("-----111-----")
	fmt.Println(err)
	fmt.Println("-----222-----")
}
	
[root@dbs-recover-dest dbs]# go build exec.go
[root@dbs-recover-dest dbs]# ./exec 
apply binlog For [/usr/bin/bash -c ls /tmp/haahah], out = ls: cannot access /tmp/haahah: No such file or directory
-----111-----
exit status 2
-----222-----
[root@dbs-recover-dest dbs]# 
[root@dbs-recover-dest dbs]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值