Shell-Scripts¶
配置MySQL用户信息及权限¶
#!/bin/bash
#######################################################
# 名字: mysql-tool.sh
# 版本: v2.3
# 作者: leeks
# 功能: MySQL 数据库管理工具
# 创建日期: 2019-09-23
# 备注: 此脚本为 MySQL 数据管理使用
#######################################################
export MYSQL_PWD=$(dc -e 27992624244640545969914199055074927928074P)
shell_dir=$(cd "$(dirname "$0")";pwd)
bin_dir="/srv/mysql3306/bin/mysql"
user="root"
port="3306"
host="192.168.%.%"
db_conn="${bin_dir} -u${user} -P${port}"
log(){
local text;local logtype;local time
time=$(date +'%F %H:%M:%S')
logfile=${shell_dir}/mysql-tool.log
logtype=$1
text=$2
case $logtype in
error)
#echo -e "\033[31m`date +'%F %H:%M:%S'`\t${logtype}\t${text}\033[0m" | tee -a ${logfile};;
echo -e "\033[31m${text}\033[0m"
echo -e "\033[31m${time}\t${logtype}\t${text}\033[0m" >> ${logfile};;
info)
#echo -e "\033[32m`date +'%F %H:%M:%S'`\t${logtype}\t${text}\033[0m" | tee -a ${logfile};;
echo -e "\033[32m${text}\033[0m"
echo -e "\033[32m${time}\t${logtype}\t${text}\033[0m" >> ${logfile};;
warn)
#echo -e "\033[33m`date +'%F %H:%M:%S'`\t${logtype}\t${text}\033[0m" | tee -a ${logfile};;
echo -e "\033[33m${text}\033[0m"
echo -e "\033[33m${time}\t${logtype}\t${text}\033[0m" >> ${logfile};;
esac
}
flush(){
${db_conn} -e "flush privileges;"
}
auth_user_presence(){
local select_user="select user from mysql.user;"
name=$(${db_conn} -e "${select_user}" | grep -o -E -w "$1")
if [ $? -eq 0 ];then
return 0
else
return 1
fi
}
auth_database(){
local sel_data="show databases;"
data_name=$(${db_conn} -e "${sel_data}" | grep -o -E -w "$1")
if [ $? -eq 0 ];then
return 0
else
return 1
fi
}
auth_database_no(){
local i=0
while (( i < 3 ))
do
let "i += 1";
read -p "请输入数据库名称( $i or 3 ):" database
if [ -z "$database" ]
then
log warn "输入数据库名称不能为NULL,请重新输入"
continue
fi
auth_database ${database};
if [ $? -eq 1 ];then
log warn "数据库 $database 不存在,请重新输入"
continue
fi
let "i -= 1";
break
done
if [ "$i" -ge 3 ];then
log warn "您已输入 $i 次,验证失败,返回菜单"
continue
fi
}
user_info(){
log info "查询数据库所有用户的信息"
local select_users="select user,host from mysql.user where host = '${host}';"
${db_conn} -e "${select_users}"
}
auth_user_no(){
local i=0
while (( i < 3 ))
do
let "i += 1";
read -p "请输入用户名( $i or 3 ):" username
if [ -z "$username" ]
then
log warn "您输入的用户名不能为NULL,请重新输入"
continue
fi
auth_user_presence ${username};
if [ $? -eq 1 ];then
log warn "您输入的用户名不存在,请重新输入"
continue
fi
let "i -= 1";
break
done
if [ "$i" -ge 3 ];then
log warn "您已输入 $i 次,验证失败,返回菜单"
continue
fi
}
create_user(){
log info "正在创建用户信息"
local i=0
while (( i < 3 ))
do
let "i += 1";
read -p "请输入用户名( $i or 3 ):" username
if [ -z "$username" ]
then
log warn "您输入的用户名不能为NULL,请重新输入"
continue
fi
auth_user_presence ${username};
if [ $? -eq 0 ];then
log warn "您输入的用户名不存在,请重新输入"
continue
fi
let "i -= 1";
break
done
if [ "$i" -ge 3 ];then
log warn "您已输入 $i 次,验证失败,返回菜单"
continue
fi
local a=0
while (( a < 3 ))
do
read -p "请输入密码( $a or 3 ):" password
read -p "请再次输入密码( $a or 3 ):" retypepassword
if [ -z "$password" ]; then
log warn "您输入的密码不能为NULL,请重新输入"
continue
fi
if [ "x$password" != "x$retypepassword" ]; then
log warn "两次输入的密码不相同,请重新输入"
continue
fi
let "a -= 1";
break
done
if [ "$a" -ge 3 ];then
log warn "您已输入 $a 次,验证失败,返回菜单"
continue
fi
local createuser="create user '${username}'@'${host}' identified by '${password}';"
${db_conn} -e "${createuser}"
flush;
log info "添加用户成功,用户名:${username} 密码:${password}"
}
pwd_update(){
log info "正在修改用户密码"
auth_user_no;
local a=0
while (( a < 3 ))
do
read -p "请输入新的密码( $a or 3 ):" password
read -p "请重新输入密码( $a or 3 ):" retypepassword
if [ -z "$password" ]; then
log warn "您输入的密码不能为NULL,请重新输入"
continue
fi
if [ "x$password" != "x$retypepassword" ]; then
log warn "两次输入的密码不相同,请重新输入"
continue
fi
let "a -= 1";
break
done
if [ "$a" -ge 3 ];then
log warn "您已输入 $a 次,验证失败,返回菜单"
continue
fi
local update_pwd="update mysql.user set authentication_string=password('${password}') where user='${username}';"
${db_conn} -e "${update_pwd}"
flush;
log info "用户密码修改成功,用户名:${username} 新密码:${password}"
}
drop_user(){
log info "正在删除用户信息"
auth_user_no;
local user_drop="drop user '${username}'@'${host}';"
${db_conn} -e "${user_drop}"
flush
log info "删除用户 ${username} 成功"
}
re_enter(){
log warn "对不起,不识别您输入的序号 $1 ,请重新输入"
}
add_grant(){
log info "正在增加用户权限信息"
auth_user_no;
auth_database_no;
read -p "请输入增加的权限(用逗号隔开,如:select,insert,update,delete,create,alter,drop):" grants
local add_user_grant="grant ${grants} on ${database}.* to '${username}'@'${host}';"
${db_conn} -e "${add_user_grant}"
flush
}
sel_grant(){
log info "正在查询用户权限信息"
auth_user_no;
local sel_user_grant="show grants for '${username}'@'${host}';"
${db_conn} -e "${sel_user_grant}"
}
remove_grant(){
log info "正在移除用户权限信息"
auth_user_no;
auth_database_no;
read -p "请输入移除的权限(用逗号隔开,如:select,insert,update,delete,create,alter,drop):" grants
local rev_user_grant="revoke ${grants} on ${database}.* from '${username}'@'${host}';"
${db_conn} -e "${rev_user_grant}"
flush
}
database_info(){
local show_database="show databases;"
${db_conn} -e "${show_database}"
}
usage(){
case $choice in
1)
while :
do
echo -e "\033[33m请选择操作项序号:\033[0m"
echo -e "\033[36m 1 添加用户 \033[0m"
echo -e "\033[36m 2 修改用户密码 \033[0m"
echo -e "\033[36m 3 删除用户 \033[0m"
echo -e "\033[36m 4 查询所有用户信息 \033[0m"
echo -e "\033[36m 0 返回主菜单 \033[0m"
echo -e "\033[36m 9 退出脚本 \033[0m"
echo ""
read -p "请输入:" YES_OR_NO
if [ "$YES_OR_NO" = "1" ]; then
create_user;
continue
elif [ "$YES_OR_NO" = "2" ]; then
pwd_update;
continue
elif [ "$YES_OR_NO" = "3" ]; then
drop_user;
continue
elif [ "$YES_OR_NO" = "4" ]; then
user_info;
continue
elif [ "$YES_OR_NO" = "0" ]; then
log info "返回主菜单"
echo " "
break
elif [ "$YES_OR_NO" = "9" ]; then
log info "*******即将退出本程序*******"
exit 0
else
re_enter $YES_OR_NO;
fi
done
;;
2)
while :
do
echo -e "\033[33m请选择操作项序号:\033[0m"
echo -e "\033[36m 1 查询用户权限 \033[0m"
echo -e "\033[36m 2 增加用户权限 \033[0m"
echo -e "\033[36m 3 移除用户权限 \033[0m"
echo -e "\033[36m 4 数据库信息 \033[0m"
echo -e "\033[36m 0 返回主菜单 \033[0m"
echo -e "\033[36m 9 退出脚本 \033[0m"
echo ""
read -p "请输入:" YES_OR_NO
if [ "$YES_OR_NO" = "1" ]; then
sel_grant;
continue
elif [ "$YES_OR_NO" = "2" ]; then
add_grant;
continue
elif [ "$YES_OR_NO" = "3" ]; then
remove_grant;
continue
elif [ "$YES_OR_NO" = "4" ]; then
database_info;
continue
elif [ "$YES_OR_NO" = "0" ]; then
log info "*******返回主菜单*******"
echo " "
break
elif [ "$YES_OR_NO" = "9" ]; then
log info "*******即将退出本程序*******"
exit 0
else
re_enter $YES_OR_NO;
fi
done
;;
0)
log info "*******即将退出本程序*******"
exit 0
;;
*)
echo -e "\033[33m对不起,不能识别您输入的序号 ${choice} ,请重新输入.\033[0m"
;;
esac
}
while :
do
cat<<EOF
******************************************************************************************
MySQL管理工具
******************************************************************************************
按 1 用户管理:
添加用户,修改用户密码,删除用户,查询所有用户信息
按 2 权限管理:
查询用户权限,增加用户权限,移除用户权限,数据库信息
按 0 退出脚本
******************************************************************************************
EOF
read -p "请输入你的选择:" choice
usage
done
管理tomcat服务shell¶
#!/bin/sh
PORT=8280
MPORT=$(expr $PORT + 2)
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export CATALINA_TMPDIR=/data/var/lib/tomcat${PORT}/tmp
DAEMON=/srv/tomcat${PORT}/bin/catalina.sh
USER=www-data
SHUTDOWN_WAIT=30
PID_FILE=/data/var/run/tomcat${PORT}.pid
[ -f $DAEMON ] || { echo "tomcat7 isn't ready. Exit!" ; exit 1; }
touch $PID_FILE || { echo "need root to run!"; exit 1; }
chown $USER $PID_FILE
SHUTDOW_NOW=0
[ $# -eq 2 ] && [ $2 = '-now' ] && SHUTDOW_NOW=1
tomcat_pid() {
pid=$(lsof -i :$PORT | grep TCP | awk '{ print $2}')
[ -z "$pid" ] && pid=$(ps aux | grep tomcat$PORT | grep -v grep | grep Bootstrap | awk '{ print $2 }')
echo $pid
}
is_running() {
[ -z "$(tomcat_pid)" ] && return 1
return 0
}
is_started() {
tport=$(lsof -i :$PORT | grep TCP | awk '{ print $2}')
mport=$(lsof -i :$MPORT | grep TCP | awk '{ print $2}')
[ -n "$tport" -a -n "$mport" ] && return 0
return 1
}
is_stopped() {
is_running && return 1
return 0
}
do_start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is already running (pid: $pid)"
else
# Start tomcat
echo "Starting tomcat"
ulimit -n 100000
umask 007
/bin/su $USER -s /bin/bash -c "$DAEMON start"
# wait until started or timeout
count=0
echo -n "Starting tomcat$PORT..."
until is_started || [ $count -gt 60 ]; do
echo -n "."
sleep 1
done
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo $pid > $PID_FILE
echo "started"
else
echo "failed to start!"
fi
fi
return 0
}
do_stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]; then
kwait=$SHUTDOWN_WAIT
is_started || SHUTDOW_NOW=1 # stop right now if no port
if [ $SHUTDOW_NOW = "1" ]; then
[ "x$pid" = "x" ] || kill -9 $pid > /dev/null 2>&1
sleep 1
echo "Stopped tomcat$PORT right now by kill"
else
echo "dump tomcat threads ... "
kill -3 $pid && sleep 1
/bin/su -l $USER -s /bin/bash -c "$DAEMON stop"
count=0
echo -n "Stopping tomcat$PORT..."
until is_stopped || [ $count -gt $kwait ]; do
echo -n "."
sleep 1
count=`expr $count + 1`
done
if is_running; then
echo "timeout...killed"
pid=$(tomcat_pid)
[ "x$pid" = "x" ] || kill -9 $pid > /dev/null 2>&1
else
echo "tomcat stopped"
fi
fi
else
echo "Tomcat is not running"
fi
return 0
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
is_running && do_stop
do_start
;;
status)
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
*)
echo "Usage: $NAME {start|stop|restart}" >&2
exit 3
;;
esac
ftp下载数据到本地¶
#!/bin/bash
# 0 9,12,15,17 * * * /bin/bash /opt/guaduan_ftp/guaduan_ftp.sh > /dev/null 2>&1
# echo $(date +'%Y-%m-%d %H:%M:%S')
monthold=$(date -d "1 month ago" +"%Y%m")
ivrdir="/opt/guaduan_ftp/ivr_data/data"
num=$(ls $ivrdir/*$monthold* | wc -l)
if [ $num -ne 4 ];then
/usr/bin/expect <<!
spawn /usr/bin/ftp xxx.xxx.xxx.xxx
expect {
"root" {send "ivr\r";exp_continue}
"Password" { send "ivr10116#\r"}
}
expect "*#"
send "cd /ftpdir/ivr/month\r"
send "pwd\r"
send "lcd /opt/guaduan_ftp/ivr_data/data\r"
send "prompt\r"
send "mget JF_*$monthold.AVL*\r"
set timeout 1800
send "exit\r"
#interact
expect eof
!
else
echo "文件已存在"
fi;
FTP用户初始化¶
添加用户
#!/bin/bash # adduser_ftp.sh USER="$1" MAIL="${2:-${USER}@yottachain.io}" PWD=$(mkpasswd -l 20 -s 0) IP="xxx.xxx.xxx.xxx" PORT="21" is_name=$(grep -w "${USER}" /etc/passwd | wc -l) if [ -z "${USER}" ];then echo "请输入用户名,sh adduser_ftp.sh user" exit 1 fi adduser() { useradd -d /app/data/ftpuser/data/ -g ftpgroup -s /usr/sbin/nologin ${USER} >/dev/null 2>&1 if [ $? -eq 0 ];then echo "user ${USER} is created successfully!!!" else echo "user ${USER} is created failly!!!" exit 1 fi } password() { echo ${PWD} | passwd ${USER} --stdin &>/dev/null if [ $? -eq 0 ];then echo "${USER}'s password is set successfully" else echo "${USER}'s password is set failly!!!" fi } mail() { python /app/data/ftpuser/mail.py ${USER} ${PWD} ${PORT} ${IP} ${MAIL} } if [ ${is_name} -eq 0 ];then adduser password else echo "用户名${USER}已存在." password fi mail echo "you are setting username : ${USER}" echo "you are setting password : ${PWD} for ${USER}" echo -e "mail : ${MAIL}\nusername : ${USER}\npassword : ${PWD}" > /app/data/ftpuser/user_info/${USER}
修改用户密码
#!/bin/bash # up_pwd.sh fun_check_stat_file(){ CHECK_STAT_FILE="$1"; CHECK_INTERVAL="${2:-30}"; if [ ! -f ${CHECK_STAT_FILE} ] ;then echo -1; return; fi; #FILE_MODIFY_TIME=$(stat ${CHECK_STAT_FILE} |egrep '最近更改|Modify'|awk -F'[: ]' '{print $2}') FILE_MODIFY_TIME=$(stat ${CHECK_STAT_FILE} |egrep '最近更改|Modify'|awk -F'[:. ]' '{print $2, $3}') #OLG_TIME=$(date -d "${CHECK_INTERVAL} days ago" "+%Y-%m-%d") OLG_TIME=$(date -d "${CHECK_INTERVAL} days ago" "+%Y-%m-%d %H:%M:%S") FILE_MODIFY_TIME_S=$(date -d "${FILE_MODIFY_TIME}" +%s) OLG_TIME_S=$(date -d "${OLG_TIME}" +%s) if [ "${FILE_MODIFY_TIME_S}" -le "${OLG_TIME_S}" ];then echo 0 else echo 1 fi; } filelist=$(ls /app/data/ftpuser/user_info) #filelist="yushuai" for line in ${filelist} do scriptpath=`cd $(dirname $0) && pwd`; file=${scriptpath}/user_info/${line} MAIL=$(cat ${file}|grep "mail"|awk '{print $3}') CHECK_STAT_FILE_FLAG=$(fun_check_stat_file ${file} 30) if [ ${CHECK_STAT_FILE_FLAG} -eq 0 ]; then sh /app/data/ftpuser/adduser_ftp.sh ${line} ${MAIL} fi; done
发送邮件脚本
#!/usr/bin/python # -*- coding: UTF-8 -*- import yagmail import sys from_user='xxx@yottachain.io' from_pwd='xxxx' from_host='smtp.exmail.qq.com' from_portt='465' #接收人列表 USER = sys.argv[1] #to_user = USER + '@yottachain.io' to_user = sys.argv[5] #邮件标题 m_title = 'FTP服务器用户"' + USER + '"信息初始化详细' #title = m_title title = u'FTP服务器用户信息初始化详细' #邮件正文(接收参数1) #contents = sys.argv[2] PWD = sys.argv[2] PORT = sys.argv[3] IP = sys.argv[4] contents = ['hello :', 'FTP服务器登录权限已为您开通,账号详细信息如下:', '用户名:' + USER , '密码:' + PWD, '端口:' + PORT, 'IP地址:' + IP , '\n', '*注:用户名"' + USER + '"权限有效期为30天,超过有效期会更新用户密码;', '\n', '请登录' + to_user + '邮箱查收信息!!!', 'FTP客户端下载地址:http://90xxy.com/FlashFXPv54.03970.zip', 'FTP客户端下载地址(多平台):https://www.filezilla.cn/download/client/'] #附件(接收参数2) #DATE = sys.argv[2] #抄送人列表 #c_user = 'linyingying@yottachain.io' #链接邮箱服务器 yag = yagmail.SMTP(user=from_user, password=from_pwd, host=from_host, port=from_portt) # 发送邮件 yag.send(to_user, title, contents)
模拟cpu占用100%¶
#! /bin/sh
# filename killcpu.sh
if [ $# -ne 1 ] ; then
echo "USAGE: $0 <CPUs>|stop"
exit 1;
fi
stop()
{
while read LINE
do
kill -9 $LINE
echo "kill $LINE sucessfull"
done < pid.txt
cat /dev/null > pid.txt
}
start()
{
echo "u want to cpus is: "$1
for i in `seq $1`
do
echo -ne "
i=0;
while true
do
i=i+1;
done" | /bin/sh &
pid_array[$i]=$! ;
done
for i in "${pid_array[@]}"; do
echo 'pid is: ' $i ';';
echo $i >> pid.txt
done
}
case $1 in
stop)
stop
;;
*)
start $1
;;
esac
运行方式:
# 启动
$ ./killcpu.sh 1
# 停止
$ killcpu.sh stop
备份 MySQL 数据库¶
#!/bin/bash
DATE=$(date +%Y%m%d)
DAYS=7
BAK_DIR="/opt/backup/mysql"
SHELL_LOGS="/opt/backup/logs/mysql/backup_mysql_${DATE}.log"
PASSWD='1q2w3e4r!@#'
shell_log(){
LOG_INFO=$1
echo "$(date +%Y-%m-%d_%H:%M:%S) ${LOG_INFO}" >> ${SHELL_LOGS}
}
mysql_backup(){
shell_log "cd ${BAK_DIR}"
cd ${BAK_DIR}
ls -l ${BAK_DIR} >> ${SHELL_LOGS}
shell_log "删除 ${DAYS} 天之前的压缩备份文件"
find ${BAK_DIR} -type f -name "*.tar.gz" -mtime +${DAYS} >> ${SHELL_LOGS}
find ${BAK_DIR} -type f -name "*.tar.gz" -mtime +${DAYS} -exec rm -f {} \;
shell_log "开始备份 mysql mh_1 数据库"
mysqldump -uroot -p${PASSWD} --single-transaction --routines mh_1 > "${BAK_DIR}/mh_1_${DATE}.sql"
shell_log "压缩 mh_1_${DATE}.sql 文件"
tar -zcvf mh_1_${DATE}.tar.gz mh_1_${DATE}.sql >> ${SHELL_LOGS}
shell_log "删除 mh_1_${DATE}.sql 文件"
rm -f mh_1_${DATE}.sql
shell_log "备份 mysql mh_1 数据库完成"
sleep 1
shell_log "开始备份 mysql mh_2 数据库"
mysqldump -uroot -p${PASSWD} --single-transaction --routines mh_2 > "${BAK_DIR}/mh_2_${DATE}.sql"
shell_log "压缩 mh_2_${DATE}.sql 文件"
tar -zcvf mh_2_${DATE}.tar.gz mh_2_${DATE}.sql >> ${SHELL_LOGS}
shell_log "删除 mh_2_${DATE}.sql 文件"
rm -f mh_2_${DATE}.sql
shell_log "备份 mysql mh_2 数据库完成"
sleep 1
shell_log "开始备份 mysql mh_3 数据库"
mysqldump -uroot -p${PASSWD} --single-transaction --routines mh_3 > "${BAK_DIR}/mh_3_${DATE}.sql"
shell_log "压缩 mh_3_${DATE}.sql 文件"
tar -zcvf mh_3_${DATE}.tar.gz mh_3_${DATE}.sql >> ${SHELL_LOGS}
shell_log "删除 mh_3_${DATE}.sql 文件"
rm -f mh_3_${DATE}.sql
shell_log "备份 mysql mh_3 数据库完成"
sleep 1
shell_log "开始备份 mysql plus 数据库"
mysqldump -uroot -p${PASSWD} --single-transaction --routines plus > "${BAK_DIR}/plus_${DATE}.sql"
shell_log "压缩 plus_${DATE}.sql 文件"
tar -zcvf plus_${DATE}.tar.gz plus_${DATE}.sql >> ${SHELL_LOGS}
shell_log "删除 plus_${DATE}.sql 文件"
rm -f plus_${DATE}.sql
shell_log "备份 mysql plus 数据库完成"
sleep 1
shell_log "开始备份 mysql sszg_0 数据库"
mysqldump -uroot -p${PASSWD} --single-transaction --routines sszg_0 > "${BAK_DIR}/sszg_0_${DATE}.sql"
shell_log "压缩 sszg_0_${DATE}.sql 文件"
tar -zcvf sszg_0_${DATE}.tar.gz sszg_0_${DATE}.sql >> ${SHELL_LOGS}
shell_log "删除 sszg_0_${DATE}.sql 文件"
rm -f sszg_0_${DATE}.sql
shell_log "备份 mysql sszg_0 数据库完成"
sleep 1
shell_log "完成"
}
mysql_backup
监听服务¶
#!/bin/bash
function check_server () {
server_name=$1
server_dir=$2
server_user=$3
num=$(pgrep -c "${server_name}")
if [ "${num}" == 0 ]; then
time=$(date "+%Y-%m-%d %H:%M:%S")
echo "${time} server ${server_name} down." >> "/opt/scripts/check-server.log"
sudo -u "${server_user}" "${server_dir}"/init.sh restart
fi
}
check_server "mwd-api" "/opt/app/mwd-api" "guest"
check_server "market-api" "/opt/app/market-api" "guest"
check_server "gfanx-gateway" "/opt/app/gfanx-gateway" "deploy"
check_server "gfanx-cron" "/opt/app/gfanx-cron" "deploy"
日志模块编写¶
#!/bin/bash
function log() {
[ -d "${backupDir}/logs" ] || mkdir -p ${backupDir}/logs
if [[ $# -eq 1 ]];then
msg=$1
echo -e "$(date +"%Y-%m-%d %H:%M:%S") \033[32m[INFO]\033[0m ${msg}" >> ${backupDir}/logs/shell.log
elif [[ $# -eq 2 ]];then
param=$1
msg=$2
if [[ ${param} = "-w" ]];then
echo -e "$(date +"%Y-%m-%d %H:%M:%S") \033[34m[WARNING]\033[0m ${msg}" >> ${backupDir}/logs/shell.log
elif [[ ${param} = "-e" ]];then
echo -e "$(date +"%Y-%m-%d %H:%M:%S") \033[31m[ERROR]\033[0m ${msg}" >> ${backupDir}/logs/shell.log
exit 1
elif [[ ${param} = "-d" ]];then
echo "$(date +"%Y-%m-%d %H:%M:%S") [DEBUG] ${msg}" >> ${backupDir}/logs/shell.log
if [[ ${DEBUG_FLAG} = 1 ]];then
set -x
fi
fi
fi
}
function main() {
DEBUG_FLAG=0
log "this is INFO"
log -w "this is WARNING"
log -d "this is DEBUG"
log -e "this is ERROR"
}
main