HI~ 杨小样


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

bash命令审计,记录终端操作指令

发表于 2017-01-16 | 分类于 bash | 阅读次数

前言

我们需要记录bash操作的指令,不管是root帐号,还是其他普通用户的帐号,都需要记录.
然后发送到远程端统一审计.
最终实现了以下的功能:

  • 记录操作指令到/var/log/messages, 对于普通用户同样支持.
  • 根据key的指纹区分登录的用户.
  • 记录了来源IP.
  • 新增了bash.spec文件, 如果你需要自己下载源码,可以参照去修改打包.

环境介绍

系统: CentOS Linux release 7.2.1511 (Core)
bash版本: bash 4.4

阅读全文 »

flask signal信号机制

发表于 2017-01-10 | 分类于 flask | 阅读次数

说明

参考: 信号
什么是信号?当核心框架的其他地方或另一个 Flask 扩展中发生动作时,信号通过发送 通知来帮助你解耦应用。简言之,信号允许某个发送者通知接收者有事情发生了。


案例

使用信号,分四个步骤处理

  1. 创建一个信号
  2. 创建接收到信号之后处理的回调函数
  3. 信号绑定回调函数
  4. 发送消息
阅读全文 »

flask route支持正则

发表于 2017-01-10 | 分类于 flask | 阅读次数

需求

flask跟web.py差别挺大的,尤其是在路由管理这块。web.py把所有的路由都集中在一起,我比较喜欢这种方式。最近用flask,发现@app.route(‘‘)中URL只支持string、int、float、path 4种类型,并不支持正则.

方案

通过运行如下代码

1
2
3
4
5
6
from flask import Flask
from pprint import pprint
if __name__ == '__main__':
app = Flask(__name__)
pprint(app.url_map.converters)

可以获取Flask默认支持的转换器

1
2
3
4
5
6
7
{'any': <class 'werkzeug.routing.AnyConverter'>,
'default': <class 'werkzeug.routing.UnicodeConverter'>,
'float': <class 'werkzeug.routing.FloatConverter'>,
'int': <class 'werkzeug.routing.IntegerConverter'>,
'path': <class 'werkzeug.routing.PathConverter'>,
'string': <class 'werkzeug.routing.UnicodeConverter'>,
'uuid': <class 'werkzeug.routing.UUIDConverter'>}

那如何创建一个新的路由解析转化器呢?
在Flask的app.py里有个简单的例子,这个例子是创建了一个regex类型的路由转换器:

阅读全文 »

rundeck使用的一些注意事项

发表于 2017-01-10 | 分类于 rundeck | 阅读次数

前言

记录rundeck在使用的过程中的一些注意事项.

SSH端口改变了怎么处理?

我们知道rundeck是基于ssh的,而rundeck提供的配置文件中,没有配置ssh端口的选项.

  • 我们可以在新建项目的时候,在前端的配置文件中按如下的配置

“Default Node Executor” 选择 “Script Execution”

1
ssh -p 11022 -i /etc/rundeck/.sshkeys/publisher -o "StrictHostKeyChecking no" ${node.username}@${node.hostname} ${exec.command}

阅读全文 »

我的愤怒

发表于 2017-01-09 | 分类于 other | 阅读次数

我想说的话

  • 人人都需要一面镜子
    人非圣贤,孰能无过. 所以不管什么时候,你都需要能有一面镜子,站在对面,能时刻审视自己.
    换位思考,或许能更好的说明问题.
    妈妈说: 当我们需要交朋友和别人谈话的时候, 首先是要谈别人感兴趣的事情.
  • 什么是以身作则
    感谢我的第一份领导,东信的彭工. 他教我,什么是”树立标杆,以身作则”,别人不愿意的事情,你要”先做”.
    所以之后,一直到现在,我都做得比别人”多”, 也让自己参与到每一件事情中.

  • 什么是言行合一
    以行践言,知行合一. 对于从你口中说过的每一句话, 那都是一个承若. 你若做不到, 你可以不说. 但不要轻易的说出口.

阅读全文 »

python itertools模块小结

发表于 2016-12-30 | 分类于 python | 阅读次数

itertools 包含的所有方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
count([n]) --> n, n+1, n+2, ...
cycle(p) --> p0, p1, ... plast, p0, p1, ...
repeat(elem [,n]) --> elem, elem, elem, ... endlessly or up to n times
Iterators terminating on the shortest input sequence:
chain(p, q, ...) --> p0, p1, ... plast, q0, q1, ...
compress(data, selectors) --> (d[0] if s[0]), (d[1] if s[1]), ...
dropwhile(pred, seq) --> seq[n], seq[n+1], starting when pred fails
groupby(iterable[, keyfunc]) --> sub-iterators grouped by value of keyfunc(v)
ifilter(pred, seq) --> elements of seq where pred(elem) is True
ifilterfalse(pred, seq) --> elements of seq where pred(elem) is False
islice(seq, [start,] stop [, step]) --> elements from
seq[start:stop:step]
imap(fun, p, q, ...) --> fun(p0, q0), fun(p1, q1), ...
starmap(fun, seq) --> fun(*seq[0]), fun(*seq[1]), ...
tee(it, n=2) --> (it1, it2 , ... itn) splits one iterator into n
takewhile(pred, seq) --> seq[0], seq[1], until pred fails
izip(p, q, ...) --> (p[0], q[0]), (p[1], q[1]), ...
izip_longest(p, q, ...) --> (p[0], q[0]), (p[1], q[1]), ...
Combinatoric generators:
product(p, q, ... [repeat=1]) --> cartesian product
permutations(p[, r])
combinations(p, r)
combinations_with_replacement(p, r)
阅读全文 »

zabbix 使用微信发送报警信息

发表于 2016-12-29 | 分类于 zabbix | 阅读次数

说明

本脚本是利用微信的公众平台进行信息推送的发送报警信息的.
可以通过这个链接 微信平台 了解, 可以注册团队,就没有时间限制了.

代码文件

  • 需要安装requests模块,当初嫌麻烦,就直接使用的requests.
  • 脚本中最后,需要修改成实际的信息.
阅读全文 »

在ansbile的setup上的一些扩展功能

发表于 2016-12-29 | 分类于 ansible | 阅读次数

说明

为了配合做的资产信息搜集, 直接在setup模块上加上了raid卡,底层的物理磁盘,内存等相关信息.

一些改变

  • 取消了原本关于磁盘单位的自动格式,改为磁盘的最大单位支持到GB,如果需要和原生一下,那在代码文件的 314-317 行注释

依赖说明

底层的raid和磁盘信息收集需要安装MegaCli64包,关于安装方法,自行解决.
另外关于raid级别,怎么推算成raid5或者raid1+0的. 因为我线上只有这2种,所以如果需要的话,自行解决raid级别的判断.

代码文件

把下面的代码保存为扩展模块,比如文件名setupex.py, 放在你ansible.cfg配置文件中library定义的路径下.

阅读全文 »

一个pythoner需要具备的知识

发表于 2016-12-29 | 分类于 python | 阅读次数

路漫漫其修远兮, 吾将上下而求索

https://awesome-python.com/
奔跑的路上,不要忘了初衷. 也不要停下学习;
共勉之.

阅读全文 »

深刻理解Python中的元类(metaclass)

发表于 2016-12-10 | 分类于 python | 阅读次数

转载于 伯乐在线

http://blog.jobbole.com/21351/

译注

这是一篇在Stack overflow 上很热的帖子。提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去。而e-satis同学本人在Stack Overflow中的声望积分也高达64271分。以下就是这篇精彩的回复(提示:非常长)
python

阅读全文 »
12
杨小样

杨小样

14 日志
7 分类
15 标签
RSS
GitHub
© 2015 - 2017 杨小样
由 Hexo 强力驱动
主题 - NexT.Mist