shell:远程机器执行当前机器的脚本

如果你想使用ssh命令从当前机器(即你正在操作的机器)连接到另一台机器,并在那台远程机器上执行当前机器上的一个脚本,你需要将脚本文件复制到远程机器,或者使用其他方法(如通过HTTP、FTP等)在远程机器上访问该脚本。

但是,如果你只是想在远程机器上执行一个命令,而这个命令的内容是当前机器上的一个脚本的内容,你可以使用sshcat命令结合管道(|)和bash来执行。但是,这通常不是一个推荐的做法,因为它可能会导致安全或可维护性问题。

然而,以下是一个简单的示例,展示了如何将当前机器上的脚本内容发送到远程机器并执行:

#!/bin/bash  
  
# 设置远程机器的IP地址和用户名  
REMOTE_IP="192.168.0.1"  
REMOTE_USER="your_remote_username"  
  
# 假设你有一个名为local_script.sh的脚本在当前目录下  
LOCAL_SCRIPT_PATH="./local_script.sh"  
  
# 使用ssh命令和'cat'命令将脚本内容发送到远程机器并执行  
ssh "$REMOTE_USER@$REMOTE_IP" "bash -s" < "$LOCAL_SCRIPT_PATH"  
  
# 注意:这种方法将脚本内容作为输入发送到远程bash,它要求脚本内容是安全的并且可以在远程机器上直接执行

在这个例子中,bash -s告诉远程的bash从标准输入(stdin)读取命令并执行它们。< "$LOCAL_SCRIPT_PATH"部分将local_script.sh的内容重定向到ssh命令的标准输入,从而将其发送到远程机器。

然而,一个更安全、更常见的做法是将脚本文件复制到远程机器,然后在远程机器上执行它。这可以通过scp(安全复制)或rsync命令来完成,如下所示:

#!/bin/bash  
  
# 设置远程机器的IP地址和用户名  
REMOTE_IP="your_remote_ip_address"  
REMOTE_USER="your_remote_username"  
REMOTE_DIR="/path/to/remote/directory"  # 远程机器上存放脚本的目录  
  
# 假设你有一个名为local_script.sh的脚本在当前目录下  
LOCAL_SCRIPT_PATH="./local_script.sh"  
  
# 使用scp将脚本复制到远程机器  
scp "$LOCAL_SCRIPT_PATH" "$REMOTE_USER@$REMOTE_IP:$REMOTE_DIR"  
  
# 然后在远程机器上执行脚本  
ssh "$REMOTE_USER@$REMOTE_IP" "bash $REMOTE_DIR/local_script.sh"  
  
# 记得在远程机器上给脚本添加执行权限(如果需要的话)  
# ssh "$REMOTE_USER@$REMOTE_IP" "chmod +x $REMOTE_DIR/local_script.sh"

请注意,你需要在远程机器上的适当位置有写权限,以便能够将脚本复制过去,并且可能需要使用chmod命令来给远程脚本添加执行权限(如果它还没有的话)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值