• linux下xsync和xcall脚本及使用xcall jps遇到的一些小问题


    xsync:

    #!/bin/sh
    # 获取输入参数个数,如果没有参数,直接退出
    pcount=$#
    if((pcount==0)); then
            echo no args...;
            exit;
    fi
    
    # 获取文件名称
    p1=$1
    fname=`basename $p1`
    echo fname=$fname
    # 获取上级目录到绝对路径
    pdir=`cd -P $(dirname $p1); pwd`
    echo pdir=$pdir
    # 获取当前用户名称
    user=`whoami`
    # 循环
    for((host=1; host<=2; host++)); do
            echo $pdir/$fname $user@slave$host:$pdir
            echo ==================slave$host==================
            rsync -rvl $pdir/$fname $user@slave$host:$pdir
    done
    #Note:这里的slave对应自己主机名,需要做相应修改。另外,for循环中的host的边界值由自己的主机编号决定。

    xcall:

    #!/bin/bash
    pcount=$#
    if((pcount==0));then
            echo no args;
            exit;
    fi
    
    echo -------------localhost----------
    $@
    for((host=1; host<=2; host++)); do
            echo ----------slave$host---------
            ssh slave$host $@
    done
    #Note:这里的slave对应自己主机名,需要做相应修改。另外,for循环中的host的边界值由自己的主机编号决定。

    脚本想要直接使用就必须放在 /usr/local/bin目录下

    两个脚本都需要使用chmod 777 文件名 来修改权限

    使用xcall jps命令时可能会出现下面这种情况:

    前提:本机可以正常运行jps命令

     这个问题是因为在脚本目录下需要放置jps的软链接,命令如下:

     ln -s /opt/module/jdk1.8.0_261/bin/jps jps

    这里的jps路径要换成自己的,一般在自己jdk安装目录下的bin文件夹里

    此时再使用xsync jps命令将软链接分发到子结点上,接着就可以运行xcall jps

     问题完美解决!

    --------------------------------------------------------------------------------------分割线----------------------------------------------------------------------------------------------

    解决坏的解释器问题,命令:

    sed -i 's/ $//' 文件名

  • 相关阅读:
    【模板】常系数线性递推
    【模板】多项式除法
    【模板】多项式求逆
    codeblock的一个小问题
    IP分片浅析
    [LeetCode] Excel Sheet Column Number
    [LeetCode] Excel Sheet Column Title
    [LeetCode] Maximum Gap
    编程计算并输出1~n之间所有素数之和
    [LeetCode] Compare Version Numbers
  • 原文地址:https://www.cnblogs.com/dd110343/p/14295031.html
Copyright © 2020-2023  润新知