zoukankan      html  css  js  c++  java
  • shell脚本

    编写脚本

    1.xcall.sh
    
    为了在任何目录下都可以执行,可以配环境变量或环境变量指定的目录,如:/usr/local/bin/
    因为访问其他主机时,只能调用 在 /usr/bin 或 /usr/local/bin下配置的命令
    
    2.xsync.sh
    
        #!/bin/bash
        if [[ $# -lt 1 ]] ; then echo no parameters; exit ; fi
        p=$1
        echo p=$p
        dir=`dirname $p `
        echo dir = $dir
        filename=`basename $p `  //注意前面反引号必须无空格;
        echo filename=$filename
        cd $dir
        fullpath=`pwd -P `
        echo fullpath=$fullpath
        user=`whoami`
        for (( i = 202 ; i <= 204 ; i = $i + 1 )) ; do
           echo ======= s$i =======
           rsync -lr $p ${user}@s$i:$fullpath
        done ;
    
      -l :软连接的复制
        xsync.sh /home/etc/a.txt
        rsync -lr /home/etc/a.txt centos@s202:/home/etc
    
    -l:表示可以复制软连接(包括内部东西)
    r:递归

     $?  //命令的返回值存储变量,0:成功 1:失败。
     $#  //参数个数
     $1  //第几个参数
     $0  //当前脚本(命令)名称
     $@  //取出所有参数
     shift //参数左移
     ${a/b/c} //


    while循环实现99乘法表.

    #!/bin/bash
    i=1
    lines=$1
    while(( i<=lines )); do
    j=1
        while(( j<=$i )) ;do
        echo -ne ${j}x${i}=$(( j*i ))'	';              //-n不换行,-e:转义符,转义后面的 	 $(())是进行数值运算
        j=$(( j+1 ));
        done;
    i=$(( i+1 ))
    echo ;
    done ;

    xxcall.sh:(不使用for循环遍历数据节点的情况)
     1 #!/bin/bash
     2 
     3 params=$@
     4 
     5 hosts=`cat /soft/hadoop/etc/hadoop/slaves`
     6 
     7 for host in $hosts ; do
     8     tput setaf 2
     9     echo ============= $host =============
    10     tput setaf 7
    11     ssh -4 $host "source /etc/profile ; ${params}" 
    12 done
  • 相关阅读:
    数据库性能测试---前阿里数据库团队资深DBA杨奇龙
    阿里云 MYSQL 与 PG(丁奇与德哥)
    RHEL6中ulimit的nproc限制
    Linux下文件描述符
    Linux中的文件描述符与打开文件之间的关系------------每天进步一点点系列
    5.6 太多分区引起OOM
    Linux lsof命令使用小结
    重现PHP Core的调用栈
    用GDB排查Python程序故障
    mysql 索引优化
  • 原文地址:https://www.cnblogs.com/yihaifutai/p/6822865.html
Copyright © 2011-2022 走看看