我在与SFTP服务器交互时出现了一个奇怪的问题。我需要做的是登录,找到满足特定条件的最新文件,并下载它。所有这些来自bash脚本。它被完成的方式,到目前为止是通过简单地运行ls -lt
并考虑输出的第一行:Bash + SFTP shell:对过滤的文件列表进行排序?
echo "ls -lt" > tmp.sftp
sftp -b tmp.sftp [email protected]:/inbox 1>sftp.log 2>&1
FILE=$(cat sftp.log | sed -n 3p | awk '{print $NF}')
echo "get $FILE" > tmp.sftp
sftp -b tmp.sftp [email protected]:/inbox
然而,他们最近开始把其他文件(我不在乎)到同一个文件夹。我试图改变代码做ls -lt blah*
,但由于某种原因,当有一个通配符过滤器,文件列表得到相反的顺序排序...
我觉得我解决这个问题的方式是荒谬的,应该有一个更好的方法。我看起来怎么样?卷曲? wget的?谢谢!
感谢您的建议。不幸的是,'ssh user @ ftps.server.com'挂起,我认为他们有用户的shell设置为'/ bin/false'或其他东西。 – braindancer 2013-03-20 01:54:45