#!/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/78373348 和 https://www.cnblogs.com/Jims2016/p/6743401.html