【问题标题】:Task scheduler vs ssh connection in windows2003Windows 2003 中的任务调度程序与 ssh 连接
【发布时间】:2011-11-01 19:14:14
【问题描述】:

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

问题:当我从 machine1 手动执行脚本时,它不会询问 machine2 的 user2 的任何密码,如果我通过 windows2003 的任务 shedular 执行相同的操作,它会询问 machine2 的 user2 的密码。 任何人都可以帮助我了解原因..

提前致谢, 基肖尔。

【问题讨论】:

  • 我对windows了解不多,对任务调度器更不了解,但是听起来好像是环境的问题;您确定这两种情况下的凭据和环境都相同吗?
  • 嗨,pavel,是的,手动和预定的凭据和环境是相同的。

标签: perl windows-2003-webserver


【解决方案1】:

这是一场噩梦。

我终于想通了,你需要设置 HOMEDRIVE 和 HOMEPATH 环境变量。使用命令“set”在运行交互式和任务调度程序时打印出环境变量并比较输出,这些是任务调度程序中唯一没有的两个,感谢上帝他们工作。设置完这些,任务调度器终于可以看到已知主机了,

如果你想使用 scp 将文件复制到 windows 机器上,你可能会在通过任务调度程序运行时遇到另一个令人愉快的问题:由于某种原因 scp 无法复制到任何旧文件夹,它必须是登录的主文件夹在用户中。好吧,也许它没有那么严格,但老实说,当我完成 6 个小时的这些废话时,我已经懒得去发现了。无论如何,解决方法是首先将文件 scp 到登录用户的主文件夹,然后将它们移动到最终目的地。

这是我的批处理文件的最终结果(从最终目标目录中运行):

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" .

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

【讨论】:

    猜你喜欢
    • 2013-03-07
    • 1970-01-01
    • 2012-04-21
    • 2019-03-24
    • 2014-01-23
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多