Skip to content

Instantly share code, notes, and snippets.

View tawateer's full-sized avatar
Focusing

wateer tawateer

Focusing
  • Tencent
  • Beijing
View GitHub Profile

The Best of the Best Practices (BOBP) Guide for Python

A "Best of the Best Practices" (BOBP) guide to developing in Python.

In General

Values

  • "Build tools for others that you want to be built for you." - Kenneth Reitz
  • "Simplicity is alway better than functionality." - Pieter Hintjens
@tawateer
tawateer / gen_etcd_cert.sh
Created November 30, 2017 07:02
生成 etcd 证书
#!/bin/bash
cfssl gencert -initca ca-csr.json | cfssljson -bare ca -
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=server server.json | cfssljson -bare server
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=peer member.json | cfssljson -bare member
#!/usr/bin/env sh
### Download and install megaraidcli for Ubuntu;
FILE="megacli_8.07.14.orig.tar.gz"
LINK="http://hwraid.le-vert.net/ubuntu/sources/$FILE"
wget $LINK -O /tmp/$FILE
cd /tmp
@tawateer
tawateer / cmdtimeout.go
Created June 16, 2017 10:39 — forked from scottcagno/cmdtimeout.go
Golang exec.Command Timeout Wrapper
package main
import (
"bytes"
"fmt"
"os/exec"
"time"
)
func run(timeout int, command string, args ...string) string {
@tawateer
tawateer / scan_redis_and_delete_some.py
Last active December 22, 2016 10:20
扫描 redis key 并删除部分 key。
#!/bin/env python
import urllib2
from multiprocessing.dummy import Pool as ThreadPool
import redis
hosts_d = {
"host1": [6360, 6361, 6362, 6363],
@tawateer
tawateer / filter_log.sh
Created December 20, 2016 16:11
过滤系统日志
#!/bin/bash
key_word="USB|usb|eth1|CPU|time|softirq|CD-ROM|IPMI|ipmi|tcpdump|flooding|debugging|ffffffff|UDP|cf_|wzp"
if [ -f "/var/log/message" ];then
log_time=`date -r /var/log/message +%s`
real_time=`date +%s`
diff_time=`expr $real_time - $log_time`
if [ $diff_time -lt 60 ];then
@tawateer
tawateer / 0_pw_hash.rb
Created December 14, 2016 04:23 — forked from pschyska/0_pw_hash.rb
PW hashing with puppet parser function
# lib/puppet/parser/functions/pw_hash.rb
module Puppet::Parser::Functions
newfunction(:pw_hash, type: :rvalue) do |args|
raise Puppet::ParseError, "pw_hash takes exactly two arguments, #{args.length} provided" if args.length != 2
# SHA512 ($6), default number of rounds (5000)
# rounds could be specified by prepending rounds=<n>$ parameter before the salt, i.e.
# args[0].crypt("$6$rounds=50000$#{args[1]}")
args[0].crypt("$6$#{args[1]}")
end
@tawateer
tawateer / iftop.py
Last active December 13, 2016 04:05 — forked from zhouqiang-cl/iftop.py
在机器上抓取到另一个网段的出入流量,基于 iftop,输出是 open-falcon 的数据收集格式。
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
@author: zhouqiang-cl@gmail.com
@date: 2016-12-12
抓取机器到另外一个机房的出入流量,并格式化输出. 包括到另外机房的每个ip的流量。
iftop 要使用较高的版本. centos 中建议 1.0pre4 以上.
"""
import subprocess
import socket
@tawateer
tawateer / http_base_for_openfalcon.py
Created December 13, 2016 03:31
http montior base for openfalcon
#!/bin/env python
# -*- coding: utf-8 -*-
import os
import re
import time
import json
from urllib import urlencode
from io import BytesIO
@tawateer
tawateer / mysql_util.py
Last active December 13, 2016 03:30
Mysql util
#!/bin/env python
# -*- coding: utf-8 -*-
import sys
import MySQLdb
class MysqlConn(object):
def __init__(self, host, port, user, passwd, db=None):