2014-01-25 68 views
0

我试图自动化我经常做的一些事情。我正在使用PuTTy作为命令行客户端并解决了一些问题。自动化使用腻子

我目前做这个命令:

start C:/%username%/Desktop/Putty.exe -ssh [email protected] 22 -pw password -m command_file. 

服务器的操作包括登录到RSH,然后到SQL提示,退出SQL,然后注销RSH,然后登录到另一个RSH,然后一个不同的SQL提示符。

我用unix命令使用批处理文件的逻辑,但它不工作。

我的命令文件看起来是这样的:

rsh -l username SERVER1 
password 
sqlplus owner/admin 
select *... 
update *... 
commit; 
logout 
logout 

rsh -l username SERVER2 
password 
sqlpus owner/admin 
select*.. 
update*.. 
commit; 
logout 
logout 

exit //close the putty session. 

但这种代码是行不通的。只有最初的UNIX命令被执行,其余的代码被忽略。

有人请提供解决方案来推进这项工作。

回答

0

你的脚本没有任何区分bash命令和sqlplus输入的方法。你可以使用这里的文件:

... 
sqlplus owner/admin << HERE 
select *... 
update *... 
commit; 
HERE 
logout 
... 
+0

试过这个,但没有工作。还有其他建议吗? – UJN

+0

我不知道sqlplus所以我在这里失明。您是否尝试过打开腻子窗口并手动输入个别命令?这将确保您至少没有语法错误 – rojomoke

+0

是的,我每天都会使用这些命令。它只是该文件没有完全读取。它只是进入rsh并停留在那里。 SQL代码根本不被执行。 – UJN

0

似乎你的答案是在你的问题。您将命令文件传递给PuTTY进行处理。你有没有尝试传递一个命令文件到sqlplus?

我个人对语法不熟悉,但听起来像this poster不是。看起来你想要的语法是

sqlplus Username/[email protected] as SYSDBA @c:\mystuff.sql 

虽然你的命令文件将需要在远程服务器上,而非本地计算机一样的PuTTY脚本上。