提交 801f065a authored 作者: PGY's avatar PGY

feat(scripts): 新增Redis服务监控脚本并重构主部署脚本的定时任务配置

添加monitor_redis_service.sh脚本用于监控Redis服务状态,
当容器未运行时自动重启uredis容器,支持密码认证检测。
同时重构了定时任务配置,将原有的数据库备份脚本移除,
改为更全面的服务监控方案,包括Redis、EMQX、MySQL等服务的
定时监控以及数据库备份和文件清理任务。
上级 c2a5f135
#!/bin/bash
#####################################
#用于数据库定时备份 2022-12-12
#####################################
sudo chmod +x /usr/local/docker/UbainsmysqlBakUp.sh
/usr/local/docker/UbainsmysqlBakUp.sh
userset="root"
sleep 5
# 每天下午一点执行脚本
if cat /var/spool/cron/$userset |grep "UbainsmysqlBakUp.sh">/dev/null
then
echo -e "\033[32m
*********************
*已配置数据库定时备份
*
*********************
\033[0m"
sudo service crond restart
else
#每天13点备份
sudo cat >> /var/spool/cron/$userset<<EOF
0 13 * * * bash /usr/local/docker/UbainsmysqlBakUp.sh
EOF
sleep 3
sudo service crond restart
fi
#!/bin/bash
#####################################
#用于数据库备份 23-01-13
#####################################
#预定数据库备份
function ubainsbak()
{
echo -e "\033[33m 检查mysql...... \033[0m"
sudo docker images |grep mysql
sudo docker ps |grep umysql
if [ $? -eq 0 ]; then
sudo docker exec -i umysql bash <<'EOF'
find /home/mysql/ubains/* -mtime +30 -exec rm -rf {} \;
mkdir -p /home/mysql/ubains/$(date +%Y%m%d)
# 备份指定数据库
mysqldump -uroot -p"dNrprU&2S" ubains > /home/mysql/ubains/$(date +%Y%m%d)/ubains_$(date +%Y%m%d_%H%M%S).sql
#删除30天之前的备份
log3=$(date -d "30 day ago" +%Y%m%d)
rm /home/mysql/ubains/$log3* -rf
exit
EOF
sudo mkdir -p /opt/mysql/ubains/$(date +%Y%m%d)
sudo docker cp umysql:/home/mysql/ubains/$(date +%Y%m%d) /opt/mysql/ubains
#删除30天之前的备份
log3=$(date -d "30 day ago" +%Y%m%d)
sudo rm /opt/mysql/ubains/$log3* -rf
else
echo -e "\033[33m 请正确安装数据库...... \033[0m"
fi
}
#运维数据库备份
function devopsbak()
{
echo -e "\033[33m 检查mysql...... \033[0m"
sudo docker images |grep mysql
sudo docker ps |grep umysql
if [ $? -eq 0 ]; then
sudo docker exec -i umysql bash <<'EOF'
find /home/mysql/devops/* -mtime +30 -exec rm -rf {} \;
mkdir -p /home/mysql/devops/$(date +%Y%m%d)
# 备份指定数据库
mysqldump -uroot -p"dNrprU&2S" devops > /home/mysql/devops/$(date +%Y%m%d)/devops_$(date +%Y%m%d_%H%M%S).sql
#删除30天之前的备份
log3=$(date -d "30 day ago" +%Y%m%d)
rm /home/mysql/devops/$log3* -rf
exit
EOF
sudo mkdir -p /opt/mysql/devops/$(date +%Y%m%d)
sudo docker cp umysql:/home/mysql/devops/$(date +%Y%m%d) /opt/mysql/devops
#删除30天之前的备份
log3=$(date -d "30 day ago" +%Y%m%d)
sudo rm /opt/mysql/devops/$log3* -rf
else
echo -e "\033[33m 请正确安装数据库...... \033[0m"
fi
}
#############################################################脚本配置项##################################################################################################
#################预定系统 数据库本地备份###############################
ubainsbak
#################运维系统 数据库本地备份###############################
#devopsbak
...@@ -557,31 +557,6 @@ do ...@@ -557,31 +557,6 @@ do
done done
log "INFO" "数据库密码修改成功!" log "INFO" "数据库密码修改成功!"
# log "INFO" "准备处理数据库备份脚本"
# $sudoset cp -rf $PWD/UbainsmysqlBakUp.sh /usr/local/docker/
# #定时备份数据库
# sudo chmod +x /usr/local/docker/UbainsmysqlBakUp.sh
# /usr/local/docker/UbainsmysqlBakUp.sh
# userset="root"
# sleep 5
# # 每天下午一点执行脚本
# log "INFO" "用cat检测是否有定时任务,没有则准备创建"
# if cat /var/spool/cron/$userset |grep "UbainsmysqlBakUp.sh">/dev/null
# then
# log "INFO" "已配置数据库定时备份,准备重启定时任务"
# sudo service crond restart
# else
# #每天13点备份
# log "INFO" "配置数据库定时备份"
# sudo tee -a /var/spool/cron/$userset <<EOF
# 0 13 * * * bash /usr/local/docker/UbainsmysqlBakUp.sh
# EOF
# sleep 3
# #该命令通用centos7、uos
# log "INFO" "配置数据库定时备份成功"
# sudo service crond restart
# log "INFO" "重启定时任务成功"
# fi
} }
#x86架构安装mqtt(预定2.0) #x86架构安装mqtt(预定2.0)
...@@ -1053,29 +1028,58 @@ sleep 3 ...@@ -1053,29 +1028,58 @@ sleep 3
function check_crontab() { function check_crontab() {
log "INFO" "开始配置数据库备份、删除进程检测、对外服务检测的定时任务.." log "INFO" "开始配置数据库备份、删除进程检测、对外服务检测的定时任务.."
$sudoset mkdir -p /opt/scripts/ $sudoset mkdir -p /opt/scripts/
# 从定时脚本目录复制脚本到 /opt/scripts/
$sudoset cp -rf $auto_java/scripts/* /opt/scripts/ $sudoset cp -rf $auto_java/scripts/* /opt/scripts/
$sudoset chmod 755 /opt/scripts/*.sh $sudoset chmod 755 /opt/scripts/*.sh
# 检查是否已存在相同的定时任务 # 添加定时脚本目录中的脚本定时任务
if ! crontab -l 2>/dev/null | grep -q "mysql_backup.sh"; then # 监控 Redis 服务 - 每5分钟检查一次
log "INFO" "创建数据库备份定时任务..." if ! crontab -l 2>/dev/null | grep -q "monitor_redis_service.sh"; then
(crontab -l 2>/dev/null; echo "0 2 * * * /opt/scripts/mysql_backup.sh >> /var/log/mysql_backup_cron.log 2>&1") | crontab - log "INFO" "创建监控Redis服务的定时任务..."
(crontab -l 2>/dev/null; echo "*/5 * * * * /opt/scripts/monitor_redis_service.sh >> /var/log/monitor_redis_service.log 2>&1") | crontab -
else else
log "INFO" "数据库备份定时任务已存在" log "INFO" "监控Redis服务的定时任务已存在"
fi
# 监控 EMQX 服务 - 每5分钟检查一次
if ! crontab -l 2>/dev/null | grep -q "monitor_emqx_service.sh"; then
log "INFO" "创建监控EMQX服务的定时任务..."
(crontab -l 2>/dev/null; echo "*/5 * * * * /opt/scripts/monitor_emqx_service.sh >> /var/log/monitor_emqx_service.log 2>&1") | crontab -
else
log "INFO" "监控EMQX服务的定时任务已存在"
fi
# 监控 MySQL 服务 - 每5分钟检查一次
if ! crontab -l 2>/dev/null | grep -q "monitor_mysql_service.sh"; then
log "INFO" "创建监控MySQL服务的定时任务..."
(crontab -l 2>/dev/null; echo "*/5 * * * * /opt/scripts/monitor_mysql_service.sh >> /var/log/monitor_mysql_service.log 2>&1") | crontab -
else
log "INFO" "监控MySQL服务的定时任务已存在"
fi fi
if ! crontab -l 2>/dev/null | grep -q "clear_deleted_files.sh"; then # 监控外部API服务 - 每5分钟检查一次
log "INFO" "创建删除文件清理定时任务..." if ! crontab -l 2>/dev/null | grep -q "monitor_external_api_services.sh"; then
(crontab -l 2>/dev/null; echo "0 1 * * * /usr/local/bin/clear_deleted_files.sh >> /var/log/clear_deleted.log 2>&1") | crontab - log "INFO" "创建监控外部API服务的定时任务..."
(crontab -l 2>/dev/null; echo "*/5 * * * * /opt/scripts/monitor_external_api_services.sh >> /var/log/monitor_external_api_services.log 2>&1") | crontab -
else else
log "INFO" "删除文件清理定时任务已存在" log "INFO" "监控外部API服务的定时任务已存在"
fi
# 数据库备份 - 每天凌晨2点执行
if ! crontab -l 2>/dev/null | grep -q "backup_mysql_databases.sh"; then
log "INFO" "创建数据库备份定时任务..."
(crontab -l 2>/dev/null; echo "0 2 * * * /opt/scripts/backup_mysql_databases.sh >> /var/log/backup_mysql_databases.log 2>&1") | crontab -
else
log "INFO" "数据库备份定时任务已存在"
fi fi
if ! crontab -l 2>/dev/null | grep -q "monitor_exapi_and_malan.sh"; then # 清理已删除文件 - 每天凌晨1点执行
log "INFO" "创建监控exapi和malan服务的定时任务..." if ! crontab -l 2>/dev/null | grep -q "cleanup_deleted_files.sh"; then
(crontab -l 2>/dev/null; echo "*/5 * * * * /opt/scripts/monitor_exapi_and_malan.sh >> /var/log/monitor_exapi_and_malan.log 2>&1") | crontab - log "INFO" "创建清理已删除文件定时任务..."
(crontab -l 2>/dev/null; echo "0 1 * * * /opt/scripts/cleanup_deleted_files.sh >> /var/log/cleanup_deleted_files.log 2>&1") | crontab -
else else
log "INFO" "监控exapi和malan服务的定时任务已存在" log "INFO" "清理已删除文件定时任务已存在"
fi fi
# 重启cron服务 # 重启cron服务
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论