如何解决通过ssh删除远程文件会停止命令所在的while循环?
我有一个脚本,该脚本列出了超过10分钟前在远程磁盘上修改过的文件,在本地检索它们,然后应该在远程删除它们。 当我不删除文件时,脚本可以工作。 我添加删除文件的行后,循环仅处理一次(仅成功复制了一个文件,并且我收到确认其位于本地磁盘的消息),然后循环停止,没有任何错误消息。 拜托,知道为什么吗?
UNPIVOT
解决方法
默认情况下,ssh
从作为输入文件的stdin读取,ssh
占用文件的其余部分,并且for
循环终止。
为防止这种情况,请将-n
选项传递给ssh命令以使其从/dev/null
而不是stdin
读取。
在ssh手册页中:
-n从/ dev / null重定向标准输入(实际上,防止从标准输入读取)。在后台运行ssh时必须使用此选项。一种 常见的技巧是使用它在远程计算机上运行X11程序。 例如,ssh -n shadows.cs.hut.fi emacs&将在以下位置启动emacs shadows.cs.hut.fi,X11连接将自动 通过加密通道转发。 ssh程序将被放入 的背景。 (如果ssh需要请求一个 密码或密码短语;另请参阅-f选项。)
有关更多信息,请参见此thread。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。