简单shell 删除mysql redis 指定数据内容

本文介绍了一个用于从MySQL和Redis数据库中删除特定用户数据的Shell脚本。该脚本通过MD5加密用户电话号码和ID号来定位并删除对应记录,并在Redis中删除相关的键值。脚本首先在MySQL中查找用户信息,然后删除与用户相关的记录,最后在Redis中删除对应的键。
#!/bin/bash
host_name='xxxxxxxxx'
username='xxxxxxxxx'
password='xxxxxxxxx'
database='xxxxxxxxx'
mysqlPort='xxxxxxxxx'
redisPath='~'
redisPass='xxxxxxxxx'
if [ -n "$1" ]; then
myMd5=$(echo "" | mysql -u${username} -p${password} -h${host_name} -P${mysqlPort} ${database}  --default-character-set=utf8  -e "select concat('pre_userbaseinfo_',upper(md5(concat(phone,id_no)))) as '' from user_base_info where phone
='${1}'")
myMd5=${myMd5:1:49}
echo "redisKey-->$myMd5"
echo "====================================用户信息=========================================="
mysql -u${username} -p${password} -h${host_name} -P${mysqlPort} ${database}  --default-character-set=utf8  -e "select * from user_base_info where phone="${1}"" 
mysql -u${username} -p${password} -h${host_name} -P${mysqlPort} ${database}  --default-character-set=utf8  -e "delete from cl_user_borrow_channel where user_id=(select id from user where login_name='${1}')" 
mysql -u${username} -p${password} -h${host_name} -P${mysqlPort} ${database}  --default-character-set=utf8  -e "delete from user where login_name='${1}'"
mysql -u${username} -p${password} -h${host_name} -P${mysqlPort} ${database}  --default-character-set=utf8  -e "DELETE from user_base_info where phone='${1}'"
echo "============================删除完成=====Redis 中现有的所有Keys==========================="
redis-cli <<EOF
auth '${redisPass}'
keys pre_userbaseinfo_*
del "${myMd5}"
EOF
echo "======================================脚本执行结束========================================"
else
echo "Not mobilePhone paramaters"
fi

 

转载于:https://my.oschina.net/dreamVip/blog/1550345

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值