我正在尝试从远程sftp服务器复制所有csv文件,并以循环方式将这些文件粘贴到本地服务器。然后,我想将这些文件创建为.txt文件列表,以便处理这些文件。我为此目的尝试了一些现有的解决方案,但是它们都无法正常工作。我是bash脚本的新手。
谢谢。
答案 0 :(得分:3)
1)您可以创建rsa密钥来链接远程服务器和本地服务器。这样,您无需输入密码:
https://www.tecmint.com/ssh-passwordless-login-using-ssh-keygen-in-5-easy-steps/
https://help.github.com/en/articles/error-agent-admitted-failure-to-sign
How can I define a bash alias as a sequence of multiple commands?
我使用这三个链接成功设置了rsa密钥。我在实验室的Wiki上创建了一个页面,介绍如何逐步执行此操作,如果您遇到问题,可以将说明上载到github。
2)要进行复制,请尝试以下操作:
scp -r username@remote_server:/path_to_directory_containing_files_you_want/*csv local_path_you_want_to_copy_to
ls > name_of_file.txt
-r表示您要递归复制所有指定的文件,这里所有的都是csv文件。您应该已经具有用户名和远程服务器名称。如果您已经将文件复制到本地目录中,则执行.
与放入整个本地路径相同。复制所有文件后执行ls命令,它将创建一个新的txt文件,其中包含该目录中文件的所有名称。假设那里只有新复制的文件,这将是获取复制文件列表的最简单方法。希望这会有所帮助!