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

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

    实例:

    1. # 打压缩包并上传到跳板机的指定目录
    2. function compress() {
    3. tar -zcvf sc.tgz -C build . && scp -r sc.tgz root@xxx.xxx.xxx.xxx:~/oss_download/demo/
    4. }
    5. # 通过 ssh 登录跳板机执行 3 - 7 步
    6. # 注意在跳板机跳登录到目标服务器的时候需要 ssh -tt ,可以在远程机器上 ssh 到其他的远程主机并执行。详细的解释通过 man ssh 查看
    7. # mkidr -p 是如果目标机器不存在这个目录,就先创建这个目录,保证 cd 或者 tar 的时候不会因为目标目录不存在而引起报错
    8. function send() {
    9. ssh root@xxx.xxx.xxx.xxx "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'"
    10. }
    11. # 执行 compress 和 send 函数
    12. function deploy() {
    13. compress
    14. send ${1}
    15. }
    16. # 发送到目标服务器
    17. deploy 192.168.3.4