首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任务调度器与windows2003中的ssh连接

任务调度器与windows2003中的ssh连接
EN

Stack Overflow用户
提问于 2011-08-23 17:32:17
回答 1查看 321关注 0票数 0

环境与任务:我已经在machine1(2003)的user1和machine2的user2 (HP-UX)机器之间配置了ssh无密码身份验证(通过交换公钥),因为我在perl脚本中使用ssh连接在machine2上执行ssh命令。

问题:当我从machine1手动执行脚本时,它不会询问machine2的user2的任何密码,如果我通过windows2003的任务调度执行同样的操作,它会询问machine2的user2的密码。有人能帮我弄清楚原因吗?

提前谢谢你,基肖尔。

EN

回答 1

Stack Overflow用户

发布于 2011-12-02 22:19:45

这是一场噩梦。

我最终发现您需要设置HOMEDRIVE和HOMEPATH环境变量。在运行交互式和任务调度程序时,使用命令'set‘打印出环境变量,并比较输出,这是任务调度程序中仅有的两个没有出现的环境变量,谢天谢地它们起作用了。在设置这些之后,任务调度器最终可以看到已知的主机,

如果你想使用scp将文件复制到windows机器上,你可能会在通过任务调度程序运行时遇到另一个令人愉快的问题:由于某种原因,scp不能复制到任何旧文件夹,它必须是登录用户的主文件夹。好吧,也许它没有那么严格,但老实说,当我完成了6个小时的胡言乱语时,我不想费心去找出答案。无论如何,解决方法是首先将文件scp到登录用户的主文件夹,然后将它们移动到最终目标位置。

下面是我的批处理文件的结果(从最终目标目录内部运行):

代码语言:javascript
复制
set HOMEDRIVE=C:
set HOMEPATH=\Documents and Settings\loggedinuser

echo Compressing data files on server...
ssh user@host "cd /foo/bar ; gzip -fc foobar > foobar.gz"

echo Copying files from server...
scp user@host:/foo/bar/foobar.gz "%HOMEPATH%"

move "%HOMEPATH%\foobar.gz" .

我希望有一天这能帮助一些可怜的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7158911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档