Linux shell腳本009(文件鎖、規範化運維腳本)

#!/bin/bash

SHELL_NAME="shell_template_3.sh"
SHELL_DIR="/root/test"
SHELL_LOG="${SHELL_DIR}/${SHELL_NAME}.log"
LOCK_FILE="/root/test/${SHELL_NAME}.lock"

shell_log() {
        LOG_INFO=$1
        echo "$(date "+%Y-%m-%d") $(date "+%H-%M-%S") : ${SHELL_NAME} : ${LOG_INFO}" >> ${SHELL_LOG}
}

shell_usage() {
        echo $"USAGE: $0 {backup}"
}

shell_lock() {
        touch ${LOCK_FILE}

}

shell_unlock() {
        rm -f ${LOCK_FILE}
}

mysql_backup() {
        if [ -f "${LOCK_FILE}" ]; then
                shell_log "${SHELL_NAME} is running"
                echo "${SHELL_NAME}" is running && exit
        fi
        shell_log "mysql backup start"
        shell_lock
        sleep 10
        shell_log "mysql backup stop"
        shell_unlock
}

main() {
        case $1 in
                backup)
                        mysql_backup
                        ;;
                *)
                        shell_usage;
        esac
}

main $1

正規化的腳本格式:

#!/bin/bash
#Usage:
#      ./shell.sh dbname user passwd
#------------------------------------------------------
#Filename:              shell.sh
#Revision:              1.0
#Date:                  2018/01/19
#Author:                Jim
#Description:     The Example of a shell script
#Notes:
#------------------------------------------------------
Usage="Usage: $0 dbname user passwd"
[ $# -ne 3 ] && echo "${Usage}" && exit -1

#define alias time and bring into effect
alias dt='date +%Y-%m-%d" "%H:%M:%S'
shopt -s expand_aliases

知識點:
函數調用,case用法,文件鎖
規範化腳本,文件鎖機制,腳本用法提示

轉自http://blog.csdn.net/bisal/article/details/78373348https://www.cnblogs.com/Jims2016/p/6743401.html

發佈了24 篇原創文章 · 獲贊 7 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章