Bash SSH-herdoc在另一台服务器上运行Perl脚本可以';我找不到正确的道路
我在server_B上有一个Perl程序,它使用Perl DBI和5.010,在server_B终端上运行良好。我从一个shell脚本运行它,该脚本首先准备一些参数,然后将它们传递给Perl程序,一切正常 我需要在服务器_a上运行一个shell脚本,该脚本将在服务器_B上执行该脚本。这是因为Perl程序创建了几个文件,我想将这些文件SFTP回服务器_a。这是我在服务器_a上运行的脚本:Bash SSH-herdoc在另一台服务器上运行Perl脚本可以';我找不到正确的道路,bash,perl,shell,ssh,ksh,Bash,Perl,Shell,Ssh,Ksh,我在server_B上有一个Perl程序,它使用Perl DBI和5.010,在server_B终端上运行良好。我从一个shell脚本运行它,该脚本首先准备一些参数,然后将它们传递给Perl程序,一切正常 我需要在服务器_a上运行一个shell脚本,该脚本将在服务器_B上执行该脚本。这是因为Perl程序创建了几个文件,我想将这些文件SFTP回服务器_a。这是我在服务器_a上运行的脚本: ssh server_B <<- EOF perl/update.sh EOF 同样,5
ssh server_B <<- EOF
perl/update.sh
EOF
同样,5.10在server_B上运行良好,但在server_A上的Perl版本是5.8.8
- 阅读man ssh寻找与环境变量相关的线索,没有发现任何我理解的东西
- 试着用-t跑
- 试着用-t-t跑
- 使用ssh远程登录并手动运行它-这确实有效
- 在更新脚本中获取了我的.bash_配置文件
- 尝试在ssh时将路径重新分配为远程服务器的路径
- 已尝试使用不同的分隔符来分隔
- 我找到了一个完美的解决方案。我无法让它与~/.bashrc、~/.bash\u profile或~/.ssh/rc一起工作,但仍然不确定为什么它即使在源代码中也没有提取我的环境变量
因为它在我手动ssh-in然后逐个运行命令时工作,所以我使用这些参数在强制交互登录中运行ssh
有关更多信息,请参见这些: 希望这对将来的人有用。谢谢你的帮助,赛戈ssh server_B bash --login -i "~/perl/update.sh"
Can't locate DBI.pm in @INC (@INC contains.. [my Perl PATH from server_A]) at perlfile.pl line 4
ssh server_B bash --login -i "~/perl/update.sh"