日期:2014-05-16  浏览次数:20574 次

ssh连接后执行命令

HOSTNAME=$1
FILEPATH=$2
FILENAME=$3
NAME=hadoop
ssh $HOSTNAME -l $NAME
cd $FILEPATH;
nohup ./$FILENAME &;
# 上面的链接方式,连接后会到$HOSTNAME机子上,但是不执行后面的cd;nohup等命令
# 下面的链接方式,直接将后面命令拿到本机来执行,不在$HOSTNAME机子上执行
#ssh $HOSTNAME -l $NAME "sleep 5; cd $FILEPATH; sleep 5;  nohup ./$FILENAME &"

if [ $? -eq 0 ]; then
    echo "success"
    exit 0
else
    echo "fail"
    exit 1
fi


我现在想连接过去后,在$HOSTNAME机子上执行命令,执行完后,再退回到当前机子,请问,这个该如何改呢,ssh连接后的命令执行都有哪几种方式呢,谢谢。
Shell ssh

------解决方案--------------------
先做好ssh登录无密码
然后
ssh root@hostnmae "你的命令"