我们目前有一个流程,用户使用Cisco VPN客户端建立到远程服务器的安全隧道。然后,他们将远程桌面转换为远程网络上的机器。在远程计算机上,他们启动SQL Server 2008 Enterprise manager,运行一个生成CSV文件的查询。然后,该文件被手动传输回其本地计算机。
这个过程只需要每月进行一次,就可以从我们的远程机器中提取这个CSV(报告)。
传输是IPSec/UDP。
我很难通过脚本找到任何帮助。这可能吗?如果不是通过PHP,也许是通过perl或任何服务器端脚本?
谢谢。
Perl能够做到这一点。
试着把这个问题分解为两部分:
1) 生成CSV文件。2) 将此CSV文件移出。
第1部分:
您可以使用Perl连接到SQL服务器,运行查询并生成CSV文件。
使用ODBC和DBI连接:如何使用Perl连接SQL Server?
使用文本::CSV生成有效的CSV文件。
第2部分:
2.1:您可以设置一个简单的(https)Web服务器,只提供这个CSV文件。如果需要,您可以在发送之前对该文件进行加密。
您可以使用Putty设置SSH Tunel来进一步保护传输:http://www.planetb.ca/2010/08/how-to-create-an-ssh-tunnel-with-putty-and-stay-anonymous-on-a-network/
有了这个,就很容易:http://metacpan.org/pod/HTTP::Server::Brick
use HTTP::Daemon::SSL;
my $server = HTTP::Server::Brick->new(
port => 8889,
daemon_class => 'HTTP::Daemon::SSL',
directory_indexing => 1,
daemon_args => [
SSL_key_file => 'my_ssl_key.pem',
SSL_cert_file => 'my_ssl_cert.pem',
],
);
$server->mount( '/csvfile' => {
path => 'C:/path/to/your/csv/file',
wildcard => 1,
});
# start accepting requests (won't return unless/until process
# receives a HUP signal)
$server->start;
2.2:您可以在机器上设置ssh服务器,并使用scp(Putty中的.exe)来复制文件。
https://serverfault.com/questions/8411/what-is-a-good-ssh-server-to-use-on-windows