#!/usr/bin/env python
# _*_coding:utf-8_*_
import time
from fabric.api import env, cd, run, put, parallel, task
import StringIO
ct = [
"124.239.180.215", # sjz ct
"117.23.58.131", # xi'an ct
"10.18.0.33", # shen yang ct db3
#"116.31.75.161", # gd ct
"171.11.231.177", # luo yang ct
"220.167.100.94", # de yang ct
]
bgp =[
"120.92.5.115", # jin shan bj03 bgp
"120.92.230.76", # jin shan sh02 bgp
"139.196.12.110", # ali sh01 bgp
"106.3.145.210", # bj01 dns01 bgp
]
a = [
# ct
"124.239.180.215", # sjz ct
"117.23.58.131", # xi'an ct
# cnc
"157.255.41.13", # gong zhou cnc
"10.18.0.36", # shen yang cnc db6
# cmnet
"120.92.5.115", # jin shan bj03 bgp
"120.92.230.76", # jin shan sh02 bgp
"139.196.12.110", # ali sh01 bgp
"106.3.145.210", # bj01 dns01 bgp
]
new_probe = [
"42.81.84.36:10012", # tianjin ct
"221.235.156.22:10012", #hubei suizhou ct
"59.49.86.51:10012", # shanxi taiyuan ct
"124.161.207.115:10012", # sichuan deyang cnc
"123.138.65.25:10012", # shanxi xian cnc
"111.62.253.61:10012", #hebei cmnet
"111.20.246.90:10012", #shanxi xian cmnet
"223.112.138.14:10012", # jiangsu wuxi cmnet
"124.236.102.29:10012", # hebei ct
]
b = [
# ct
"10.20.0.14", # jin hua ct db4
"10.18.0.33", # shen yang ct db3
"116.31.75.161", # gd ct
# cnc
"61.55.189.125", # sjz cnc
"153.37.74.196", # yan cheng cnc
"153.36.110.108", # xuzhou cnc
# cmnet
"120.221.70.209", # qing dao cmnet
"117.169.75.234", # nan chang cmnet
"10.20.0.12", # jin hua cmnet db2
]
c = [
# ct
"171.11.231.177", # luo yang ct
# "10.82.0.3", # sd ji nan ct 单独发布 需要开iptables权限
"220.167.100.94", # de yang ct
# cnc
# "211.91.140.25", # e zhou cnc 下架不能使用了
"124.161.178.152", # zi gong cnc
# "10.82.0.24", # shan dong ji nan cnc 单独发布 需要开iptables权限
# "123.138.23.149", # xi an cnc 机房搬迁不用了
"127.0.0.1", # jin hua cnc db5 # "10.20.0.15",
# cmnet
"112.29.176.11", # he fei cmnet
"183.232.68.8", # guangzhou cmnet
"117.172.20.28", # cheng du cmnet
]
d = [
"10.82.0.3",
"10.82.0.24"
]
exp = [
"120.221.70.209", # qingdao cmnet
]
env.hosts = new_probe
class FabricException(Exception):
pass
env.abort_exception = FabricException
def ll_tail():
output = StringIO.StringIO()
try:
run("df -h")
except FabricException as e:
print "error:", e
print "output:", output.getvalue()
def judge_file():
output = StringIO.StringIO()
try:
run("[ -f /home/work/prober/src/probe/cdn_prober_v2.py ] && echo 'yes file exist' || echo 'no file not exist'")
#run('ls -l /home/work/prober/src/probe/cdn_prober_v2.py')
#run('grep -E "orig|\-\|" /home/work/prober/src/probe/cdn_prober_v2.py|wc -l')
except FabricException as e:
print "error:", e
print "output:", output.getvalue()
def put_file():
output = StringIO.StringIO()
try:
#run ('mkdir -p /home/work/')
#with cd('/home/work/'):
with cd('/home/work/prober/log/'):
#put('prober.tar.gz', '/home/work/')
#put('log_manager.py', '/home/work/prober/src/lib')
#run('tar xf prober.tar.gz')
run('rm -f probe_v2.log.*')
run('ls')
except FabricException as e:
print e
print output.getvalue()
def put_tdfile():
output = StringIO.StringIO()
try:
with cd('/etc/td-agent/'):
#run('\cp td-agent.conf /etc/td-agent/td-agent.conf_$(date +%F)')
#run('ls /etc/td-agent/')
#put('td-agent.conf', '/etc/td-agent/')
#run('ls /etc/td-agent/')
run('ps -ef |grep td-agent|grep -v grep')
run('service td-agent restart')
run('ps -ef |grep td-agent|grep -v grep')
#run('ls -l /home/work/prober/src/probe/cdn_prober_v2.py')
#ret = run('grep -E "orig|\-\|" /home/work/prober/src/probe/cdn_prober_v2.py|wc -l')
except FabricException as e:
print e
print output.getvalue()
def deploy():
output = StringIO.StringIO()
try:
run("ps aux |grep 'cdn_prober_v2.py' |grep -v 'grep' | awk '{print $2}' | xargs kill -9")
with cd("/home/work/prober/src/probe"):
file = "cdn_prober_v2.py"
now = time.time()
left = now % 60
if left >= 58 or left == 0:
ts = now - left + 120
else:
ts = now - left + 60
cron_time = time.strftime("%M %H %d %m", time.localtime(ts))
print cron_time
cron_str = "echo '%s * cd /home/work/prober/src/probe && nohup python %s &' >> /var/spool/cron/root" % (
cron_time, file)
run(cron_str)
except FabricException as e:
print e
print output.getvalue()
def check_cron():
output = StringIO.StringIO()
try:
run("crontab -l |tail -1")
except FabricException as e:
print e
print output.getvalue()
def check_proc():
output = StringIO.StringIO()
try:
run("ps aux |grep 'cdn_prober_v2.py' |grep -v 'grep'")
except FabricException as e:
print e
print output.getvalue()
# @parallel(pool_size=5)
def test():
ll_tail()
judge_file()
def put_f():
put_file()
def dep():
deploy()
def check():
check_cron()
check_proc()
def put_td():
put_tdfile()