【问题标题】:How to validate file transfers(cp,scp command) in unix shell scripts by checksum or md5 command?如何通过校验和或 md5 命令验证 unix shell 脚本中的文件传输(cp、scp 命令)?
【发布时间】:2021-08-01 11:52:21
【问题描述】:

我有一个 unix shell 脚本,它创建文件并将文件从一个路径传输到另一个路径(来自同一台服务器或另一台服务器) 然后将文件从相同或不同的服务器传输到此文件夹。

我无法确定可以通过脚本验证文件传输 md5 或校验和的方法。通常我会获取源文件夹和目标文件夹的校验和并手动匹配它们。

请指教

【问题讨论】:

  • md5sumsha1sumshasum 等实用程序都有一个检查选项,如果从文件读取的校验和与实际文件不匹配,它们会返回一个状态.使用这些应该相当简单。
  • @Hasturkun,这适用于 Linux utils,例如 Solaris digest 没有这个选项。

标签: unix checksum md5sum


【解决方案1】:

在您的脚本中,您可以像这样插入一行:

sha1sum <list of files> >files.sha1

使用 sha1 和生成文件。然后将所有文件(包括带有哈希的文件)传输到目标位置,例如:

scp /path/* user@host:localion

然后执行(例如通过ssh)检查目标文件的sha1 哈希:

ssh user@host "cd location; sha1sum -c files.sha1"

这只是示例,您应该根据自己的环境对其进行调整

在 Solaris 中你可以使用命令:

digest -a sha1 location/* >/directory/hash1
scp /path/* user@host:localion
ssh user@host "cd location; digest -a sha1 *" >/directory/hash2
diff /directory/hash1 /directory/hash2

(最后一个命令将比较本地和远程站点的哈希值)

【讨论】:

  • 感谢您的回复。然而。我使用 sunOS(Sparc-Enterprise) 并且命令 md5sum,sha1sum 不起作用。请指教。我可以看到我可以使用 cksum , digest 命令来获取校验和,但不确定如何通过脚本比较校验和是否准确。
猜你喜欢
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多