linux中比较实用的脚本

1、采用jps命令查看服务器集群中所有的进程

#!/bin/bash

for host in hadoop101 hadoop102 hadoop103
do
        echo =============== $host 启动的进程 ===============
        ssh $host 'jps'
done

2、群起hadoop集群的脚本

#!/bin/bash

if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi

case $1 in
"start")
        echo " =================== 启动 hadoop集群 ==================="

        echo " --------------- 启动 hdfs ---------------"
        ssh hadoop101 "/opt/module/hadoop/sbin/start-dfs.sh"
        echo " --------------- 启动 yarn ---------------"
        ssh hadoop102 "/opt/module/hadoop/sbin/start-yarn.sh"
        echo " --------------- 启动 historyserver ---------------"
        ssh hadoop101 "/opt/module/hadoop/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="

        echo " --------------- 关闭 historyserver ---------------"
        ssh hadoop101 "/opt/module/hadoop/bin/mapred --daemon stop historyserver"
        echo " --------------- 关闭 yarn ---------------"
        ssh hadoop102 "/opt/module/hadoop/sbin/stop-yarn.sh"
        echo " --------------- 关闭 hdfs ---------------"
        ssh hadoop101 "/opt/module/hadoop/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

3、分布式分发集群分发脚本


#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo 参数不能为空!!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop101 hadoop102 hadoop103
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4. 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

4、zookeeper集群分发脚本


#!/bin/bash

if [ $# -lt 1 ]
then
 echo '参数不能为空!!'
  exit
fi


#循环遍历每台服务器启动zookeeper
for host in hadoop101 hadoop102 hadoop103
do
   case $1 in
   "start")
     echo "$1 ****** $host *****ZK***********"
     ssh $host /opt/module/zookeeper-3.5.7/bin/zkServer.sh $1
    ;;
    "stop")
     echo "$1 ****** $host *****ZK***********"
     ssh $host /opt/module/zookeeper-3.5.7/bin/zkServer.sh $1
    ;;
    "status")
    echo "$1 ****** $host *****ZK***********"
     ssh $host /opt/module/zookeeper-3.5.7/bin/zkServer.sh $1
    ;;
    "*")
   echo "参数有误!!"
    exit;
    ;;
   esac
done

5、kafka 集群启停脚本

#!/bin/bash

#判断是否输入参数
if [ $# -lt 1 ]
then
  echo "请输入参数(start/stop/status/...)"
  exit
fi

for host in hadoop101 hadoop102 hadoop103
do

   case $1 in

    "start")
     echo "=================== START $host KAFKA ====================="
     ssh $host /opt/module/kafka_2.12-3.3.1/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.12-3.3.1/config/server.properties

     echo "$host Kafka 启动成功"
    ;;
    "stop")
    echo "=================== STOP  $host KAFKA ====================="
     ssh $host /opt/module/kafka_2.12-3.3.1/bin/kafka-server-stop.sh
    echo "$host Kafka 关闭成功"

    ;;
    "status")
      echo "该实现待完成"
    ;;
    "*")
    echo "参数输入错误"
    exit
    ;;
    esac



done

6、mysql 自动安装脚本(版本指定8.0.28)

#!/bin/bash
#在脚本中单引号输出是所见即所得
#双引号:会先解析双引号中的变量再输出
#反引号:命令替换。先执行反引号张的语句,再把结果加入到原命令中

#if [ $# -lt 2 ]
#then
 #  echo "请输入MySQL压缩包地址(本脚本只支持安装.tar.xz的包)===和解压目的目录"
  # exit;
#fi

#注意1、使用该脚本需要在 root用户下,才可以运行
#    2、该脚本需要在/opt/software、opt/module创建两个文件夹
echo “开始解压mysql”
tar -xvJf /opt/software/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz -C /opt/module
echo "开始重命名"
mv /opt/module/mysql-8.0.28-linux-glibc2.12-x86_64 /opt/module/mysql-8.0.28
echo "在同级目录下创建数据存储文件夹  /data"
mkdir /opt/module/mysql-8.0.28/data
echo "创建mysql组"
groupadd mysql
echo "创建mysql 用户"
useradd -g mysql mysql
echo "给mysql-8.0.28文件夹授权"
chown -R mysql.mysql /opt/module/mysql-8.0.28
echo "安装numactl"
yum install -y numactl
echo "初始化数据库"
/opt/module/mysql-8.0.28/bin/mysqld --user=mysql --basedir=/opt/module/mysql-8.0.28/ --datadir=/opt/module/mysql-8.0.28/data/ --initialize
echo "复制mysql.server 到/etc/init.d/mysql"
cp -a /opt/module/mysql-8.0.28/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
echo "添加my.cnf"
touch /etc/my.cnf
echo '[mysqld]' >> /etc/my.cnf

echo '#设置mysql的安装目录' >> /etc/my.cnf
echo 'basedir = /opt/module/mysql-8.0.28' >> /etc/my.cnf

echo '#设置mysql数据库数据存放目录' >> /etc/my.cnf
echo 'datadir = /opt/module/mysql-8.0.28/data' >> /etc/my.cnf


echo 'socket = /opt/module/mysql-8.0.28/mysql.sock' >> /etc/my.cnf

echo '#设置连接最大连接数' >> /etc/my.cnf
echo 'max_connections=10000' >> /etc/my.cnf

echo '# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统' >> /etc/my.cnf
echo 'max_connect_errors=10' >> /etc/my.cnf

echo '# 服务端使用的字符集默认为UTF8' >> /etc/my.cnf
echo 'default-storage-engine=INNODB' >> /etc/my.cnf

echo 'character-set-server=utf8' >> /etc/my.cnf
echo 'port = 3306' >> /etc/my.cnf
echo 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES' >> /etc/my.cnf

echo '[mysql]' >> /etc/my.cnf

echo '# 设置mysql客户端默认字符集' >> /etc/my.cnf
echo 'default-character-set=utf8' >> /etc/my.cnf

echo '[client]' >> /etc/my.cnf

echo '# 设置mysql客户端连接服务端时默认使用的端口' >> /etc/my.cnf
echo 'port=3306' >> /etc/my.cnf
echo 'socket = /opt/module/mysql-8.0.28/mysql.sock' >> /etc/my.cnf
echo 'default-character-set=utf8' >> /etc/my.cnf
echo "启动mysql"
service mysql start
echo "查看启动状态"
service mysql status

echo "创建软连接"
ln -s /opt/module/mysql-8.0.28/bin/mysql /usr/bin


echo "-------------------请按照以下步骤自行修改密码----------------------------"

echo "1、设置密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY'123456';"
echo "2、进入mysql表 use mysql"
echo "3、修改权限 update user set host = '%' where user = 'root';"
echo "4、刷新设置 flush privileges;"

#如果在初次登录时,没有随机生成密码,可采用以下步骤
#1、关闭mysql服务====> service mysql stop
#2、安全模式登录(需要cd 到 /opt/module/mysql-8.0.28/bin )===>./mysqld_safe --skip-grant-tables
#3、需要打开新的终端,登录mysql
#4、flush privileges;
#5、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY'此处填写你的密码';

想用mysql自动安装脚本,可参考博主 mysql栏目中的 --->linux中安装mysql8.0.28 --采用脚本实现自动安装 
这篇文章 http://t.csdn.cn/BsQ5O

注:想用脚本只需修改脚本服务器机名既可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值