脚本很简单,直接上功能介绍及脚本,可以做模板使用:
- 记录日志,记录脚本开始执行时间、结束时间
- usage 函数,脚本需接参数执行,避免误执行,告诉用户,这个脚本的使用方法
- 加锁,创建锁文件,脚本不允许多人同时执行,或脚本未执行结束又开始执行,尤其计划任务或数据库备份,避免这种问题
#!/bin/bash
#######################################################
# $Version: v1.
# $Function: Shell Template Script
# $Author: Jerry.huang
# $organization: http://www.cnblogs.com/Mrhuangrui
# $Create Date: -- :
# $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=$
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
shell_log "mysql backup stop"
shell_unlock
} # Main Function
main(){
case $ in
backup)
mysql_backup
;;
*)
shell_usage;
esac
} #Exec
main $shell_template.sh