输出到文件

cmd := exec.Command(
    appCfg.MysqlCfg.DumpFilePath,
    "-h",
    appCfg.MysqlCfg.Host,
    "-u",
    appCfg.MysqlCfg.User,
    fmt.Sprintf("-p%s", appCfg.MysqlCfg.Password),
    "-P",
    appCfg.MysqlCfg.Port,
    "-B",
    appCfg.MysqlCfg.Database,
)

stdout, err := os.OpenFile("./backup/databases_backup.sql", os.O_CREATE|os.O_WRONLY, 0600)
if err != nil {
    err = fmt.Errorf("创建./backup/databases_backup.sql文件失败,Err%s", err.Error())
    return
}

defer stdout.Close()
// 重定向标准输出到文件
cmd.Stdout = stdout
// 执行命令
if err = cmd.Start(); err != nil {
    err = fmt.Errorf("准备执行备份数据库失败,Err%s", err.Error())
    return
}
if err = cmd.Wait(); err != nil {
    err = fmt.Errorf("执行mysqldump备份数据库失败,Err%s", err.Error())
    return
}

标准输出

cmd := exec.Command("zip", "-r", "./backup/backup_project.zip", appCfg.ToZipDir)
// // 不需要cmd.Run()
_, err = cmd.Output()
if err != nil {
    err = fmt.Errorf("执行 zip -r ./backup/backup_project.zip 命令失败,Err%s", err.Error())
    return
}
return
最后修改:2023 年 12 月 30 日
如果觉得我的文章对你有用,请随意赞赏