我需要有关如何通过ssh文件传输到本地机器从服务器自动下载日志的帮助。目前我通过登录ssh工具下载日志并选择日志路径并选择所有日志然后拖放它们本地驱动器,但这需要时间在VPN上。 有没有办法创建批处理文件或运行任何Java程序只是在一行命令或单个执行下自动下载所有日志。我试图检查这个谷歌但用scp和ftp命令我无法继续进行。请建议
答案 0 :(得分:2)
如果您使用的是Windows,我建议使用WinSCP easy scripting。
只需编写您的连接位置,导航位置,收集内容以及在计算机中复制文件的位置。您甚至可以复制到另一台服务器。所有在一个脚本。链接中的示例很容易理解。
您还可以运行一个简单的脚本来完成一行工作:
winscp.exe /console /command "option batch on" "open rahul@logsserver.com" "get 02012011logs.txt d:\" "exit"
答案 1 :(得分:1)
最好的选择是编写一个cron job,按照您想要的固定间隔使用scp复制日志。
但是,如果你做想用Java做。转到 JSch 。
旁注:上面的选项都没有让你摆脱VPN。如果需要,您必须在VPN上才能传输文件。因此,在您以任何您喜欢的方式传输文件时,请保持与VPN的连接。
修改强>
您应该使用您正在使用的平台更新您的问题。我之前的回答是假设你是基于Unix的。
如果您使用的是Windows,则可以编写一个使用PSCP将文件传输到本地计算机的批处理脚本。您可以在Windows中将其设置为计划任务以定期运行。
答案 2 :(得分:1)
您为客户使用的操作系统是什么?如果您的客户端计算机是* nix变体,您可以编写一个简单的bash脚本,当与SSH密钥配对时,它将允许您使用一个命令下载程序。
对于Windows变体,您可以使用批处理脚本,计划任务和pscp w / pagent在内存中保存私钥。
当然,这些都不涉及启动或拆除vpn。
答案 3 :(得分:1)
编写一个使用pscp下载所需文件的批处理文件。设置公钥验证以跳过密码输入。启用ssh压缩以加快下载速度。通过cron自动化它。从理论上讲,应该只能将vpn用于批处理文件,实际上很难以这种方式设置。