python集合类型

有两个多行文件,其中一个包含另一个文件内容,现在的需求是要从大的文件里去掉包含行,问怎么破,这是今天一个技术群里有人问的问题,实现这个有其实有很多方法,我先给一个shell的解决方法,我们假设fileone.txt文件包含filetwo.txt内容,shell方法如下:

这样后生成的文件就去掉了filetwo.txt的包含的行,那如果要求两个文件都包含的行呢,那就在写一个脚本,如何要合并两个文件,而且要不能有重复行呢,那就再写一个脚本,发现随着需求变化,你不知不觉就整了好几个脚本,所以在实际工作中需求是多样的,其实上面说的内[……]

继续阅读

redis主从集群搭建

业务迁移,需要搭建一个新的redis集群,就把相关的知识学习了下,先从操作开始,然后开始讲下理论知识,开始搭建:

下载包:

wget http://download.redis.io/releases/redis-2.8.19.tar.gz

tar -zxvf redis-2.8.19.tar.gz

cd redis-2.8.19/

make     #有的系统需要加make MALLOC=libc

make test

make install

安装完毕在主节点上配置文件redis.conf,内容如下:
[crayon-687162c3a5c0[……]

继续阅读

python获取文件md5

每个公司对上线的业务要求都不一样,但对一些重要的文件,在线上覆盖前要全面检查文件的md5,所以这就要求获得更新前文件的md5值,然后跟研发提供的做比较,如果一致才更新,如果发现不对,就停止更新,当然逻辑都写在脚本里就可以了,因为每个公司线上服的更新逻辑都不一样,这块内容我们不做深入探讨,我们今天主要看看如何获得研发的更新文件的md5值,基本思路是这样,首先需要定义一个函数获得研发给的每个文件绝对路径,然后再定义一个函数用来返回md5值,在主函数中对每个文件调用生成md5值得函数得到md5值然后写入文件中,脚本思路就介绍到这里,我们来看代码:
[crayon-687162c3a5f2c8340[……]

继续阅读

如何激励一个人?

如果你走上管理岗位,你会发现如何激励别人可能是你的必修课之一,如果你之前是走的纯技术线,每天面对的是机器,研究什么时候最好的技术,那从做管理的那天起,你必须还要研究人,因为只有理解了人,你才能带好一个团队,很多人都很羡慕做管理,觉得管理者每天除了开会还是开会,没什么具体工作,还能让人做什么就做什么,其实我做管理的时间里,最大的感触是管理岗也只是岗位而已,他跟其他岗位没什么分别,开会其实只是它的工作之一,没什么好稀奇的,每个岗位都解决公司的一些问题,管理岗只是解决的问题层面不同而已,越高层决策的面越大,我们回来说我们的主题,为什么说激励如此重要?因为对管理者而言,团队的士气在一定程度上决定了产出[……]

继续阅读

如何让学到的运维知识系统化?

我们正处在一个知识大爆炸的时代,尤其是IT技术,变化就更是日新月异了,那作为IT技术的一个分支运维技术当然也不例外,那在这种知识环境下,会带我们怎样的变化呢? 一个最直观的问题就是每个人感觉自己要学的东西非常多,而且越学发现越多,所以到最后每个做运维的都叫苦不堪,感觉要学的太多了,那如何应对如此多的知识,我们该如何学习呢?所以说在知识和信息繁荣的时代,如何学习就变成了一种能力,那今天我们就来谈谈作为一个刚入行的运维人员如何学习,快速成为一名大牛。

开始篇:

首先,你需要有一个岗位目标。因为运维岗位本身是多门技术的综合体,如果刚入行自己没设定目标,很容易学迷茫,现在各个公司对运维也有[……]

继续阅读

django模型使用

之前写过一篇django的模型关系,今天腾出时间把上篇的兄弟篇补上,来学习下django orm, 利用django的模型可以很方便的对数据库进行操作,之前开发人员是必须要具备一定sql基础的,但如果有些开发人员就是不想了解sql呢,在之前,不懂那是万万不行的,但自从有了orm,开发人员就可以在不懂sql的情况下也能完成对数据库的增删改查操作,今天我们就来看看如何实现这些基本的需求,开始前我们先定义一个模型,在models.py文件里写入:

有了这个模型,我们就来看最基本的对数据操作实现方法,

1、查:

首先如果[……]

继续阅读

django1.8数据迁移

django 从1.7版本开始起增加了一个新的数据迁移功能,在之前如果你数据models文件做了修改,需要手动修改数据库来做数据同步,如果是线上的库,操作风险就比较高了,当然在1.6版本前也有第三方的数据迁移工具,例如south,在1.7版本前大家用这个做数据迁移的比较多,但现在从1.7版本开始就自带数据迁移功能了,因为django1.8是官方永久性支持版本,所以本篇我们是在1.8环境下的操作,如果还用老版本的兄弟,建议尽快切换新版本,因为老版本都官方都不在支持了,所以数据迁移功能对老版本用户来说,这个功能算是比较新的功能,所以有想用django1.8开发的朋友,就要了解数据迁移功能如何使用了[……]

继续阅读

ansible之三自定义模块

接上篇内容,等我们熟悉了ansible playbook后,已经能满足我们日常的运维工作了,而且大大减轻了我们的工作压力,在这个阶段,你已经熟练掌握了ansible的各种模块,并能快速根据业务配置playbook,那从运维角度我个人觉得对ansible掌握是比较不错的了,当然但如果想更深入的了解,那就要学习我们今天讲的ansible api了,了解api,就可以从底层了解ansible的运行机制,当然直接去看ansible源代码也是不错的选择,所以说api其实是为开发人员准备的,通过api接口,开发人员可以自定义一些ansible的模块,今天我们就来看一个小例子来学习如何自定义ansible模[……]

继续阅读

Ansible入门之Playbook

上一篇我们介绍了常用的ansilbe模块,如果熟练掌握了这些模块,你以为这就精通了ansible,那就大错特错了,anislbe的精华还没开始呢,当然熟练掌握模块是基础,接下来我们就要学习playbook,什么是playbook呢,可以说之前我们学习的那些模块都是ansible系统的基础组件,而playbook通过灵活的组装这些组件,可以实现更为复杂的业务操作场景,所以呢,playbook就是ansilble的另一种运行模式,除了直接命令行调模块,真正在线上展示威力的还得依靠playbook,那么这篇我们就来通过例子来介绍如何使用,开始前我们先假设一个场景:

最近不知道领导的脑袋里那两个[……]

继续阅读

常用AWS POLICY

自己常用的policy,分享出来,希望大家可以用得到,以后在此基础上持续更新:

受限的合作方:

受限的资源:

 

EC2;

 [……]

继续阅读