题
权限被拒绝(公键盘互动)得到了这个错误的话,我想cvs结账perl。
是什么问题和如何解决这个吗?
代码:
system ( "CSVROOT:--- CVSRSH:--- cvs co a ");
# i have proper value in cvs root and cvs rsh .
其单独运行和使用ssh的关键
解决方案
步骤来诊断的错误:
- 您使用的是SSH的钥匙吗?
- 那钥匙有一个密码?
- 它的工作运行时通过手吗?
- 是脚本运行为的相同的用户运行时通过手吗?
- 是的脚本中运行在相同的环境中运行时通过手吗?(例如
cron
作业做的不运行在相同的环境)
如果你认为所有的答案都是肯定的,那么很可能是最后一次答复是真的没有。如果剧本是从运行一个计划程序喜欢 cron
它最有可能不会运行的相同的环境中运行时。我通常解决,这是用一个脚本之间的调度和Perl脚本:
#!/bin/bash
source /home/USERNAME/.profile
#set any other environment variables it needs like
export CSVROOT=:pserver:USERNAME@HOST:/path/to/repo
export CVSRSH=ssh
/path/to/perl/script/script.pl
其他提示
后续调查后,查斯的问题:
不,命令正常运行
/bin/sh
或者一些其他外壳?测试,执行/bin/sh
命令开始Bourne壳和尝试的命令的一方面。我不熟悉"CVSROOT:---"符号-那是意味着设定CVSROOT环境变量?在伯恩的外壳的这是通常使用"=",从来没有看到":"使用。没有命令的,当运行方面,预计某些输入从你?我从来没有见过
cvs co
这样做,但我不会用它与ssh。尝试增加一个重定向到结束的命令,看起来是什么在文件之后,运行:
system ( "CSVROOT:--- CVSRSH:--- cvs co a > /tmp/log_cmd 2>&1");
不隶属于 StackOverflow