如何利用shell开发keepalived启动脚本

keepalived是什么?

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

  Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。

  所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

keepalived官网http://www.keepalived.org

1.1 keepalived的相关的文件

keepalived的执行命令:/data/apps/keepalived/sbin/keepalived
keepalived的配置文件:/data/apps/keepalived/etc/keepalived/keepalived.conf
keepalived的Pid文件:/data/apps/keepalived/run/keepalived.pid

1.2 keepalived的启停止方式

注意:不要去修改/data/apps/keepalived/etc/sysconfig/keepalived文件

启动方式:keepalived -f 配置文件(绝对路径)  -p PID文件(绝对路径)
关闭方式:kill $( cat PID文件(绝对路径) )

1.3 脚本内容

注意:该脚本只能Linux的超级用户root才能启动,因为脚本中有进行限制

#!/bin/bash
## Define variables
RETVAL=0
Conf="/data/apps/keepalived/etc/keepalived/keepalived.conf"
Exce="/data/apps/keepalived/sbin/keepalived"
Pid="/data/apps/keepalived/run/keepalived.pid"
# Determine the user to execute
if [ "$UID" -ne "$RETVAL" ];then
  echo "Must be root to run scripts"
  exit 1
fi
# Load local functions library
[ -f /etc/init.d/functions ] && source /etc/init.d/functions
# Define functions
start(){
 if [ ! -f "$Pid" ];then
  $Exce -f $Conf -p $Pid >/dev/null 2>&1
  RETVAL=$?
  if [ $RETVAL -eq 0 ];then
    action "Start keepalived service" /bin/true
       else
    action "Start keepalived service" /bin/false
  fi
 else
  echo "keepalived service is running"
 fi
 return $RETVAL
}
stop(){
 if [ -f "$Pid" ];then
      kill $(cat $Pid) >/dev/null 2>&1
  RETVAL=$?
  if [ $RETVAL -eq 0 ];then
    action "Stop keepalived service" /bin/true
       else
    action "Stop keepalived service" /bin/false
  fi
  else
  echo "keepalived service is not running"
 fi
 return $RETVAL
}
status(){
 if [ -f "$Pid" ];then
      echo "keepalived service is running"
  else
  echo "keepalived service is not running"
 fi
 return $RETVAL
}
# case local functions
case "$1" in
 start)
 start
 RETVAL=$?
 ;;
 stop)
 stop
 RETVAL=$?
 ;;
 status)
 status
 RETVAL=$?
 ;;
 restart)
 stop
 sleep 2
 start
 RETVAL=$?
 ;;
 *)
 echo "USAGE:$0{status|start|stop|restart}"
     exit 1
esac
# Scripts return values
exit $RETVAL

总结

到此这篇关于使用shell开发keepalived启动脚本的文章就介绍到这了,更多相关shell keepalived启动脚本内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Shell实现判断进程是否存在并重新启动脚本分享

    简洁版: #! /bin/bash # author caoxin # time 2012-10-10 # program : 判断进行是否存在,并重新启动 function check(){ count=`ps -ef |grep $1 |grep -v "grep" |wc -l` #echo $count if [ 0 == $count ];then nohup python /runscript/working/$1 & fi } check behaviors.py

  • CentOS下redis自启动shell脚本

    用这个脚本管理之前,需要先配置下面的内核参数,否则Redis脚本在重启或停止redis时,将会报错,并且不能自动在停止服务前同步数据到磁盘上: 复制代码 代码如下: # vi /etc/sysctl.conf vm.overcommit_memory = 1 然后应用生效: 复制代码 代码如下: # sysctl -p 然后增加服务并开机自启动: 复制代码 代码如下: # chmod 755 /etc/init.d/redis # chkconfig –add redis # chkconfig

  • Shell实现的Oracle启动脚本分享

    Usage: sh oracled [start|stop|restart] SIDs 其中SIDs是数据库名,多个名称之间用逗号分隔.缺省的操作是 restart ,也可以指定需要进行的操作( start | stop | restart ) 复制代码 代码如下: #!/bin/sh    cmdname="restart"  # get oracle sid information from env by default.  oracleSID=${ORACLE_SID}  env

  • Linux启动jar包的shell脚本

    背景: 项目设备端需要运行jar包程序与服务端进行socket连接并发送数据,每次启动进程时,都需要在Linux终端输入启动jar包的命令,比较繁琐,随之尝试将启动jar包的命令写入shell脚本文件中,实现操作shell脚本启动jar包程序的功能. 编写的socdev.sh脚本文件中命令如下: #启动命令所在目录 HOME='/home/pi/Desktop/java' #获取mac地址(唯一的) mac=`ifconfig | grep eth0 | awk '{print $5}'` st

  • 用shell脚本监控进程是否存在 不存在则启动的实例

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/sh ps -fe|grep processString |grep -v grep if [ $? -ne 0 ] then echo "start process....." else echo "runing....." fi ##### processString 表示进程特征字符串,能够查询到唯一进程的特征字符串 0表示存在的 $? -ne 0 不存在,$? -eq 0 存

  • linux环境下编写shell脚本实现启动停止tomcat服务的方法

    第一步:以管理员的身份进入控制台,在指定目录下新建一个shell脚本,我这里命名为tomcat.sh 第二步:编写shell脚本 #!/bin/bash tomcat_home=/usr/tomcat/apache-tomcat-8.0.48 SHUTDOWN=$tomcat_home/bin/shutdown.sh STARTTOMCAT=$tomcat_home/bin/startup.sh case $1 in start) echo "启动$tomcat_home" $STAR

  • 如何利用shell开发keepalived启动脚本

    keepalived是什么? Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx.Haproxy.MySQL等)的高可用解决方案软件. Keepalived软件主要是通过VRRP协议实现高可用功能的.VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VR

  • PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码

    复制代码 代码如下: $command = '/usr/bin/php /pub/www/u111/job/Crondo/auto_collector.php &'; $process = proc_open($command, array(),$pipes); $var = proc_get_status($process); proc_close($process); //pid就是进程ID,至于为什么要加1,我现在也没有搞懂,经过多次的测试,发现$var['pid']得到的ID比实际的少1

  • 利用Shell 脚本解决DDOS攻击问题

    思路:主要利用 awk ,if结构,sort,uniq #!/bin/bash FilePath="access.log" awk '{print $1}' $FilePath | sort -rn | uniq -c >ip_count.log cat ip_count.log | while read text ####读取文件内容,以行为单位 do echo $text count=`echo $text | awk '{print $1}' ` ip=`echo $tex

  • 利用shell脚本遍历文件夹内所有的文件并作整理统计的方法

    环境: Ubuntu下采用shell脚本实现 案例简述: 文件夹内有许多子文件夹,这里需要自动读取所有的文件,包括他们的地址和文件名.通过观察文件名的规律,按照一定的规则裁剪出文件名的某一部分,该部分为数字,则根据数字的大小统计该文件夹内文件在各个数据段的数量. 1.这里写一个函数,实现对文件夹内所有文件名的读取,采用的方法是递归! #!/bin/bash #folder="./test" function readfile () { #这里`为esc下面的按键符号 for file

  • 解析Tomcat的启动脚本--catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 catalina.bat 脚本. 至于 setclasspath.bat 这个脚本, 相信看完这一篇, 就可以自己看懂这个脚本了. 可以点击下载 [ setclasspath.bat 脚本 ]查看附注释的 setclasspath.bat 脚本 catalina.bat 这个脚本的代码有点多, 就单独弄

  • 解析Tomcat的启动脚本--startup.bat

    概述 我们通常使用 Tomcat 中的 startup.bat 来启动 Tomcat. 但是这其中干了一些什么事呢? 大家都知道一个 Java 程序需要启动的话, 肯定需要 main 方法, 那么这个 main 方法在哪呢? Tomcat 脚本中又是配置了一些什么参数呢, 什么情况下 Tomcat 会启动失败呢? 带着一些列的疑问我们来分析 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat startup.bat 脚本 该

  • 通过Spring Shell 开发 Java 命令行应用

    提到 Java,大家都会想到 Java 在服务器端应用开发中的使用.实际上,Java 在命令行应用的开发中也有一席之地.在很多情况下,相对于图形用户界面来说,命令行界面响应速度快,所占用的系统资源少.在与用户进行交互的场景比较单一时,命令行界面是更好的选择.命令行界面有其固定的交互模式.通常是由用户输入一系列的参数,在执行之后把相应的结果在控制台输出.命令行应用通常需要处理输入参数的传递和验证.输出结果的格式化等任务.Spring Shell 可以帮助简化这些常见的任务,让开发人员专注于实现应用

  • 非常实用的Tomcat启动脚本实现方法

    前言 有这样一个场景,公司为了安全起见,需要对所有登录Linux服务器做安全限制,要求除了管理员其他要登录linux服务器的员工不能用最高权限账号登录,要创建新的用户,对目录及文件权限做出控制,只能对需要操作的目录允许读,写,执行权限,其他目录只有读的权限,并且所有tomcat不能直接在bin中用startup.sh,shutdown.sh进行启动和停止,要通过写shell脚本进行此操作,也就是说有两个步骤,创建用户并设置权限,写tomcat启动脚本,下面我们就完成这两个步骤. 1.首先我们就来

  • linux下利用shell在指定的行添加内容的方法

    在linux的一些配置中总会要进行某个文件中的某行的操作,进行增加,修改,删除等操作. 而这里主要是进行的是指定的行添加数据的操作: 脚本如下: sed -i '3i asdf 1.sh' 1.sh 这个就是在1.sh中的第3行加入asdf的数据. 首先看1.sh内容如下: 执行sed命令如下: 这个就是一个比较简单的操作,比较实用. 以上这篇linux下利用shell在指定的行添加内容的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python 利用文件锁单例执行脚本的方法

    你可能会遇到这样的要求,一个脚本,只允许有一个实例. 在python中,为了实现这个需求,可以引入fcntl模块对文件加一个排他锁,这样一来,先启动的实例拥有了文件锁,而后启动的实例则因无法获取锁而退出 #coding=utf-8 import fcntl, sys, time, os pidfile = 0 def ApplicationInstance(): global pidfile pidfile = open(os.path.realpath(__file__), "r")

随机推荐