0

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

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

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

以下是我的想法...

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

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

4

1 回答 1

3

试试 rsync。

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

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

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

于 2013-05-17T12:18:27.637 回答