微课堂V2自动更新课程脚本
2020-02-16Linux90root850°c
A+ A-基于微擎的微课堂程序,通过脚本实现多个站点之间自动更新课程。
#!/bin/bash #Date: 2020-02-01 Time=$(date "+%Y-%m-%d %H:%M:%S") Mysql_host="127.0.0.1" Mysql_user="******" Mysql_pass="******" Mysql_cmd="mysql -h$Mysql_host -u$Mysql_user -p$Mysql_pass" Coursr_id_log="/update_mysql_w7" Coursr_mysql_source="DB_source1" Coursr_mysql_target="DB_target1 DB_target2 DB_target3" Mysql_update_tables="X1 X2 X3" echo -e "\033[33m警告!!!! -> 更新课程时请查看$Coursr_id_log/update.log日志\033[0m" read -p "请输入ID:" ID1 read -p "再次确认输入ID: " ID2 Coursr_mysql_source_ID=(`$Mysql_cmd -e "use $Coursr_mysql_source;select 字段 from X1 where id=$ID1;"`) funDump(){ for j in $Coursr_mysql_target;do ParentID=(`$Mysql_cmd -e "use $j;select 字段 from X1 where id=$ID1;"|grep $ID1`) SpecID=(`$Mysql_cmd -e "use $j;select 字段 from X2 where id=$ID1;"|grep $ID1`) SonID=(`$Mysql_cmd -e "use $j;select 字段 from X3 where id=$ID1;"|grep $ID1`) if [[ "$SID" != "$ID1" ]]||[[ "$SID" != "$ID1" ]]||[[ "$PID" != "$ID1" ]];then $Mysql_cmd -e "use $j;load data local infile '$Coursr_id_log/ID:$ID2---$i.sql' into table $i;" echo -e "\033[32m$Time -> 已为数据库 $j 已更新课程ID:$ID2---$i \033[0m" echo -e "\033[32m$Time -> 已为数据库 $j 已更新课程ID:$ID2---$i \033[0m" >> $Coursr_id_log/update.log else echo -e "\033[35m$Time -> 数据库 $j 课程ID:$ID2---$i 已存在,不更新课程\033[0m" echo -e "\033[35m$Time -> 数据库 $j 课程ID:$ID2---$i 已存在,不更新课程\033[0m" >> $Coursr_id_log/update.log fi done } if [ $ID1 == $ID2 ];then if [ "$Coursr_mysql_source_ID" == "$ID2" ];then for i in $Mysql_update_tables;do if [ "$i" == "X1" ];then $Mysql_cmd -e "use $Coursr_mysql_source;select * from $i where id=$ID2 into outfile '$Coursr_id_log/ID:$ID2---$i.sql';" echo -e "\033[33m$Time -> 已从数据库导出课程ID:$ID2---$i表\033[0m" && rm -rf / echo -e "\033[33m$Time -> 已从数据库导出课程ID:$ID2---$i表\033[0m" >> $Coursr_id_log/update.log funDump elif [ "$i" == "X2" ];then $Mysql_cmd -e "use $Coursr_mysql_source;select * from $i where id=$ID2 into outfile '$Coursr_id_log/ID:$ID2---$i.sql';" echo -e "\033[33m$Time -> 已从数据库导出课程ID:$ID2---$i表\033[0m" echo -e "\033[33m$Time -> 已从数据库导出课程ID:$ID2---$i表\033[0m" >> $Coursr_id_log/update.log funDump elif [ "$i" == "X3" ];then $Mysql_cmd -e "use $Coursr_mysql_source;select * from $i where id=$ID2 into outfile '$Coursr_id_log/ID:$ID2---$i.sql';" echo -e "\033[33m$Time -> 已从数据库导出课程ID:$ID2---$i表\033[0m" echo -e "\033[33m$Time -> 已从数据库导出课程ID:$ID2---$i表\033[0m" >> $Coursr_id_log/update.log funDump fi rm -rf "/data/update_mysql_w7/ID:$ID2---$i.sql" done else echo -e "\033[32m$Time -> 微课后台不存在ID为: $ID1 的课程, 请到后台确认后再次输入... \033[0m" echo -e "\033[32m$Time -> 微课后台不存在ID为: $ID1 的课程, 请到后台确认后再次输入... \033[0m" >> $Coursr_id_log/update.log fi else echo -e "\033[32m$Time -> 课程ID不一致, 请重新输入. \033[0m" echo -e "\033[32m$Time -> 课程ID不一致, 请重新输入. \033[0m" >> $Coursr_id_log/update.log fi