golang 通过ssh 获取linux系统指定目录文件复制到本地
可以使用Go语言中的os/exec库和scp命令来通过SSH获取Linux系统指定目录的文件并复制到本地。
首先,你需要在Go代码中执行SSH命令来获取文件列表。可以使用exec.Command函数来执行SSH命令。以下是一个示例代码:
package main
import (
"log"
"os"
"os/exec"
)
func main() {
// SSH连接信息
sshUser := "username"
sshHost := "hostname"
sshPort := "22"
sshKey := "/path/to/private/key"
// 远程目录路径
remoteDir := "/path/to/remote/dir"
// 本地目录路径
localDir := "/path/to/local/dir"
// SSH命令
cmd := exec.Command("scp", "-i", sshKey, "-P", sshPort, "-r", sshUser+"@"+sshHost+":"+remoteDir, localDir)
// 执行命令并检查错误
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
log.Println("文件复制完成")
}
在上面的代码中,你需要修改sshUser、sshHost、sshPort、sshKey、remoteDir和localDir变量的值以适应你的实际环境。
这段代码使用scp命令通过SSH连接复制远程目录到本地目录。-i参数指定私钥文件,-P参数指定SSH端口,-r参数表示复制目录。
运行上面的代码,它会通过SSH连接到远程服务器并复制指定目录的文件到本地目录。复制完成后,你可以在本地目录中找到复制的文件
原文地址: http://www.cveoy.top/t/topic/i0zV 著作权归作者所有。请勿转载和采集!