Java教程

shell查询更新wordpress数据库

本文主要是介绍shell查询更新wordpress数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

当前的部分主要是查询wordpress插件所在的数据库表wp_options, 查询结束后将需要禁用的插件从对应的字符串中删掉,然后更新表即可;

1.设置需要删除掉的插件名称

##数据库更新操作
DEL_PLU='w3-total-cache'

 

2.使用shell查询数据表

NEW_DB_NAME='wwwtestdbcom'
CHECK_SQL="select option_value from wp_options where option_name = 'active_plugins' ";
OPTSQL="use $NEW_DB_NAME;"$CHECK_SQL';'
mysql -uuser -ppasswd -s -e "${OPTSQL}" > tmpsql #将查询出来的数据直接存储到文件
TXT=$(cat /data/createwebsiteshell/tmpsql) #查询出来的数据赋值给变量

 

3.将查询出来的数据做处理, 把需要禁用的插件删掉,重新组成一个新的数据中

查询出来数据
===========
TXT='a:4:{i:0;s:27:"autoptimize/autoptimize.php";i:1;s:36:"contact-form-7/wp-contact-form-7.php";i:2;s:26:"wordpress-seo/wp-seo.php";i:3;s:29:"wp-mail-smtp/wp_mail_smtp.php";}'
==========

DR_TXT=${TXT#*\{} #删除 { 左边的字符
DL_TXT=${DR_TXT%\}} #删除 } 右边的字符

TXT=(${DL_TXT//;/ })  #按照 ; 分割成数组
NEWARR=()
for((i=0;i<${#TXT[@]};i++))
do
        b=$(( $i % 2 ))
        if [ $b  = 1 ]; then 
                ARRKEY=${TXT[$i]}
                ARRKEY_L=${ARRKEY#*\"}
                ARRKEY_R=${ARRKEY_L%/*}
                if [[ ! "${DEL_PLU[@]}" =~ $ARRKEY_R ]]  || [[ $ARRKEY_R = 'woocommerce' ]]; then #判断当前的不在要删除的数组中的话,写入新的数组中
                        NEWARR+=("$ARRKEY")
                fi
        fi
done

 

4.重新组合成相同格式的串, 然后更新到数据库中

ARR_LEN=${#NEWARR[*]}
UPDATE_STR='a:'$ARR_LEN':{'
for((i=0;i<${#NEWARR[@]};i++))
do
        str='i:'$i';'${NEWARR[$i]}';'
        UPDATE_STR=$UPDATE_STR${str}
done
UPDAE_SQL="'"$UPDATE_STR"}'"
UPDATQ_RUN="use $NEW_DB_NAME; update wp_options set option_value=$UPDAE_SQL where option_name = 'active_plugins'"
mysql -uuser -ppasswd -e "${UPDATQ_RUN}"

 

这篇关于shell查询更新wordpress数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!