10
10
# ######################################################
11
11
12
12
# Shell Env
13
- SHELL_NAME=" backup_db.sh"
13
+ SHELL_NAME=" test.sh"
14
+ SHELL_TIME=$( date " +%Y-%m-%d" )
14
15
SHELL_DIR=" /home/www/database_back"
15
- SHELL_LOG=" ${SHELL_DIR} /${SHELL_NAME} .log"
16
+ SHELL_LOG=" ${SHELL_DIR} /${SHELL_NAME} - ${SHELL_TIME} .log"
16
17
LOCK_FILE=" /tmp/${SHELL_NAME} .lock"
17
- BACKUP_NAME=" ${SHELL_DIR} /${SHELL_NAME} .log"
18
+ MYSQL_DUMP=" /usr/bin/mysqldump"
19
+ MYSQL_BACKUP_DB_NAME=" weblive"
20
+ BACKUP_NAME=${MYSQL_BACKUP_DB_NAME} " -${SHELL_TIME} .sql"
18
21
19
- # Write Log
22
+ # 设置日志级别
23
+ loglevel=0 # debug:0; info:1; warn:2; error:3
24
+ TIME=` date ' +%Y-%m-%d %H:%M:%S' `
20
25
shell_log (){
21
- LOG_INFO=$1
22
- echo " $( date " +%Y-%m-%d" ) $( date " +%H-%M-%S" ) : ${SHELL_NAME} : ${LOG_INFO} " >> ${SHELL_LOG}
26
+ local log_type=$1
27
+ local LOG_CONTENT=$2
28
+ # 这里的写入日志时间修改掉,经过一段时间的测试${TIME} 每次都是一个固定的时间,所以在这里修改为每次写入是自动获取当前时间写入日志
29
+ logformat=" ` date ' +%Y-%m-%d %H:%M:%S' ` \t[${log_type} ]\t [${SHELL_NAME} ] Function: ${FUNCNAME[@]} \t[line:` caller 0 | awk ' {print$1}' ` ]\t [log_info: ${LOG_CONTENT} ]"
30
+ {
31
+ case $log_type in
32
+ debug)
33
+ [[ $loglevel -le 0 ]] && echo -e " \033[34m${logformat} \033[0m" ;;
34
+ info)
35
+ [[ $loglevel -le 1 ]] && echo -e " \033[32m${logformat} \033[0m" ;;
36
+ warn)
37
+ [[ $loglevel -le 2 ]] && echo -e " \033[33m${logformat} \033[0m" ;;
38
+ error)
39
+ [[ $loglevel -le 3 ]] && echo -e " \033[31m${logformat} \033[0m" ;;
40
+ esac
41
+ } | tee -a $SHELL_LOG
23
42
}
24
43
25
44
# Shell Usage shell_usage函数,用来告诉用户,这个脚本的使用方法
26
45
shell_usage (){
27
- echo $" Usage: $0 {backup}"
46
+ # echo $"Usage: $0 {backup}"
47
+ echo ' 你没有输入 1 到 4 之间的数字'
28
48
}
29
49
30
50
# 函数shell_lock和shell_unlock非常简单,就是创建一个锁文件
@@ -36,7 +56,7 @@ shell_unlock(){
36
56
rm -f ${LOCK_FILE}
37
57
}
38
58
39
- # Backup MySQL All Database with mysqldump or innobackupex
59
+ # Backup MySQL weblive Database with mysqldump or innobackupex
40
60
mysql_backup (){
41
61
if [ -f " $LOCK_FILE " ]; then
42
62
shell_log " ${SHELL_NAME} is running"
@@ -45,20 +65,61 @@ mysql_backup(){
45
65
shell_log " mysql backup start"
46
66
shell_lock
47
67
sleep 10
68
+ $MYSQL_DUMP $MYSQL_BACKUP_DB_NAME > $SHELL_DIR /$BACKUP_NAME
69
+ cd $SHELL_DIR
70
+ /bin/bzip2 $BACKUP_NAME
48
71
shell_log " mysql backup stop"
49
72
shell_unlock
50
73
}
51
74
52
75
# Main Function
53
76
main (){
54
77
case $1 in
55
- backup)
56
- mysql_backup
57
- ;;
58
- * )
59
- shell_usage;
78
+ 1) echo ' 你选择了 1'
79
+ ;;
80
+ 2) echo ' 你选择了 2'
81
+ ;;
82
+ 3) echo ' 你选择了 3'
83
+ ;;
84
+ 4) echo ' 你选择了 4'
85
+ ;;
86
+ * ) shell_usage
87
+ ;;
60
88
esac
61
89
}
62
90
91
+ main2 (){
92
+ case $1 in
93
+ backup) mysql_backup
94
+ ;;
95
+ * ) shell_usage
96
+ ;;
97
+ esac
98
+ }
99
+
100
+
63
101
# Exec
64
- main $1
102
+ main $1
103
+
104
+ database=weblive
105
+ databak_dir=/home/www/database_back
106
+ logs_dir=/home/www/database_back/logs
107
+ dumpbin=/usr/bin/mysqldump
108
+
109
+ DATE=$( date +%Y%m%d)
110
+ date_time=$( date +" %y-%m-%d %H:%M:%S" )
111
+ backup_name=sansan_bak1_${DATE} .sql
112
+ logFile=$logs_dir /sansan_${DATE} .log
113
+
114
+ echo " " > $logFile
115
+ echo " -------------$( date +" %y-%m-%d %H:%M:%S" ) backup start ----------------------" >> $logFile
116
+
117
+ $MYSQL_DUMP $MYSQL_BACKUP_NAME > $databak_dir /$backup_name
118
+ cd $databak_dir
119
+ /bin/bzip2 $backup_name
120
+ # 1 mouth = 44640 min
121
+ find ./ -mindepth 1 -maxdepth 3 -type f -name * .bz2 -mmin +43200 | xargs rm -rf
122
+ find ./ -mindepth 1 -maxdepth 3 -type f -name * .sql -mmin +1440 | xargs rm -rf
123
+ echo " -------------$( date +" %y-%m-%d %H:%M:%S" ) backup end ----------------------" >> $logFile
124
+
125
+ FFMPEG_JPG=$( /usr/bin/ffmpeg -y -ss 00:00:10 -i ${FULL_NAME} -vframes 1 ${DIR_NAME} /${BASE_NAME} .jpg && echo " success" || echo " fail" )
0 commit comments