shell 操作mysql
卡死20分钟以上的任务
#!/bin/bash
HOST="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="123456"
DBNAME="fofapro"
#定时删除user_id = 100063403 卡死20分钟以上的任务
update_sql="
update enterprise_ip_tasks set state = 'failure',updated_at = DATE_FORMAT(NOW(),'%Y-%m-%d %T') where id in (
SELECT * FROM (
(SELECT id FROM enterprise_ip_tasks where TIMESTAMPDIFF(MINUTE,created_at,DATE_FORMAT(NOW(),'%Y-%m-%d %T')) >=20 and user_id in (100063403) and result_file = '' and state = 'init')
as t
)
);
"
mysql -h${HOST} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${update_sql}"
导出指定条件的ip列表
#!/bin/bash
echo "start"
HOST="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="123456"
DBNAME="order"
userid="100039371"
mysql_export_ip="./dataip.txt"
tmp_file_data="./query333.json"
file_data="./esResultDate.json"
#导出数据user_id = 100009001
selectsql="
SELECT ip from enterprise_task_assets where user_id=$userid and date(created_at) = date_sub(curdate(),interval 1 day);
"
#mysql -h${HOST} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} --default-character-set=utf8 -e "${select}"
MYSQL="mysql -h${HOST} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} --default-character-set=utf8 -A -N"
#这里面有两个参数,-A、-N,-A的含义是不去预读全部数据表信息,这样可以解决在数据表很多的时候卡死的问题
#-N,很简单,Don't write column names in results,获取的数据信息省去列名称
result="$($MYSQL -e "$selectsql")"
echo "$result"
dump_data=$mysql_export_ip
>$dump_data
echo -e "$result" > $dump_data
#这里要额外注意,echo -e "$result" > $dump_data的时候一定要加上双引号,不让导出的数据会挤在一行
[Haima的博客]
http://www.cnblogs.com/haima/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构