Shell脚本菜鸟 - 这个任务有多脚本化?

时间:2010-02-18 17:54:09

标签: shell

我有一个有点复杂的部署程序,我喜欢编写脚本。我不确定它会变得多么容易或多么困难。以下是需要发生的事情:

  1. 从本地计算机到服务器A的sftp myApp.war
  2. 从服务器A到服务器B的sftp myApp.war(可能是为了在服务器A上运行sftp而进入服务器A)
  3. 在服务器B上运行jar xvf unab.war
  4. 我喜欢你们中的一员是:

    1. 快速“是的,这很简单,只是shell脚本的用途”或“不,这将需要相当多的小提琴”。
    2. 如果它非常可行,请粗略勾勒出我需要完成的步骤。

5 个答案:

答案 0 :(得分:2)

需要一些摆弄。 SSH和SCP可以用来做这样的事情,但是你需要配置密钥等。

答案 1 :(得分:2)

“是的,这很简单,只是shell脚本的用途”

需要注意的是,您需要设置一些SSH身份验证方法,该方法不需要在控制台中输入密码。 (作为我所指的简短示例,请参阅http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html。)

这是一个粗略的,未经测试的bash脚本,可以执行您想要的操作:

#!/bin/bash
SERVER_ACCOUNT="username"
SERVER_A="servera.domain.com"
SERVER_B="serverb.domain.com"
TARGET_PATH="/path/to/destination/on/server"
WARFILE="myApp.war"
scp $WARFILE $SERVER_ACCOUNT@$SERVER_A:$TARGET_PATH
ssh $SERVER_A "scp $TARGET_PATH/$WARFILE $SERVER_ACCOUNT@SERVER_B:$TARGET_PATH"
ssh $SERVER_B "jar xvf $TARGET_PATH/$WARFILE"

答案 2 :(得分:1)

只需设置无密码身份验证并运行此

scp localfile user@remotehost:location/          # step 1: copy the file
ssh user@remotehost bin/remote_script.sh         # step 2: run remote script

答案 3 :(得分:0)

这是可行的但是做自动ssh / sftp很棘手(比以前的rsh / rcp要棘手)

答案 4 :(得分:0)

如果你不反对某些ruby而不是shell,你可以使用Capistrano,专门针对这类任务。