【问题标题】:List md5sum of files on a remote server using ssh and return the output in text file?使用 ssh 列出远程服务器上文件的 md5sum 并在文本文件中返回输出?
【发布时间】:2017-06-03 17:28:08
【问题描述】:

我有 Machine-A 和 Machine-B,它们都是 Ubuntu 服务器。现在我想使用 ssh 列出 Machine-B 上的所有文件。我想以文本文件的形式返回结果,以便分析结果并使用 scp 复制所需的文件。

ssh my_user_name@192.168.150.4 'bash -s tree /f'
ssh my_user_name@192.168.150.4 'bash -s ls -LR'

现在这个命令没有给出我想要的结果。任何人都可以帮忙,这样我就可以使用 ssh 列出远程计算机上的所有文件,并以文本文件的形式返回输出。

我使用ls -LR 列出文件并使用SSH 远程执行脚本。 从答案中我解决了我的问题,我正在更新问题以满足一个小要求。

我通过这个命令ssh my_user_name@192.168.150.4 ls /something/sub > output.txt得到了文件列表

但我想要所有文件的 md5sum 而不是名称,因为 2 个文件名可能会匹配。所以有没有办法列出所有文件并返回所有文件的所有 md5sum 并返回到 output.txt 文件。

【问题讨论】:

  • @Inian no i 解决了列表,md5 没有解决
  • 它告诉不存在这样的文件或目录
  • @Inian 我用你的更新修改了我的脚本
  • 是的,我做到了,它确实存在。
  • @Inian 还是一样的错误。

标签: bash ssh scp ls cp


【解决方案1】:

您需要做的就是指定命令,而不使用“bash”。您的默认 shell 将在远程设备上用于执行命令。

ssh remote-host command

要将 ls 命令的输出保存到文件中,您可以简单地使用通常的 shell 重定向:

ssh remote-host command > output.txt

万一您最终在一行中有多个文件名,您可能需要在ls 命令行上使用-1。另外,请记住,如果文件名包含空格,则需要在 shell 脚本中使用引号来支持这些...

要连续运行多个命令,虽然输出不会那么容易管理,但您可以使用引号和用分号分隔的命令(例如):

ssh remote-host "command1; command2; command3" > output.txt

关于md5sum,您可以使用find 命令和md5sum 对目录中的所有文件运行它:

ssh remote-host "find . -type f -exec md5sum {} \;" > output.txt

将路径(示例中为.)更改为适合您的路径。

【讨论】:

  • 我可以让它像cd something/sub ls 这样的多个命令。移动到另一个目录然后列出文件?
  • @SaiKiran:只需将路径作为命令的一部分传递,即ls -LR /something/sub > ~/fileList,就像我的回答一样
  • @Inian 这里我的文件夹中有几个文件,所以我可以传递一些返回这些文件的 md5 总和的东西md5sum ls /somethin/sub
  • @SaiKiran:现在这完全是一个新要求。您可以根据您的所有要求更新问题吗?让人们一口气回答他们?
【解决方案2】:

将文件列表复制到机器 B 中的有效路径,然后使用 scp 将其复制回机器 A

ssh username@machineB 'ls -LR /path/to/dir > ~/fileList'

要返回目录中所有文件的md5sum,请使用find as

ssh username@machineB 'find /path/to/dir -type f -exec md5sum {} \; > ~/md5sum_fileList'

现在将文件复制回机器 A,使用glob 模式复制具有fileList 模式的文件

scp username@machineB:~/*fileList* username@machineA:~/

【讨论】:

  • 如果您将> md5sum_fileList 放在引号内,则在远程主机上创建文件。据我了解,OP 希望在本地主机中获得结果。
  • @AlexisWilke:完全同意你的看法,OP 想在远程机器上创建文件并使用scp 将其复制回本地
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多