コード例 #1
0
 def send(self):
     self._select()
     expire_assets = ",".join(self.expire_asset_list)
     expire_assets = expire_assets.rstrip(",")
     if expire_assets:
         content = u"Hi:\n    IP为 %s 的服务器明天就要过期,请提前做好相关准备!(系统邮件,请勿回复!)" % expire_assets
         SendMail.send(content)
コード例 #2
0
ファイル: run.py プロジェクト: xiaohui2856/crawl
 def __init__(self, dt=None):
     self.yesterday = datetime.datetime.now() - datetime.timedelta(1)
     if dt:
         self.yesterday = dt
     self.parent = settings.json_restore_path
     self.success = []  # {'name':'', "size':0, "rows":0}
     self.failed = []  # string list
     self.enterprise_count = 0
     self.done = 0
     self.html_template = os.path.join(os.path.dirname(__file__),
                                       "mail.html")
     self.send_mail = SendMail(settings.EMAIL_HOST,
                               settings.EMAIL_PORT,
                               settings.EMAIL_HOST_USER,
                               settings.EMAIL_HOST_PASSWORD,
                               ssl=True)
コード例 #3
0
ファイル: send.py プロジェクト: bertez/selectomatic
def process():
    with open(config.data) as data:
        people = csv.DictReader(data)

        for person in people:

            params = {key: value for key, value
                      in person.items()
                      if not key.startswith('_')}

            template = CreateTemplate(params, person['_template']).get()

            mail = SendMail(template, '{0} <{1}>'.format(person['_full_name'], person['_mail']),
                            'Gracias por te presentares á oferta de traballo da navalla suíza'.format(person['short_name']))
            mail.send()
            print 'Email sent to {0}'.format(person['_full_name'])
            time.sleep(randint(2,5))
コード例 #4
0
def main():

    config = Config()
    ds = DiskSpace(path=config.path)

    percent_limit = config.threshold

    if ds.used_over_limit(percent_limit):
    
        message = "Your hard disk is getting full. You are using %s%% of the available space."\
           "(Warning Threshold: %s%%)" % (ds.percent_used(), percent_limit) + "\n"
        message += "Total: %s" % ds.humanize_bytes(ds.bytes_capacity(), 1000) + "\n"
        message += "Used:  %s" % ds.humanize_bytes(ds.bytes_used(), 1000) + "\n"
        message += "Avail: %s" % ds.humanize_bytes(ds.bytes_free(), 1000)

        sendMail = SendMail(config)
        sendMail.setMessage(message)
        sendMail.send()
コード例 #5
0
def api(mailto):
	#print type(request.data)
	xml = request.data
	root = etree.fromstring(xml)
	jobname = root.getiterator('name')[0].text
	jobid = root.getiterator('execution')[0].attrib['id']
	jobstatus = root.getiterator('execution')[0].attrib['status']
	job_project = root.getiterator('execution')[0].attrib['project']
	job_follow_url = root.getiterator('execution')[0].attrib['href']
	job_start_time = root.getiterator('date-started')[0].text
	job_end_time = root.getiterator('date-ended')[0].text
	
#	print " jobname: %s\n jobid: %s \n jobstatus: %s\n job_project: %s\n job_follow_url: %s\n job_start_time: %s\n job_end_time: %s\n"%(jobname \
#	,jobid,jobstatus,job_project,job_follow_url,job_start_time,job_end_time)
	
	msg = " job name: %s\n jobid: %s \n job status: %s\n job_project: %s\n job_follow_url: %s\n job_start_time: %s\n job_end_time: %s\n"%(jobname \
	,jobid,jobstatus,job_project,job_follow_url,job_start_time,job_end_time)

	subject='rundeck notification: job <%s> %s'%(jobname,jobstatus)
	sender = SendMail('mail.xxx.com','*****@*****.**',mailto,'*****@*****.**','sender_password')
	sender.send(msg,subject,filename=None)
	return 'ok'
コード例 #6
0
def api(mailto):
    #print type(request.data)
    xml = request.data
    root = etree.fromstring(xml)
    jobname = root.getiterator('name')[0].text
    jobid = root.getiterator('execution')[0].attrib['id']
    jobstatus = root.getiterator('execution')[0].attrib['status']
    job_project = root.getiterator('execution')[0].attrib['project']
    job_follow_url = root.getiterator('execution')[0].attrib['href']
    job_start_time = root.getiterator('date-started')[0].text
    job_end_time = root.getiterator('date-ended')[0].text

    #	print " jobname: %s\n jobid: %s \n jobstatus: %s\n job_project: %s\n job_follow_url: %s\n job_start_time: %s\n job_end_time: %s\n"%(jobname \
    #	,jobid,jobstatus,job_project,job_follow_url,job_start_time,job_end_time)

    msg = " job name: %s\n jobid: %s \n job status: %s\n job_project: %s\n job_follow_url: %s\n job_start_time: %s\n job_end_time: %s\n"%(jobname \
    ,jobid,jobstatus,job_project,job_follow_url,job_start_time,job_end_time)

    subject = 'rundeck notification: job <%s> %s' % (jobname, jobstatus)
    sender = SendMail('mail.xxx.com', '*****@*****.**', mailto,
                      '*****@*****.**', 'sender_password')
    sender.send(msg, subject, filename=None)
    return 'ok'
コード例 #7
0
    def run(proxy_server, sock, addr):

        request = HTTPRequest(sock)
        host = request.get_header('Host')

        if proxy_server.is_restriction_enabled(
        ) and proxy_server.is_in_disallowed_hosts(host):
            logging.info('Bad website! Sending Email to admin.')
            sock.sendall(
                proxy_server.bad_response(
                    'Visiting this site is forbidden!').read())
            sock.close()
            logging.info('Socket connection with peer closed.')
            SendMail().snd_email(request.read().decode(
                request.DEFAULT_ENCODING))
            return

        if proxy_server.is_privacy_enabled():
            request.set_header('user-agent', proxy_server.privacy_user_agent)
        if not proxy_server.cache_handler.is_cached(
                host, request.method, request.route, request.version, sock):
            server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            server_socket.connect(
                (host, HTTPRequestHandler.HTTP_SERVER_LISTENING_PORT))
            logging.info(
                f'Connection established with host {host} '
                f'on port {HTTPRequestHandler.HTTP_SERVER_LISTENING_PORT}.')
            server_socket.send(request.read())
            logging.info('Request sent to server.')
            response = HTTPResponse(server_socket)
            logging.info('Response read from server.')
            logging.info('Connection with server host closed.')
            if response.is_html() and proxy_server.is_http_injection_enabled():
                response = proxy_server.body_inject(response)
                logging.info('Response injected with CN-Proxy(TM) navbar.')
            proxy_server.discharge_user(addr, response.length)
            res = response.read()
            sock.sendall(res)
            if proxy_server.is_caching_enabled():
                proxy_server.cache_handler.store(res, response.pragma,
                                                 response.modified_since,
                                                 response.expire, host,
                                                 request.route)
            logging.info('Response sent back to client.')
            server_socket.close()

        sock.close()
コード例 #8
0
    program.set_config_file(config_file)

    # check if synchronisation is not currently running
    if not program.isRunning():
        program.startRunning()

        # check if it has not already been launched in the last 7 days
        if not program.isLaunchedLastDays(days=7):
            # Rsync local data
            copyLocalData()

        program.stopRunning(stop_program=False)

    # be sure that synchronisation is launched regularly
    if not program.isLaunchedLastDays(days=14):
        mail.send(subject="Not launched since more than 14 days",
                  message="See log file %s\nSee config file %s" %
                  (logC.getLogFile(), config_file),
                  code=1)

    program.stopLog()


if __name__ == '__main__':
    logC = LogClass(prog_name, parsed_args.debug)
    logger = logC.getLogger()
    mail = SendMail(prog_name=prog_name)
    program = Program(prog_name=prog_name)

    main()
コード例 #9
0
ファイル: crawlweb.py プロジェクト: forestbaker/jqian
            if o in ("-c", "--crawl"):
                fp = open("/tmp/tmp-page.txt", "wb")
                if crawl.loginHjbbs():
                    for link in crawl.parseTitles():
                        page = crawl.crawlPage(link)
                        fp.write(link + "\r\n")
                        fp.write(page["title"])
                        fp.write(page["content"])
                        print link
                else:
                    print "login failed"
            elif o in ("-m", "--mail"):
                from mail import SendMail

                db    = CrawlDB()
                mail = SendMail()
                # search db
                pages = db.getPages()
                if pages:
                    for page in pages:
                        if mail.sendMail(page["title"], page["content"]):
                            db.setUrl(page["url"])
                else:
                    print "no mail is sent"
                mail.close()
            else:
                assert False, "unhandled option"
    else:
        # from time import strftime, gmtime
        # timefmt = strftime("%y-%m-%d", gmtime())
        # print "%s run crawl.crawlPages()" % (timefmt)
コード例 #10
0
ファイル: log.py プロジェクト: snailwalker/applog
def main():
    temp_file = os.path.sep + 'data ' + os.path.sep + 'log' + os.path.sep + 'item' + os.path.sep +'root.log'
    la = LogAnalyse(temp_file)
    error_log = open('error.log', 'w')
    a = ''
    for k, v in la.get_error_counts().items():
        error_log.write(k.strip('\n').decode("utf8") + "出现次数:" + str(v) + '\n')
        a = a + k.strip('\n').decode("utf8") + "出现次数:" + str(v) + '\n'
    
    tempList = la.get_latest_log(5)

    # 初始化发送邮件类
    sml = SendMail(EMAIL_USER, EMAIL_PASSWORD, EMAIL_HOST)
    # 设置邮件信息
    text_type = 'plain'
    sml.setMailInfo(TO_EMAIL, EMAIL_HEADER, a, text_type, os.getcwd() + os.path.sep + 'error.log')
    sml.sendMail()
    for i in tempList:
        if 'Disconnected' in i:
            sml.reinitMailInfo()
            sml.setMailInfo(TO_EMAIL, "zookeeper挂了", "zookeeper又尼玛挂了,赶紧去看看啊!!!", text_type)
            sml.sendMail()
            break
    error_log.close()
コード例 #11
0
ファイル: run.py プロジェクト: xiaohui2856/crawl
class Checker(object):
    """ Is obtain data from province enterprise site today ?
    """
    def __init__(self, dt=None):
        self.yesterday = datetime.datetime.now() - datetime.timedelta(1)
        if dt:
            self.yesterday = dt
        self.parent = settings.json_restore_path
        self.success = []  # {'name':'', "size':0, "rows":0}
        self.failed = []  # string list
        self.enterprise_count = 0
        self.done = 0
        self.html_template = os.path.join(os.path.dirname(__file__),
                                          "mail.html")
        self.send_mail = SendMail(settings.EMAIL_HOST,
                                  settings.EMAIL_PORT,
                                  settings.EMAIL_HOST_USER,
                                  settings.EMAIL_HOST_PASSWORD,
                                  ssl=True)

    def run(self):
        for province in sorted(province_crawler.keys()):
            enterprise_count = self._get_enterprise_count(province)
            data = {
                "name": province,
                "size": 0,
                "done": 0,
                "enterprise_count": enterprise_count,
                "done_ratio": 0
            }

            self.enterprise_count += enterprise_count
            path = self._json_path(province)
            if os.path.exists(path) is False:
                self.failed.append(data)
                continue

            st = os.stat(path)
            data["done"] = self._get_rows(path)
            data["size"] = st[stat.ST_SIZE]
            data['done_ratio'] = float(data["done"]) / data["enterprise_count"]
            self.success.append(data)

            self.done += data["done"]

        #output
        settings.logger.error(
            "success %d, failed %d, enterprise count %d, done %d",
            len(self.success), len(self.failed), self.enterprise_count,
            self.done)
        for item in self.success:
            settings.logger.error(
                "\t%s: %d bytes, done %d, enterprise count %d", item['name'],
                item['size'], item["done"], item["enterprise_count"])

        settings.logger.error("Failed province")
        for item in self.failed:
            settings.logger.error("\t%s", item['name'])

        self._report()

    def _json_path(self, province):
        path = os.path.join(self.parent, province,
                            self.yesterday.strftime("%Y/%m/%d.json.gz"))
        return path

    def _get_rows(self, path):
        rows = 0

        with gzip.open(path) as f:
            for line in f:
                if len(line.strip()) == 0:
                    continue
                rows += 1

        return rows

    def _get_enterprise_count(self, province):
        path = os.path.join(settings.enterprise_list_path, "%s.txt" % province)
        count = 0
        with open(path) as f:
            for line in f:
                if line.split(",") < 3:
                    continue
                count += 1

        return count

    def _report(self):
        title = u"%s 企业信用爬取情况" % (self.yesterday.strftime("%Y-%m-%d"))
        content = self._render_html()
        to_admins = [x[1] for x in settings.ADMINS]

        self.send_mail.send_html(settings.EMAIL_HOST_USER, to_admins, title,
                                 content)

    def _render_html(self):
        html = ""
        with open(self.html_template) as f:
            html = f.read()

        template = jinja2.Template(html)
        return template.render(yesterday=self.yesterday.date(), success=self.success, failed=self.failed, host=socket.gethostname(), \
                               enterprise_count=self.enterprise_count, done=self.done)
コード例 #12
0
ファイル: menuP1.py プロジェクト: CrisValdRu/ASR_P1
                    elif (ultimo_valor[0] < ultimo_valor[1]):
                        flag = 0
                elif (flag == 2):
                    if (ultimo_valor[0] > ultimo_valor[3]):
                        canSend = True
                        flag = 3
                    elif (ultimo_valor[0] < ultimo_valor[2]):
                        flag = 1
                elif (flag == 3):
                    if (ultimo_valor[0] < ultimo_valor[3]):
                        flag = 2

                if (canSend):
                    print("Va a sobrepasar el umbral")
                    canSend = False
                    SendMail('./png/examen2.png')
                    #sendMailTo("*****@*****.**","Uso del CPU va a sobrepasar el umbral")
            time.sleep(1)
            con += 1
            if (con == 599):
                print("Desea seguir monitoreando? Y/N: ")
                res = input()
                if (res == 'Y' or res == 'y' or res == "Yes"):
                    con = 0
                else:
                    con = 600
    else:
        createRRDTOOL("examen.rrd", '1551252880', '10')
        createUpdate('grupo_4cm1', 'localhost', '1.3.6.1.2.1.2.2.1.3.1', '161')

    print("Desea hacer otra operacion? Y/N: ")
コード例 #13
0
def camera():
    authenticator = IAMAuthenticator(
        apikey="ZQBgX2TPs2CmC3wNLWGEr7X3xDmq42sDsqTZVCsjdke8")

    flag = False
    obj = VisualRecognitionV4(version='2021-03-25',
                              authenticator=authenticator)

    obj.set_service_url(
        service_url=
        'https://api.us-south.visual-recognition.watson.cloud.ibm.com/instances/2fa93f7c-36f0-48f9-abb1-15845fbe94e1'
    )

    while True:
        success, img = cap.read()
        cv2.imwrite('4.jpg', img)
        with open('4.jpg', 'rb') as honda_file, open('4.jpg',
                                                     'rb') as dice_file:
            result = obj.analyze(
                collection_ids=[
                    "17951ae7-0169-4551-ac19-a3864c7eed65",
                    '17951ae7-0169-4551-ac19-a3864c7eed65'
                ],
                features=[AnalyzeEnums.Features.OBJECTS.value],
                images_file=[
                    FileWithMetadata(honda_file),
                ],
                threshold=0.15).get_result()
            #print(json.dumps(result, indent=2))
        img = cv2.imread('4.jpg')
        try:
            left = result['images'][0]['objects']['collections'][0]['objects'][
                0]['location']['left']
            top = result['images'][0]['objects']['collections'][0]['objects'][
                0]['location']['top']
            width = result['images'][0]['objects']['collections'][0][
                'objects'][0]['location']['width']
            height = result['images'][0]['objects']['collections'][0][
                'objects'][0]['location']['height']

            img = cv2.imread('4.jpg')
            cv2.rectangle(img, (left, top), (left + width, top + height),
                          (255, 0, 0), 2)
            name = result['images'][0]['objects']['collections'][0]['objects'][
                0]['object']
            with open('data.txt', 'r') as f:
                f.write(str(name))
            cv2.putText(img, name, (left, top), cv2.FONT_HERSHEY_SIMPLEX, 1,
                        (255, 0, 0), 2)
            cv2.imshow('gasm', img)
            k = cv2.waitKey(30) & 0xff
            if k == 27:  # press 'ESC' to quit
                break
                cv2.show('gasm', img)

            if name == 'gun' and flag == False:
                flag = True
                SendMail()
        except:
            cv2.imshow('gasm', img)
            # pass
        # cv2.show('gasm',img)
    cap.release()
    # cv2.waitKey(0)
    cv2.destroyAllWindows()
コード例 #14
0
#!/usr/bin/env python3

from xls import Xlsx
from sql import ODBCQuery
from mail import SendMail

xls = Xlsx('SPC_test')
odbc = ODBCQuery('192.168.110.26')

today_data  = odbc.today_registers('P07')
print(today_data)

today_data = xls.query_modificator(today_data)

xls.write_data(today_data)
xls.close()

smail = SendMail(['*****@*****.**' , '*****@*****.**' ] , 'SPC_test.xlsx' , subject = 'Today SPC 4G101 DP1 REGISTERS' )

smail.fast_send()
コード例 #15
0
    queryres = makeQuery(
        "select",
        "SELECT id, sb_id, solution, status, closure_code, date_done from requests where sb_id = \'"
        + call + "\'")
    # Создаем xml только по тем заявкам, которые есть в БД
    if queryres is not None:
        xml_instance = process_xmls.create_xml_for_instance(queryres, call)
        xml_instances = xml_instances + xml_instance

# запись xml для отправки в файл
final_outb_xml = process_xmls.add_xml_headers(xml_instances)
process_xmls.write_to_file(final_outb_xml)

# отправка письма
if process_xmls.file_exist(outbound_xml_cfg):
    MailObjSend = SendMail(mail_subject, '-', mail_sber_email,
                           outbound_xml_cfg)
    MailObjSend.send_email(MailObjSend.compose_email())

    os.replace(os.path.join(xml_path_outb, xml_out_name_cfg),
               os.path.join(xml_done_path_outb, xml_out_name_cfg))

#чистка старых XML чтобы не перелимитить inodes
files = os.listdir(xml_path_inb)

for item in files:
    if item.endswith(".xml") and os.stat(os.path.join(
            xml_path_inb, item)).st_mtime < now - 60 * 86400:
        os.remove(join(xml_path_inb, item))
        print('old file', item, 'has been deleted')