ssh 本身支持在远程主机中运行命令的,语法就是
ssh user@host "command1; command2; command3; ...."
实例:
# 打压缩包并上传到跳板机的指定目录
function compress() {
tar -zcvf sc.tgz -C build . && scp -r sc.tgz root@xxx.xxx.xxx.xxx:~/oss_download/demo/
}
# 通过 ssh 登录跳板机执行 3 - 7 步
# 注意在跳板机跳登录到目标服务器的时候需要 ssh -tt ,可以在远程机器上 ssh 到其他的远程主机并执行。详细的解释通过 man ssh 查看
# mkidr -p 是如果目标机器不存在这个目录,就先创建这个目录,保证 cd 或者 tar 的时候不会因为目标目录不存在而引起报错
function send() {
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'"
}
# 执行 compress 和 send 函数
function deploy() {
compress
send ${1}
}
# 发送到目标服务器
deploy 192.168.3.4