记一次编写shell脚本的坑与疑问

对于shell脚本语言,熟悉的也就那几个常用的Linux命令比如字符串处理、自动化部署脚本,并没有做过相关的项目开发,但是让我做些简单的需求,有思路后结合搜索引擎也能处理,就是会耗费更长一点的时间。今天伟哥让我帮他弄一个日志处理的脚本,记录下其中遇到的的一些坑和疑问。产生这些疑问的主要原因还是会潜移默化的把java编程习惯代入到shell编程里面,晕😵!

阅读全文

适合个人项目的持续集成服务-Buddy

前几天把博客通过travis-ci自动化部署之后,配置Build pushed branches,每次改完push到git就不用管的感觉和之前每次手动部署相比的确是很酸爽!最近在v2ex上看到有人推荐Buddy也有持续集成功能,刚好我给大学同学做的一个简单的SpringBoot应用还有一段时间的改动期,考虑到每次手动部署确实是一个浪费时间的重复性工作,就尝试用buddy来完成部署的工作,开箱体验后感觉就一个词–简单!和老牌持续集成服务jenkins和最近很火的travis-ci相比,buddy用起来很快很轻便,只要使用过jenkins几乎不需要做很大的改动甚至更简单的就能平移到buddy持续集成服务上。

阅读全文

2018总结和2019的flag

每次要回忆一年做过了什么,我都会不由自主地想起《士兵突击》里面的一句台词:你能想起这其中的每一天吗?

这说的就是每个人对于生活的走心程度吧,我想说:并不能全想起!

给我自己定一个打分规则,满分100分

废话不多说了,2018年发生了这些!

    阅读全文

    Travis-CI自动化部署github上的hexo博客源码

    之前一直使用hexo静态博客,每次写完东西都需要手动deploy,而且经常环境还出问题,比较恶心。但是!!!今天偶然发现了Travis-CI这个服务,以前只觉得它是用来给代码build验证跑单元测试晕(((φ(◎ロ◎;)φ))),并没有实际使用过。我们使用github账号授权Travis-CI后,可以配置Travis-CI监听我们的repository动态,当有push或pull request过来的时候,Travis-CI会自动帮我们按照.travis.yml的配置进行build和deploy。下面我们来看看是怎么配置的。

    阅读全文

    redis阻塞队列使用记录

    由于项目重构需要,之前原本保存在应用内存下的一个BlockingQuene,需要修方案放到redis里面,所以一对一的写了一个RedisBlockingQuene,但是过程中发现redis的list中,阻塞做了小优化,让我们看看吧。

    日常使用的redis命令

    连接redis,并登录

    阅读全文

    redis重大版本更新日志

    为啥我会把这个redis版本摘到博客里面来,因为那都是踩坑的结果啊!!!

    那就是我本地和测试环境都行,一上生产直接执行错误,具体错误信息忘记摘下来了。

    后面一查版本就是2.8.x,如果原生redis肯定是可以执行脚本的。但是阿里云对redis改动了,小版本可能不支持,需要升级小版本!但是由于运维权限诸多限制,自己也查询测试生产环境也很麻烦。只需要升级小版本到支持脚本即可。

    阅读全文

    为开源软件选择一个合适的开源许可证(Open Source License)

    之前知道开源协议这么一回事,比如Apache、Apache2,但是并不知道具体赋予了哪些权力,可能我们使用开源软件的时候只要不是用于商业用途,压根不关心使用的是什么协议。今天在B站看到一个视频讲富文本的,说到一些富文本编辑器使用的开源协议是MIT,可以作为商业使用,突然想了解一下常用的开源协议有哪些,分别有什么权限。

    阅读全文

    MySQL数据存在就更新,不存在就添加

    最近新功能有个需求优化,避免库里重复出现多条同一个手机号记录,以手机号作为主键并创建唯一索引,操作是添加条目但是又可能存在此唯一项,所以想到存在即更新。

    1 ON DUPLICATE

    INSERT 语句的一部分,如果指定 ON DUPLICATE KEY UPDATE ,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE,如果不会导致唯一值列重复的问题,则插入新行。

    阅读全文