首页 文章 精选 留言 我的

精选列表

搜索[脚本自愈],共10000篇文章
优秀的个人博客,低调大师

Python 发送带附件的图文格式报表脚本(smtplib)

coding: utf-8 import smtplib from email.mime.multipart import MIMEMultipart #导入MIMEMultipart类 from email.mime.text import MIMEText #导入MIMEText类 from email.mime.image import MIMEImage #导入MIMEImage类 HOST = "smtp.gmail.com" #定义smtp主机 SUBJECT = u"官网业务服务质量周报" #定义邮件主题 TO = "testmail@qq.com" #定义邮件接收人 FROM = "mymail@gmail.com" #定义邮件发件人 def addimg(src,imgid): #添加图片函数,参数1:图片路径,参数2:图片id fp = open(src, 'rb') #打开文件 msgImage = MIMEImage(fp.read()) #创建MIMEImage对象,读取图片内容作为参数 fp.close() #关闭文件 msgImage.add_header('Content-ID', imgid) #指定图片文件的Content-ID,<img> #标签src用到 return msgImage #返回msgImage对象 msg = MIMEMultipart('related') #创建MIMEMultipart对象,采用related定义内嵌资源 #的邮件体 创建一个MIMEText对象,HTML元素包括文字与图片<img> msgtext = MIMEText("<font color=red>官网业务周平均延时图表:<img src="cid:weekly" border="1">详细内容见附件。</font>","html","utf-8") msg.attach(msgtext) #MIMEMultipart对象附加MIMEText的内容 msg.attach(addimg("img/weekly.png","weekly")) #使用MIMEMultipart对象附加 # MIMEImage的内容 创建一个MIMEText对象,附加week_report.xlsx文档 attach = MIMEText(open("doc/week_report.xlsx", "rb").read(), "base64", "utf-8") attach["Content-Type"] = "application/octet-stream" #指定文件格式类型 指定Content-Disposition值为attachment则出现下载保存对话框,保存的默认文件名使用 filename指定 由于qqmail使用gb18030页面编码,为保证中文文件名不出现乱码,对文件名进行编码转换 attach["Content-Disposition"] = "attachment; filename="业务服务质量周报(12周).xlsx"".decode("utf-8").encode("gb18030") msg.attach(attach) #MIMEMultipart对象附加MIMEText附件内容 msg['Subject'] = SUBJECT #邮件主题 msg['From']=FROM #邮件发件人,邮件头部可见 msg['To']=TO #邮件收件人,邮件头部可见 try: server = smtplib.SMTP() #创建一个SMTP()对象 server.connect(HOST,"25") #通过connect方法连接smtp主机 server.starttls() #启动安全传输模式 server.login("mymail@gmail.com","mypassword") #邮箱账号登录校验 server.sendmail(FROM, TO, msg.as_string()) #邮件发送 server.quit() #断开smtp连接 print "邮件发送成功!" except Exception, e: print "失败:"+str(e)

优秀的个人博客,低调大师

Python pyclamad病毒扫描与目录病毒扫描脚本(转载)

Clam AntiVirus(Clam AV)是一个免费而且开放源码的防毒软件,软件与病毒库的更新由开源社区免费发布,目前ClamdAV主要为Linux、Uinux系统提供病毒扫描查杀pyClamad是一个python的第三方模块,可让python直接使用ClamAV病毒扫描守护进程clamd来实现一个高效的病毒检测功能。 一、实现集中式的病毒扫描 1、客户端(病毒扫描源)安装clamavp clamd 服务的相关程序包 yum install clamav clamd clamav-update -y chkconfig clamd on 更新病毒库 /usr/bin/freshclam 更改配置文件修改监听地址到所有网络,启动服务 sed -i -e '/^TCPAddr/{ s/127.0.0.1/0.0.0.0/;}' /etc/clamd.conf /etc/init.d/clamd start 2、主控端安装pyClamd模块 参考:http://xael.org/pages/pyclamd-en.html pip install pyclamd 验证安装结果: <pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; word-wrap: break-word; color: rgb(0, 0, 0); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(238, 238, 221); text-decoration-style: initial; text-decoration-color: initial;">>>> import pyclamd cd = pyclamd.ClamdAgnostic() cd.ping() True</pre> 工作原理:管理服务器通过python发出多线程指令连接业务服务器的3310端口,执行病毒扫描,然后返回结果给管理服务器。 业务服务器必须安装clamd相关程序包,并启动服务监听在3310端口才能正常收到指令;可以针对不同业务环境定制相应的扫描策略,比如扫描对象、描述模式、扫描路径、调试频率等。 实现代码:simplel.py [ 复制代码 ](javascript:void(0); "复制代码") <pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"> 1 #!/usr/bin/env python 2 # -- coding: utf-8 -- 3 import time 4 import pyclamd 5 from threading import Thread 6 class Scan(Thread): #继承多线程Thread类 7 def init (self,IP,scan_type,file): 8 """构造方法""" 9 Thread.init(self) 10 self.IP = IP 11 self.scan_type=scan_type 12 self.file = file 13 self.connstr="" 14 self.scanresult="" 15 def run(self): 16 """多进程run方法""" 17 try: 18 cd = pyclamd.ClamdNetworkSocket(self.IP,3310) 19 """探测连通性""" 20 if cd.ping(): 21 self.connstr=self.IP+" connection [OK]" 22 """重载clamd病毒特征库""" 23 cd.reload() 24 """判断扫描模式""" 25 if self.scan_type=="contscan_file": 26 self.scanresult="{0}\n".format(cd.contscan_file(self.file)) 27 elif self.scan_type=="multiscan_file": 28 self.scanresult="{0}\n".format(cd.multiscan_file(self.file)) 29 elif self.scan_type=="scan_file": 30 self.scanresult="{0}\n".format(cd.scan_file(self.file)) 31 time.sleep(1) 32 else: 33 self.connstr=self.IP+" ping error,exit" 34 return 35 except Exception,e: 36 self.connstr=self.IP+" "+str(e) 37 IPs=['172.16.65.201','172.16.65.202'] #扫描主机的列表 38 scantype="multiscan_file" #指定扫描模式,支持 multiscan_file、contscan_file、scan_file 39 scanfile="/usr/local/bin" #指定扫描路径 40 i=1 41 threadnum=2 #指定启动的线程数 42 scanlist = [] #存储Scan类线程对象列表 43 for ip in IPs: 44 """将数据值带入类中,实例化对象""" 45 currp = Scan(ip,scantype,scanfile) 46 scanlist.append(currp) #追加对象到列表 47 """当达到指定的线程数或IP列表数后启动线程""" 48 if i%threadnum==0 or i==len(IPs): 49 for task in scanlist: 50 task.start() #启动线程 51 for task in scanlist: 52 task.join() #等待所有子线程退出,并输出扫描结果 53 print task.connstr #打印服务器连接信息 54 print task.scanresult #打印结果信息 55 scanlist = [] 56 i+=1</pre> [ 复制代码 ](javascript:void(0); "复制代码")

优秀的个人博客,低调大师

动态加载Js代码到Head标签中的脚本

我遇到了这样的问题,请教google,结果大多数只是介绍那个注册js的几个函数,而这几个函数插入的js都在body里面,幸而在老外那里看到了这个代码,其实比较简单,但够有用 1 HtmlGenericControlInclude2 = new HtmlGenericControl( " script " ); 2 Include2.Attributes.Add( " type " , " text/javascript " ); 3 Include2.InnerHtml = " alert('JavaScriptinPageHeader'); " ; 4 this .Page.Header.Controls.Add(Include2); 或 Literalli = new Literal(); li.Text = " <script</script> " ; this .Page.Header.Controls.Add(li); 或者 Code 欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处! 本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/archive/2009/10/24/1589315.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

脚本实现自动创建DNS域名服务器

前提:保证yum可以正常使用! #!/bin/bash read -p "Please input your domain name:" DOMAIN read -p "Please input your IPaddress:" NET hostname www.$DOMAIN yum install bind caching-nameserver -y a=`echo $NET |cut -d"." -f1` b=`echo $NET |cut -d"." -f2` c=`echo $NET |cut -d"." -f3` d=`echo $NET |cut -d"." -f4` cat > /etc/named.conf << "EOF" options { directory "/var/named" ; }; zone "." IN { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; zone "DOMAIN" IN { type master; file "DOMAIN.zone"; }; zone "FAN.in-addr.arpa" IN { type master; file "PTR.arpa"; }; EOF sed -i 's/DOMAIN/'$DOMAIN'/g' /etc/named.conf sed -i 's/FAN/'$c.$b.$a'/g' /etc/named.conf sed -i 's/PTR/'$a.$b.$c'/g' /etc/named.conf cat > /var/named/$DOMAIN.zone << "EOF" $TTL 36400 @ IN SOA DOMAIN. admin.DOMAIN. ( 2011024 3H 15M 1W 1D) EOF echo "@ IN NS www.$DOMAIN." >>/var/named/$DOMAIN.zone echo " IN MX 10 mail.$DOMAIN." >> /var/named/$DOMAIN.zone echo "www IN A $NET" >> /var/named/$DOMAIN.zone echo "mail IN A $NET" >> /var/named/$DOMAIN.zone sed -i 's/DOMAIN/'$DOMAIN'/g' /var/named/$DOMAIN.zone cat > /var/named/$a.$b.$c.arpa << "EOF" $TTL 36400 @ SOA DOMAIN. admin.DOMAIN. ( 20110224 3H 15M 1W 1D) EOF echo "@ IN NS www.$DOMAIN." >> /var/named/$a.$b.$c.arpa echo "$d IN PTR mail.$DOMAIN." >> /var/named/$a.$b.$c.arpa echo "$d IN PTR www.$DOMAIN." >> /var/named/$a.$b.$c.arpa sed -i 's/DOMAIN/'$DOMAIN'/g' /var/named/$a.$b.$c.arpa echo "nameserver $NET" >>/etc/resolv.conf ifconfig eth0 $NET chown named /var/named/*.arpa chown named /etc/named.conf chown named /var/named/$DOMAIN.zone service named restart 本文转自 张玉坡 51CTO博客,原文链接:http://blog.51cto.com/fighter/500005

优秀的个人博客,低调大师

shell脚本:监控HTTP服务的状态(测试返回码)

#定义函数check_http: #使用curl命令检查http服务器的状态 #-m设置curl不管访问成功或失败,最大消耗的时间为5秒,5秒连接服务为相应则视为无法连接 #-s设置静默连接,不显示连接时的连接速度、时间消耗等信息 #-o将curl下载的页面内容导出到/dev/null(默认会在屏幕显示页面内容) #-w设置curl命令需要显示的内容%{http_code},指定curl返回服务器的状态码 #!/bin/bash #Author:丁丁历险(Jacob) #设置变量,url为你需要检测的目标网站的网址(IP或域名) url=http://192.168.4.5/index.html #定义函数check_http: #使用curl命令检查http服务器的状态 #-m设置curl不管访问成功或失败,最大消耗的时间为5秒,5秒连接服务为相应则视为无法连接 #-s设置静默连接,不显示连接时的连接速度、时间消耗等信息 #-o将curl下载的页面内容导出到/dev/null(默认会在屏幕显示页面内容) #-w设置curl命令需要显示的内容%{http_code},指定curl返回服务器的状态码 check_http(){ status_code=$(curl-m5-s-o/dev/null-w%{http_code}$url) } while: do check_http date=$(date+%Y%m%d-%H:%M:%S) #生成报警邮件的内容 echo"当前时间为:$date $url服务器异常,状态码为${status_code}. 请尽快排查异常.">/tmp/http$$.pid #指定测试服务器状态的函数,并根据返回码决定是发送邮件报警还是将正常信息写入日志 if[$status_code-ne200];then mail-sWarningroot</tmp/http$$.pid else echo"$url连接正常">>/var/log/http.log fi sleep5 done

优秀的个人博客,低调大师

面向云原生全栈运维的AIOps智能故障自愈平台建设与落地实践技术白皮书

随着云原生架构大规模落地,容器、微服务、K8s集群等技术广泛应用,企业IT运维场景呈现架构分布式、业务微服务化、故障碎片化的特点。传统人工运维、规则式监控模式,无法应对海量监控指标、瞬时突发故障、链路复杂溯源等运维痛点,存在故障发现滞后、定位效率低、人工处置成本高、重复故障频发等问题。

优秀的个人博客,低调大师

服务器端脚本到底在哪里运行?

Web 系统通常由客户端和服务器两部分共同完成一次页面访问。浏览器属于客户端,IIS、Apache、Nginx 以及后面的应用服务器属于服务器端。当浏览器访问一个动态网页时,浏览器通过 HTTP 向服务器发送请求,服务器收到请求之后,根据 URL 找到对应的程序或者资源。假如请求的是一个需要服务器执行的动态页面,服务器会运行相应的服务器端程序,把执行结果生成 HTML、JSON 或其他响应内容,再通过 HTTP 返回浏览器。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册