在unix远程服务器中执行参数文件

时间:2015-09-17 11:20:22

标签: linux unix ssh

我正在尝试使用ssh远程运行脚本,并且需要使用来自远程服务器的一些参数。保留远程服务器位置temp / test / test.prm文件中的所有参数。收到错误说" invoke.sh:第20行:。 /temp/test/test.prm:没有这样的文件或目录"

请参阅下面的示例脚本。在脚本方面有非常基本的知识,所以请指导我

#!/bin/sh
Param1=$1
Param2=$2

ssh usr@Server1

          . ${Param1}/Client/scripts/Sample1.prm

 cd  $prmHome/$prmSetPath

 ls | sed '/\.log$/d' >  $prmHome/$prmScript/Filelist.txt

 cd $prmHome/$prmScript

 while read LINE

 do

 ExportFilName=$LINE

 ./conversion.sh $prmHome/tmp_export/convert_$Param2.csv  $prmHome/$prmSetPath/'$ExportFilName'

 done < Filelist.txt


rm -rf   $prmHome/$prmScript/Filelist.txt

exit 0



Content of  Sample1.prm
prmHome=/iis/home
prmSetPath=/export/set
PrmScript=/Client/scripts

我在使用ssh连接到远程服务器之后尝试了相同的trough命令行,但它正在运行,但是当我尝试通过脚本(invoke.sh)执行相同操作时,它没有抛出这样的文件或目录错误

2 个答案:

答案 0 :(得分:1)

<强>更新

这个不清楚,不起作用!

ssh usr@Server1
          . ${Param1}/Client/scripts/Sample1.prm

如上所述,你应该使用

ssh usr@Server1 ". ${Param1}/Client/scripts/Sample1.prm" 

首先格式化。

其次,您希望遵循命令做什么?

. ${Param1}/Client/scripts/Sample1.prm

请注意,.与路径之间存在空格,该路径是source的同义词。因此,还要检查Sample1.prm是否具有有效命令。

看起来您没有在远程主机上运行任何ssh shell命令,而只在本地主机上运行。

你是如何运行ssh shell命令的?

示例中的代码段格式不正确。 一般结构应如下所示。

  • ssh user1@server1 date

  • ssh user1@server1 'df -H'

请修改您的调用脚本,或使问题中的格式合适。

答案 1 :(得分:0)

<强>更新

如果要通过ssh在远程服务器上执行代码,可以执行以下操作:

  1. 为要远程运行的代码创建单独的文件upload/server/php/index.php?file=xxxx.png 406 (Not Acceptable) ,并粘贴以下代码:

    my_script.sh
  2. 然后,您可以通过在远程服务器上获取文件来远程调用您的功能:

    #!/bin/bash function my_function() { prmHome=$1 prmSetPath=$2 PrmScript=$3 cd $prmHome/$prmSetPath ls | sed '/\.log$/d' > $prmHome/$prmScript/Filelist.txt cd $prmHome/$prmScript while read LINE do ExportFilName=$LINE ./conversion.sh $prmHome/tmp_export/convert_$Param2.csv $prmHome/$prmSetPath/'$ExportFilName' done < Filelist.txt rm -rf $prmHome/$prmScript/Filelist.txt exit 0 }

  3. 那就是:)

    此代码不起作用:

    ssh usr@Server1 '. my_script.sh; my_function "/iis/home" "/export/set" "/Client/scripts"'

    改变它:

    ssh usr@Server1
    
              . ${Param1}/Client/scripts/Sample1.prm