• 56171

    文章

  • 559

    评论

  • 47

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

远程执行脚本

695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

构建服务器上,要运行脚本来部署服务的话。遇到的一个问题就是要用ssh和scp来执行远程服务器。 但是有一个问题,就是变量的使用。因为没有掌握到,所以之前有走入误区。还好在百度过程找到如下代码

#!/bin/bash
 
BAK_TIME='2014-10-06'
COMMAND="sudo /bin/tar -zxf /data/db_backup/ssh_test_${BAK_TIME}-*.tar.gz -C /data; \
         EXTRACT_DIR=\`sudo /bin/find /data -type d -name ssh_test_${BAK_TIME}-*\`; \
         for i in \`sudo /bin/ls \$EXTRACT_DIR\` ; do mysql -uroot -p'123456' testdb -e \"source \$EXTRACT_DIR/\$i\" ;done"
 
ssh -lroot -p22 192.168.10.169 "${COMMAND}"

发现原来我这种写法是有问题的

function deploye (){

  #cd $CODEPATH
 
  #scp target/$JARNAME  $DEPLOYESERVER:$DEPLOYEPATH/$JARNAME.new
  

ssh -o StrictHostKeyChecking=no $DEPLOYESERVER  << eeooff

   echo '-------------------'
   echo $DEPLOYEPATH/$JARNAME
   echo '------------------' 

  # MTIME=`ls -l --time-style="long-iso"  $DEPLOYEPATH/$JARNAME  |awk '{ print $6 "-" $7}'`

   echo '----------------'
   echo $MTIME
   echo '------------------------' 
   cd $DEPLOYEPATH 
 #  mv -f $JARNAME   $JARNAME.$MTIME
 #  mv -f $JARNAME.new    $JARNAME
     
   exit 
eeooff
}

用这种方法还会报错 修改成下面的方法就没问题了


function deploye (){

  cd $CODEPATH

  scp target/$JARNAME  $DEPLOYESERVER:$DEPLOYEPATH/$JARNAME.new

ssh -o StrictHostKeyChecking=no $DEPLOYESERVER  << eeooff

   #用变量的方法有问题,解决了
  # echo   > tpid
   MTIME=\`ls -l --time-style="long-iso"  $DEPLOYEPATH/$JARNAME  |awk '{ print \$6 "-" \$7}'\`
   cd $DEPLOYEPATH 
   mv -f $JARNAME   $JARNAME.\$MTIME
   mv -f $JARNAME.new    $JARNAME

   exit
eeooff
}



 转载至链接:https://my.oschina.net/miaojiangmin/blog/1862684



转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

1条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客