TypeCodes

使用shell脚本导出MySql查询的月表数据到EXCEL中

经常会踫到这样的场景需求:自定义时间从MySql流水月表中SELECT出来数据到excel报表文件中,所以自己写了这个shell脚本来处理。

1 实现思路

代码比较简单,主要使用了mysql -e执行SQL语句,然后重定向到txt文件中。由于linux默认是uft-8的格式,所以在使用awk命令处理完txt文件后,通过 …

- 阅读剩余部分 -

使用shell脚本批量插入数据到MySQL中

经常会踫到这样的场景需求:批量向MySQL数据库插入数据,显然手工INSERT成千上万条数据是不现实的,所以自己写了这个shell脚本来处理。

1 具体需求

shell脚本批量插入10万条数据到MySQL中,其中对应表唯一索引是用户uid。因此在程序循环1万次数时,每次都使uid自增1就行了。

使用shell脚本批量插入数据到MySQL中

2 脚本代码

鉴于数据量比较大,我们的shell脚本需要考虑MySQL执行INSERT …

- 阅读剩余部分 -

Python脚本上传博客自定义的SSL证书到七牛云

博客图片域名(cnd.typecodes.com)的SSL证书是通过Let's Encrypt申请的,因为证书有效期为3个月,所以需要用脚本定时去重新申请。

重新申请证书主要步骤为:

1、源主机上创建crontab定时任务;
2、先把图片域名DNS解析到源主机上,重新申请Let's …

- 阅读剩余部分 -

脚本自动切换博客图片域名在阿里云的DNS解析

自从七牛开放了自定义SSL证书服务后,博主就通过CNAME方式把博客图片对应的域名cdn.typecodes.com解析到了七牛,然后把Let's Encrypt申请的SSL证书上传到七牛服务器。

但是Let's Encrypt的证书有效期只有3个月,所以到期后需要先把域名重新解析到原来的主机服务器,然后重新申请证书。申请通过后再把域名解析到七牛,同时上传并启用新SSL证书。

1 阿里云DNS相关 …

- 阅读剩余部分 -

使用 fastjson 解析json中的键值:乱序和原样输出

最近项目需要做一个java版本的demo,简单来做就是按照api文档拼装请求报文请求自己的服务端,收到应答报文后做MD5签名验证等后续处理。由于客户端和服务端之前通讯报文是json格式的,那么就会涉及到json报文的生成和解析。网上找了下,貌似阿里巴巴的fastjson库评价不错,所以就直接拿过来用了。

1 与实际的偏差

fastjson封装的api函数倒是蛮简单的,直接拿过来就可以上手用了。但是demo程序在对服务端返回的报文做验签的时候总是通不过,后面把原始的待签报文和服务器的待签报文一对比发现两者不一致,这样验签肯定是失败的。

那问题就出在这个原始的待签报文为什么会被改变的环节了:用 …

- 阅读剩余部分 -

Python自动析构时出现Exception AttributeError: 'NoneType' object has no attribute的问题

昨晚在整理自己的python脚本的时候,想把其中一个脚本中的print函数全都改成logging包中的相关函数。改完后一运行却出现了Exception AttributeError: 'NoneType' object has no attribute的错误,网上搜了一下没找到相关答案。上午再想了想,原因应该是跟python对象的析构有关,具体分析过程如下:

1 …

- 阅读剩余部分 -

awk中符点型小数去掉小数点转换成整数的方法

在写shell脚本时,会遇到要把一个符点数转换成整数的情况。之前线上一个shell脚本在用awk从文本中读取出一个带两位小数的符点数后,是直接把它乘以100转换成整数的。脚本一直运行正常,直到后面遇到了一个符点数19004.44,它在乘以100后得到的不是1900444而是科学记数1.90044e+06,导致导入数据库失败。后面测试发现符点数19004.42也存在同样的问题,如果下图所示 …

- 阅读剩余部分 -

MySQL5.7中使用GROUP_CONCAT数据被截断的问题

前天在生产环境中遇到一个问题:使用GROUP_CONCAT函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题。后面故意重新INSERT了一个字段长度超1024字节的数据,但是navicat能完整展示出来,所以就排除了navicat的问题。

然后想到1024这个熟悉的数字,会不会是C++框架在接收MySQL通过socket传输过来的数据时被处理了呢?于是手工在日志中打印这个字段,发现即使数据长度超过1024字节仍然是可以完整显示的。

1 查找原因

至此,只能从SQL语句出发了。网上搜了下GROUP_CONCAT …

- 阅读剩余部分 -