• 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命令来给远程脚本添加执行权限(如果它还没有的话)。

  • 相关阅读:
    【Tomcat&http&servlet】
    opencv 机器学习-人脸识别
    昇思25天学习打卡营第五天|应用实践/计算机视觉/FCN图像语义分割
    WiFi蓝牙模块促进传统零售数字化转型:智能零售体验再升级
    用js理解常用设计模式
    Leetcode 50.Pow(x,n)
    当应酬成为日常,你需要这20个技巧聪明地进食
    如何在一台服务器上同时运行搭载JDK 8, JDK 17, 和 JDK 21的项目:终极指南
    结构体字节对齐
    C++11之智能指针
  • 原文地址:https://blog.csdn.net/weixin_43999327/article/details/139834349