在Golang中执行rsync命令并输入密码可以使用os/exec
包来完成。以下是一个示例代码片段,演示如何实现:
package main
import (
"fmt"
"os/exec"
)
func main() {
password := "your_password"
source := "path/to/source"
destination := "user@host:/path/to/destination"
cmd := exec.Command("rsync", "-avz", "--progress", "--rsh=sshpass -p "+password, source, destination)
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(output))
}
在上面的代码中,将your_password
替换为实际的密码,path/to/source
替换为源文件或目录的路径,以及user@host:/path/to/destination
替换为目标主机和目标路径。
这里使用了exec.Command()
函数创建一个执行rsync命令的命令对象,并将所需参数传递给该命令。然后,通过调用cmd.CombinedOutput()
方法来执行命令并获取输出结果。
需要注意的是,这个示例中使用了sshpass工具来提供密码给rsync命令。您需要确保已经安装了sshpass,并正确设置了环境变量。
请注意,直接在代码中硬编码密码是不安全的做法。建议考虑其他更安全的方式来处理密码,例如使用SSH密钥对进行身份验证。
希望这个示例能对您有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问