zoukankan      html  css  js  c++  java
  • SHELL 脚本小技巧

    脚本很简单,直接上功能介绍及脚本,可以做模板使用:

    1. 记录日志,记录脚本开始执行时间、结束时间
    2. usage 函数,脚本需接参数执行,避免误执行,告诉用户,这个脚本的使用方法
    3. 加锁,创建锁文件,脚本不允许多人同时执行,或脚本未执行结束又开始执行,尤其计划任务或数据库备份,避免这种问题
      #!/bin/bash
      #######################################################
      # $Version:      v1.0
      # $Function:     Shell Template Script
      # $Author:       Jerry.huang
      # $organization: http://www.cnblogs.com/Mrhuangrui
      # $Create Date:  2017-06-30 09:30
      # $Description:  You know what i mean,heiheihei
      #######################################################
      
      # Shell Env
      SHELL_DIR="/opt/shell"
      SHELL_LOG="${SHELL_DIR}/$0.log"
      LOCK_FILE="/tmp/$0.lock"
      
      #Write Log 
      shell_log(){
          LOG_INFO=$1
          echo "$(date "+%Y-%m-%d") $(date "+%H-%M-%S") : $0 : ${LOG_INFO}" >> ${SHELL_LOG}
      }
      
      # Shell Usage
      shell_usage(){
          echo $"Usage: $0 {backup}"
      }
      
      shell_lock(){
          touch ${LOCK_FILE}
      }
      
      shell_unlock(){
          rm -f ${LOCK_FILE}
      }
      
      # Backup MySQL All Database with mysqldump or innobackupex
      mysql_backup(){
          if [ -f "$LOCK_FILE" ];then
              shell_log "$0 is running"
              echo "$0" is running,exit now. && exit
          fi
          shell_log "mysql backup start"
          shell_lock
          sleep 10
          shell_log "mysql backup stop"
          shell_unlock
      }
      
      # Main Function
      main(){
          case $1 in
              backup)
                  mysql_backup
                  ;;
              *)
                  shell_usage;
          esac
      }
      
      #Exec
      main $1
      shell_template.sh
  • 相关阅读:
    C# extern关键字的用法
    C#自定义集合类(二)
    C#自定义集合类(一)
    LINQ中交集、并集、差集、去重(十四)
    LINQ中转换操作符(十三)
    Oracle实现连乘和求和
    适配器模式
    HTTP网络协议与手写Web服务容器
    代理模式
    设计模式的几条家规
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/7097453.html
Copyright © 2011-2022 走看看