2017-05-01 23 views
0

我需要通过HTML链接下载csv文件(例如www.abc.com/test.csv),但我无法在使用wget的AIX风格的UNIX服务器上执行此操作。在AIX上下载​​CSV - wget的替代方法?

不幸的是wget没有加载到我的服务器,因此使用上述总是失败,“无法加载程序wget”。

有没有其他方法可以尝试?我知道我可以简单地尝试在服务器上安装wget,但作为用户,它不是由我管理的,我也没有权限这样做。

感谢您的帮助!

+0

网站是否需要SS/TLS/HTTPS? – ashawley

+0

它需要HTTPS - 是的 –

+0

那么,你不能使用telnet,然后。 – ashawley

回答

0

如果你有openssl,那么你可以使用它

$ (echo "GET /test.csv HTTP/1.1"; 
    echo "Host: www.abc.com"; 
    echo "User-Agent: $(openssl version)/$(bash --version | head -n 1) "; 
    echo "Connection: close"; 
    echo; echo; 
    sleep 1) | openssl s_client -connect 172.16.254.1:443 

,然后如果你想尝试提取文件一点与SED连接,您可以:

(echo "GET /test.csv HTTP/1.1"; 
    echo "Host: www.abc.com"; 
    echo "User-Agent: $(openssl version)/$(bash --version | head -n 1) "; 
    echo "Connection: close"; 
    echo; echo; 
    sleep 1) | openssl s_client -connect 172.16.254.1:443 \ 
      | sed -ne '/^HTTP\/1.1/,$p' \ 
      | sed -ne '/^\r$/,$p' \ 
      | sed 1,2d > test.csv 

如果\r不起作用,那么你需要在shell中手动输入一个回车符。这通常是^V^M按Ctrl +V然后按Ctrl +中号

我没有AIX服务器上测试这一点,所以在你自己的风险。

如果用户代理行给您带来麻烦,那么就删除它。

+0

我确实有ssl,所以这可能工作。不幸的是,下一个问题是我在一个专用网络上 - 我试图访问的域也是这样,所以看起来像ssl将需要一个IP。 我会看看如果我能收集并让你知道这是否有效:) 谢谢! –

+0

然后在'-connect'中使用IP – ashawley

0

这是一个很难回答,但有一些事情,我发现在这个问题上。

当涉及到使用wget我无法这样做,因为该包不可用。尽管我可以联系我的UNIX管理员并安装使用,这几乎可以解决问题。

但是,我知道这不会是适合每个人的合适解决方案。在玩过curl和openssl之后,我发现你可以像wget一样实现,但是需要更多的工作。

我唯一遇到的问题是我无法连接到实际的主机 - 保持连接被拒绝,但这很可能是由于我的防火墙问题。