Running a Block of Shell Script remotely using SSH

前端 未结 2 378
旧巷少年郎
旧巷少年郎 2021-01-28 16:07

I am try to execute a block of commands on a different server using a shell script

Can anyone please help me on this

while [ $RecordCount -gt 0 ]
do
  ex         


        
相关标签:
2条回答
  • 2021-01-28 16:28

    This will do essentially what you're asking for:

    while [[ $RecordCount -gt 0 ]]
    do
      field1=$( sed -n ${RecordCount}p ${GUID_DLT_EXPR_FILE} | cut -d'|' -f1 )
      field2=$( sed -n ${RecordCount}p ${GUID_DLT_EXPR_FILE} | cut -d'|' -f2 )
      run_dt=$( sed -n ${RecordCount}p ${GUID_DLT_EXPR_FILE} | cut -d'|' -f3 )
    
    
      dir="/sas/ADH/exXd_${field1}"
      id_path="$dir/version_${field2}
      latest="$id_path/latest"
      archives="id_path/archives"
    
      ssh ${REMOTE_SERVER:?} "if [[ -d $id_path ]] &&
          ls -d $latest/* > /dev/null 2>& 1
        then
          mv -f $latest/* $archives
        else
          mkdir -p $latest $archives
        fi"
    
      update_recordcount
    
    done
    
    exit 0
    

    BTW, you will need to provide your own versions of:

    • REMOTE_SERVER (variable)
    • update_recordcount (function) -- make sure it counts down to zero somehow.
    0 讨论(0)
  • 2021-01-28 16:39

    Just stream those commands into ssh stdin, like:

    ssh remoteserver << EOF
    command1
    command2
    command3
    ...
    EOF
    

    << here means here-doc - a multiline quote.

    0 讨论(0)
提交回复
热议问题