我想使用本地Windows XP系统中的ANT脚本在UNIX服务器的/ x / y / z位置执行.sql文件。 .sql文件位于UNIX服务器上。
我在Windows XP系统中使用了以下ant目标:
<target name="execute" >
<sshexec host="hostname"
username="UNIX system username"
keyfile="/export/home/appldev/.ssh/id_dsa"
commandResource="psql -f /u01/appldev/devappl/po/11.5.0/reports/xxbt/1.0.0/sql"/>
</target>
我尝试了以下post keyfile错误:
<target name="execute" >
<sshexec host="server_ip"
username="server_uname"
password="server_pass"
command="touch abc"/>
</target>
得到错误:
Buildfile: C:\Program Files\Java\apache-ant-1.8.1\build.xml
execute:
[sshexec] Connecting to server_IP:22
BUILD FAILED
C:\Program Files\Java\apache-ant-1.8.1\build.xml:49: com.jcraft.jsch.JSchExcepti
on: connection is closed by foreign host
请帮忙。
答案 0 :(得分:0)
使用Ant sql task。
<sql
driver="org.database.jdbcDriver"
url="jdbc:database-url"
userid="sa"
password="pass" >
<transaction src="data1.sql"/>
<transaction src="data2.sql"/>
<transaction src="data3.sql"/>
<transaction>
truncate table some_other_table;
</transaction>
</sql>
编辑:
要从Windows XP框中访问该文件,您有很多选择。您选择哪种方式取决于安全设置,以及您对Ant提示输入密码或将密码存储在文件系统上的文件中的感受。
另一种方法是使用sshexec task来调用UNIX服务器上的数据库客户端。
<sshexec host="unix-host"
username="dbuser"
keyfile="${user.home}/.ssh/id_dsa"
commandResource="psql -f /x/y/z"/>