ssh 在本地执行远程主机命令

ssh 本身支持在远程主机中运行命令的,语法就是

ssh user@host "command1; command2; command3; ...."

实例:

# 打压缩包并上传到跳板机的指定目录
function compress() {
    tar -zcvf sc.tgz -C build . && scp -r sc.tgz [email protected]:~/oss_download/demo/
}

# 通过 ssh 登录跳板机执行 3 - 7 步
# 注意在跳板机跳登录到目标服务器的时候需要 ssh -tt ,可以在远程机器上 ssh 到其他的远程主机并执行。详细的解释通过 man ssh 查看
# mkidr -p 是如果目标机器不存在这个目录,就先创建这个目录,保证 cd 或者 tar 的时候不会因为目标目录不存在而引起报错

function send() {
    ssh [email protected] "scp -r oss_download/demo/sc.tgz alibaba@${1}:~/ossdowload/data/demo/ ; ssh -tt alibaba@${1} 'mkdir -p ossdowload; cd ossdowload; mkdir -p data/demo/sc/${version}; tar -zvxf data/demo/sc.tgz  -C data/demo/sc/${version}  && rm -rf data/demo/sc.tgz &&  ./ceph_tmp.py'"
}

# 执行 compress 和 send 函数
function deploy() {
    compress
    send ${1}
}

# 发送到目标服务器
deploy 192.168.3.4