Shell:脚本运行在客户端,在远程服务端执行操作

1、远程服务器命令行操作

# 变量初始化
remote_user="${远程服务端用户名}"
remote_passwd="${远程服务端密码}"
default_ip="${远程服务端IP}"
default_path_project="/work/share/project"
default_dir="Robotaxi_CYC"
target_dir="${default_dir}"
target_name="${remote_user}"
target_ip="${default_ip}"

(1)在远程服务器上执行创建文件夹命令

# 命令指令
remove_yes="-o StrictHostKeyChecking=no"
ssh_pass="sshpass -p ${remote_passwd}"
cmd_mkdir="mkdir -p ${default_path_project}/${target_dir}"

# 在远程服务器上执行创建文件夹命令
${ssh_pass} ssh ${remove_yes} ${target_name}@${target_ip} -t ${cmd_mkdir}
# 等价于->
sshpass -p idriver_bbox ssh -o StrictHostKeyChecking=no nvidia@192.168.1.100 -t mkdir -p /work/share/project/Robotaxi_CYC

(2)在远程服务器上执行多行命令

# 命令指令
remote_pw="echo ${remote_passwd} | sudo -S"
cmd_target="${remote_pw} chmod -R 777 ${default_path_project}/${target_dir}; ${remote_pw} rm -rf ${default_path_project}/${target_dir}/*"

# 在远程服务器上执行多行命令
${ssh_pass} ssh ${remove_yes} ${target_name}@${target_ip} -t ${cmd_target}
# 等价于->
sshpass -p idriver_bbox ssh -o StrictHostKeyChecking=no nvidia@192.168.1.100 -t echo idriver_bbox | sudo -S chmod -R 777 /work/share/project/Robotaxi_CYC; echo idriver_bbox | sudo -S rm -rf /work/share/project/Robotaxi_CYC/*

2、获取当前脚本的绝对路径

CURR_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"

获取pwd/../..路径

TOP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
posted @ 2024-03-11 14:57  capybara-lsq  阅读(597)  评论(0)    收藏  举报