gpt4 book ai didi

linux - 确定 SCP 传输是否失败的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:08 25 4
gpt4 key购买 nike

在脚本的末尾,如果成功,它会创建一个文件(多个文件)并将其存储到目标目录中;然后我通过 scp 将文件(文件)从服务器检索回我的工作站。脚本的用户能够确定他们正在检索的一个或多个文件的输出位置。

确定文件(文件)是否已成功传输的最佳方法是什么?我的主要问题是,如果用户将文件检索到/home/$USERNAME/Desktop 之类的位置并且桌面上有文件。确定桌面上是否有通过脚本检索的新文件的最佳方法是什么?

最后,我真的只是想确定传输是否失败。当脚本结束时,我想通知用户文件已成功传输到输出目录。

这是我的想法......

if (ssh user@server "[ find /myFiles -maxdepth 0 -empty -exec return 0 \; ]")
then
scp user@server:/myFiles localhost:/DirToSave
fi

但这不起作用,但是,我认为使用这种方法可以简化我的其他问题,因为它只是让我知道我要查找的文件无论如何都不存在。有更好的方法吗?

最佳答案

试试 rsync。

rsync -arvz -e ssh user@server:/myFiles localhost:/DirToSave 

这将在输出中告诉您文件是否已更改。您可以廉价地多次运行它

如果失败,将返回错误代码。可以测试:如果 [ $? -ne 0 ]如果在编写代码时文件发生更改或无法设置权限(例如时间戳),这可能很敏感。

关于linux - 确定 SCP 传输是否失败的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16608681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com