Example #1
0
def get_info_from_other_cds(resource_ip, resource_user, resource_pwd,
                            resource_device_pwd, host, host_user, host_pwd, src_system='linux', limit=100):
    """
    从163中获取资源并且执行curl操作,无需进行校验,直接进行curl操作
    :param host_pwd: 
    :param host: 
    :param host_user: 
    :param src_system: 
    :param resource_ip: 
    :param resource_user: 
    :param resource_pwd: 
    :param resource_device_pwd: 
    :param limit: 
    :return: 
    """
    modify_linux_config(host, host_user, host_pwd, resource_ip, resource_pwd, resource_user, '1',
                        src_system)  # 我们只需要在一台设备上执行curl动作而不需要校验等其他动作,因此这里cds_pwd可以随意输入cds信息
    timestamp = str(datetime.datetime.now().strftime('%Y-%m-%d-%H-%M'))
    filepath = './operation_log/' + timestamp
    modify_my_log_file_path(filepath)
    log = my_log()
    log.info(u'全场关键字 timestamp为:' + timestamp)
    log.info(u'获取全部资源放入到指定的文件夹中')
    get_all_cache(timestamp, 1000, resource_ip, resource_user, resource_pwd, resource_device_pwd)  # 获取全部资源放入到指定的文件夹中
    log.info(u'获取全部资源操作完成')
    curl_log = "./curl_log/curl_log_" + timestamp
    if not os.path.exists('./curl_log'):
        os.mkdir('./curl_log')
    f = open(curl_log, 'w')
    f.close()
    log.info(u"下面开始执行kind的操作 以上只是获取信息")
Example #2
0
┃┫┫  ┃┫┫
┗┻┛  ┗┻┛
"""
import sys
import os

from curl_simulate.tools import init_config_file
from curl_simulate.tools.connect_Linux import connect_linux
from curl_simulate.tools.log.operation_log import my_log
from curl_simulate.tools.mysql_db import execute_mysql_get_cache_info
import datetime
import time

reload(sys)
sys.setdefaultencoding('utf-8')
log = my_log()


def get_http_cache(category, limit, filepath='./http/cache/httpcache'):
    """
    在httpcache这个表里根据category和limit选择uri
    :param filepath:
    :param category:种类
    :param limit:限定条数,从根据createtime来排序,取最新的limit条数
    :return:
    """
    information = init_config_file().read().split()
    host = information[3]
    database_user = information[5]
    database_pwd = information[4]
    str1 = "SELECT uri,cache_size,md5 FROM http_cache WHERE cache_size < 12428800  AND category="
Example #3
0
def main(start_time, end_time, host, host_user, host_pwd, limit, kind_timeline,
         cds_ip, database_user, database_pwd, cds_pwd, do_all, need_assert, src_system='linux', resource_ip='empty',
         resource_user='******',
         resource_pwd='empty', resource_device_pwd='empty'):
    """
    如果src_system为windows 则输入的host_user host_pwd等没有意义,可以不用修改
    :param need_assert: 
    :param do_all: 布尔类型 true or false true为在五分钟内执行所有的资源
    :param resource_device_pwd: 获取资源的设备的密码
    :param resource_pwd: 获取资源的设备的数据库密码
    :param resource_user: 获取资源的设备的帐号
    :param resource_ip: 获取资源的设备的ip(默认是cds的ip)
    :param src_system: 所执行curl的设备是属于linux 或者 windows 只有一种情况是需要输入linux 就是在windows上远程链接linux设备。如果在本地跑(不论是linux或者windows)这里都输入windows
    :param cds_pwd: cds设备的密码
    :param database_pwd: cds 数据库的密码
    :param database_user: cds数据库的帐号
    :param cds_ip: cds的ip地址 字符串
    :param start_time: 开始时间
    :param end_time: 结束时间
    :param host: 执行curl动作的ip
    :param host_user: 执行curl动作的设备的帐号
    :param host_pwd: 执行curl动作的设备的密码
    :param limit: curl每种资源的个数
    :param kind_timeline: 每个kind中上下部分的时间差
    :return: 
    """
    modify_linux_config(host, host_user, host_pwd, cds_ip, database_pwd, database_user, cds_pwd,
                        src_system, need_assert)  # 把所用到的信息写入到配置文件中
    start_time = datetime.datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S')  # 当前时间
    timestamp = str(datetime.datetime.now().strftime('%Y-%m-%d-%H-%M'))
    filepath = './operation_log/' + timestamp
    modify_my_log_file_path(filepath)
    log = my_log()
    modify_iptables(cds_ip, database_user, cds_pwd)  # 修改防火墙
    while True:
        now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')  # 显示现在的时间
        now_time = datetime.datetime.strptime(now_time, '%Y-%m-%d %H:%M:%S')  # 格式化当前的时间
        if start_time - now_time < datetime.timedelta(minutes=3):
            log.info(u'离开始执行的时间只有3分钟,3分钟后准时执行')
            break
        else:
            log.info(u'请耐心等待,离开始的时间还有' + str(start_time - now_time))
            time.sleep(60)
    log.info(u'全场关键字 timestamp为:' + timestamp)
    log.info(u'获取全部资源放入到指定的文件夹中')
    if resource_ip == 'empty':
        resource_ip = cds_ip
    if resource_user == 'empty':
        resource_user = database_user
    if resource_pwd == 'empty':
        resource_pwd = database_pwd
    if resource_device_pwd == 'empty':
        resource_device_pwd = cds_pwd
    get_all_cache(timestamp, 100, resource_ip, resource_user, resource_pwd, resource_device_pwd)  # 获取全部资源放入到指定的文件夹中
    log.info(u"现在的时间戳节点为:" + timestamp)
    log.info(u'开始准备工作,计算每种kind的资源和大小')
    # calculate_kind(timestamp, 0, limit)
    i = 0
    while i < 6:  # 计算每种kind的数据 不是真正的执行
        calculate_kind(timestamp, i, limit)  # 目前一共五钟kind,把每个kind的cache文件信息存放在kind_info中
        i += 1
    log.info(u'准备工作就绪,现在可以开始进行真正的curl操作')
    log.info(u'执行time_customize前的当前的时间为' + unicode(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
    timer_customize(timestamp, str(start_time), end_time, limit, kind_timeline, do_all)
    log.info(u'执行完成time_customize函数,开始统计函数的执行')
    # get_all_hot_list(timestamp)
    # wrong_statistics_log(timestamp)
    if src_system == 'windows':
        os.remove('test666')
    log.info(u"执行完成")