可以使用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("文件复制完成")
}

在上面的代码中,你需要修改sshUsersshHostsshPortsshKeyremoteDirlocalDir变量的值以适应你的实际环境。

这段代码使用scp命令通过SSH连接复制远程目录到本地目录。-i参数指定私钥文件,-P参数指定SSH端口,-r参数表示复制目录。

运行上面的代码,它会通过SSH连接到远程服务器并复制指定目录的文件到本地目录。复制完成后,你可以在本地目录中找到复制的文件


原文地址: http://www.cveoy.top/t/topic/i0zV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录