最新在研究使用jenkins做升级发布功能,大概的操作是选择产品、模块、环境等参数后,执行一个python脚本,脚本获取用户选择参数,然后执行发布动作。...jenkins执行python脚本,需要使用python plugin 具体使用方法: 1、安装python plugin插件 2、创建一个project,在构建这一步中,选择Execute Python...3、然后将python脚本内容写入进来,注意这个文本框中对缩进有严格的要求。如果使用空格,就同一使用空格,如果使用table,就统一使用table ?...要获取用户选择的参数,可以使用os.getenv(参数名)
在jenkins上打算运行一段python脚本,查到一些常用的方法,下面会介绍。还遇到了版本兼容性问题导致的怎么都执行不成功,最终试了各种版本,定位到兼容性问题,真是各种坑。...一般有三种方法: 1.安装执行python的插件: Python Plugin,安装后在配置那里就可以看到以下的选项,可以在Script部分直接写python代码 ? 2....用Execute Windows batch command执行python脚本 ? 3. 用Execute shell执行python脚本,注意开始要写#!python.exe ?...执行的错误提示: 用第一种方法执行的错误提示下面这幅图: ? 用第二种方法执行的错误提示下面这样,一直停留在我框住的那一行,不返回,图中是我手动返回的。 ?...卸载之前的版本,安装了2.7.8的版本的python之后,采用3种方法运行python脚本都可以正确运行。但还是要记得在系统设置里添加python的安装路径才可以。
Python是一个脚本语言,被解释器解释执行。它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。...将Python脚本打包成可执行文件有多种方式,本文重点介绍PyInstaller,其它仅作比较和参考。...其实就是把python解析器和你自己的脚本打包成一个可执行的文件,和编译成真正的机器码完全是两回事,所以千万不要指望成打包成一个可执行文件会提高运行效率,相反可能会降低运行效率,好处就是在运行者的机器上不用安装...python和你的脚本依赖的库。...PyInstaller输入你指定的的脚本,首先分析脚本所依赖的其他脚本,然后去查找,复制,把所有相关的脚本收集起来,包括Python解析器,然后把这些文件放在一个目录下,或者打包进一个可执行文件里面。
首先写一个简单的python脚本 import time if __name__ == '__main__': print("hello world") time.sleep(10)...下一步则是将其转为可执行文件。...然后会看到新增加了两个目录build和dist,dist下面的文件就是可以发布的可执行文件,对于上面的命令你会发现dist目录下面有一堆文件,各种都动态库文件和myscrip可执行文件。...D:\pythonProject\build_excutable> 你会发现dist下面只有一个可执行文件,这个单文件就可以发布了,可以运行在你正在使用的操作系统类似的系统的下面。 ?...运行一下这个可执行文件看看,如下: ? ?
将Python脚本转换为可执行文件 目录 1、前言 2、转换脚本 1、前言 当 Python 脚本编写完成后,每次运行时,都要打开命令行输入命令进行运行,或者打开 IDE 编辑器(如 PyCharm )...总有些麻烦,其实可以将脚本转换为可执行文件,每次执行时,双击可执行文件即可运行。...2、转换脚本 本篇以 Windows 系统为例 示例中需要转换的脚本在 Python绘制"冰墩墩" 文章里 1、安装pyinstaller pip install pyinstaller 2、将需要转换的...py文件路径 5、执行转换命令 pyinstaller -F -i BingDwenDwen.ico demo.py 6、执行完命令后,转换后的目录文件内容,需要的可执行文件就在dist文件夹中 dist...目录里是.exe可执行文件 双击运行,就可以使用了
问题 当我们使用 Windows 桌面下的编辑器编写一个 Shell 文件时,很容易将文件使用的换行符保存为 dos 格式。如果将文件上传到 Linux 服务器执行时,可能会遇到下面的错误。...0,在一些自动化调用的场景中就会认为脚本执行失败,从而引发后续的问题 $ echo $?...解决方法 解决的方法有很多,从脚本来源上说,最好我们在编辑过程中就指定使用的换行符,大多数编码常用编辑器例如 Notepadd++ 等都支持这个选项,如下图在 Notepadd++ 的右下角会显示换行符的类型...除了在编写阶段注意,脚本编写完成后,还可以通过 $ sh -x hello.sh 的方式来检查脚本是否有语法错误,对于本文提供的示例来说输出结果如下,可以看到输出结果给出提示多了 \r 的字符。...$ tr -d '\r' dosnewline.sh-tr # 使用 od 比较两个文件,后续的脚本可类似方式比较 $ od -bc dosnewline.sh-tr
因为以前没有做nginx日志分割,有时候想看日志的时候总是发现有十几G的甚至上百G的日志文件,于是就想使用python写个nginx日志分割(当然你也可以使用shell来完成都是很简单) 需求: 1.按照日分割...nginx所有日志 2.由于日志不需要随时可以查看,需要做归档(压缩.tar.gz) 3.归档日志需要有过期时间和容量限制(分割日志需要做定期的删除,超过一定时间或者目录大小超过一定容量) 分析: 按照需求...,我们需要 备份前一天日志---->重新加载日志文件---->压缩日志文件---->检测备份日志文件目录 好了,也不一一分析脚本,直接发出来了,有什么问题大家可以提啊。...#coding:utf-8 ''' Version: 1.0.0 Actor:youshumin Date:2018/04/28 脚本需求-- 1.用户提供一个nginx日志路径 (目录) 2....用户提供nginxnginx执行路径 3.备份日志路径 4.保留多久的存储日志文件或者空间 天和GB为单位 ''' ####### Nginx_Log_Dir="/data/nginx/web1
/usr/bin/env python #-*-coding:utf-8-*- #Python nginx cut log 1 import subprocess def mkdir(): .../usr/bin/env python #-*-coding:utf-8-*- #Python nginx cut log 2 import time import os import datetime...if os.system(command2) == 0: print "日志切割成功!" else: print "日志切割失败!"...import shutil #path列表存入路径和文件 path = ['/usr/local/nginx/logs','access.log','nginx.pid'] now_time = datetime.datetime.now...("%Y%m%d") #格式化输出昨天的年月日 yes_year = yes_time.strftime("%Y") #格式化输出昨天的年份 yes_month = yes_time.strftime
exec包 在 Go 语言中调用 Python 脚本可以使用 os/exec 包中的函数。...先用 exec.Command 函数来创建一个 *exec.Cmd 结构体,然后调用这个结构体的 Run 方法来执行 Python 脚本。...io/ioutil" "os" "os/exec" ) func ExecShellReturn(s string) (string, error) { //函数返回一个*Cmd,用于使用给出的参数执行...//Run执行c包含的命令,并阻塞直到完成。...canary.py" log.Info("执行的shell语句: ", shell) result, _ := utils.ExecShellReturn(shell)
写在前面 有个简单的小需求,选择用pythoh实现 有些打印方法业务日志,参数,执行时间的语句感觉有些冗余 所以想用类似AOP的方式实现 利用python里闭包函数实现的装饰器及提供的语法糖可以简单实现...博文内容包括两部分: Python闭包&装饰器,装饰器设计模式简述 基于Python装饰器的函数日志模块实现: 日志提供函数执行时间,入参,函数业务信息的采集 日志位置支持函数前,函数最终,函数异常时,...实现函数执行时间的统计 实现函数输出日志的功能 装饰带有不定长参数的函数 # 添加输出日志的功能 def logging(fn): def inner(*args, **kwargs):...具体的脚本 基于装饰器函数日志脚本 讲了这么多,我们来看看,如何在用装饰器实现函数的日志 这里需要注意一下@functools.wraps(func)这个装饰器,一般函数被装饰器装饰完之后,被装饰的函数的名字会变成装饰器函数...:不管方法是否执行成功,执行后都会输出的日志 """ def method_logging(func): @functools.wraps(func) def
python作为一门通用编程语言,本身可以在不同的环境下运行,但可执行文件不是。就目前来说,最便捷的方法还是在各自的平台上去用pyinstaller编译可执行文件。...编写python脚本 当我们编译可执行文件时,首先我们需要一个可以执行的python任务脚本,这个脚本的内容可以是一系列复杂的运算,可以是显示一张图片,也可以是一整个完整的PC端软件。...,如果是创建的python脚本中依赖于一些打印输出函数,那在编译可执行文件时需要指定弹出终端窗口,否则程序没办法正确执行。...安装pyinstaller并编译可执行文件 pyinstaller也是一个跨平台的python工具,在windows和linux上面都可以使用pip来进行安装和管理: python3 -m pip install...本文主要介绍通过pyinstaller在linux和windows上分别打包python脚本为可执行文件,想要跨平台的编译软件就目前而言实现起来还比较困难,博主本地使用的是Win11+WSL2 Ubuntu
因此,archive归档日志不停的增长导致磁盘空间被大量耗用。对于这种情形,可以使用一个shell脚本来定时自动清除这些归档日志。本文给出了清除归档日志的脚本。... a、该脚本通过一个外部循环来读取oratab中定义的数据库的SID来寻找对应数据库的归档日志路径以及datapump dump路径。 ...b、使用了一个for循环来清除归档日志,且保留最后的2个归档日志文件。 ...c、接下来的另一个for循环则用来清除当前SID下对应的dump(Oracle datapump)目录下导出的dump文件。 d、同清除归档日志一样,设定了保留dump目录最近的5个文件。...保留多少个最近的文件(dump的5,或者归档日志2)可以修改。 e、如果不需要清除dump路径,可以将dump部分注释掉。 f、根据需要将其部署到crontab。
logrotate使用稍复杂,但功能强大 # # 本脚本功能: # 1) 实现一个通用的按大小的日志滚动 # 2) 要求日志文件扩展名为“.log”,否则请稍修改代码 # 3) 支持处理多个目录下的日志文件...# 答:因为在日常中,经常发现程序输出重定向, # 或脚本的输出,如果不处理的话,就可能导致 # 单个文件过大,甚至爆满整个磁盘;而每套脚本 # 都重复写一个日志滚动逻辑,...显然是件无聊的事, # 甚至一些人懒得做处理,日子一久,就会发现一个超大的 # 日志文件,本脚本希望可以帮助解决这个问题,让大家无 # 后顾之忧。...# # 使用方法: # 1) 把脚本复制到日志文件所在目录, # 然后以nohup ....=$((1024 * 1024 * 200)) # 单个日志文件大小 backup_interval=60 # 检测的间隔时间,单位为秒 # 如果dirs_list指定的文件存在,则从dirs_list
处于项目需求,需要能够批量执行SQL脚本文件,需要由前台页面操作触发执行。 查找相关资料,发现 Ant 提供了 SQLExec 组件可以支持SQL文件的执行,测试效果不错。...以下是对 SQLExec 封装后支持批量执行的执行器组件。 ...String password = "mysql"; String targetSqlFolder = "/home/ca6417/upload/RecoverySQL/"; // 存放SQL脚本的目录...String logOutputFolder = "/home/ca6417/upload/RecoverySQL/"; // 执行结果输出目录,出错的时候才会生成错误报告...sqlExec, fileStr, file.getAbsolutePath(), logOutputFolder); } } else { // 如果是脚本文件
string sql = string.Empty; do { line = sr.ReadLine(); // 文件结束...去除右边空格 line = line.TrimEnd(spaceChar); sql += line; // 以分号(;)结尾,则执行
题目: 有如下log文件,请打印出独立IP,并统计独立IP数,打印出访问最多的前5个ip及访问次数: log文件www.log内容类似如下格式: 125.78.48.67 - - [25/Dec...b1,然后重置a1 4,将b1进行反向排序,打印出来 5,让使用者选择输出访问最多的前几个ip,也可以给函数传递参数,给一个默认参数打印前几个 --- 刚学python,写的很烂,code.../usr/bin/env python import re re1 = r'^\d+\.\d+\.\d+\..../usr/bin/env python #coding:utf-8 import re import sys def getIP(): log = raw_input('请输入要查询的日志文件名.../usr/bin/env python #coding:utf-8 def getIP(): log = raw_input('请输入要查询的日志文件名,包括扩展名:') fp
一、前述 实际工作中将Python脚本每天定时写入到日志文件中的使用场景还是蛮多的,有很多种方法可以实现这种效果。本文选择一种方式实现,特将实现细节做如下分享,不当之处烦请指正。...二、具体 1、python脚本需要在每个Python文件上面添加logger输出。 如下: ? ? 2、Shell脚本中添加后台执行机制。 ?...>>file & 这种格式导致明明手动执行有日志输出 但是放入到定时任务里面就没有日志了。 2、这里面的软件运行环境如.../...../python 一定要写成绝对路径,即便在环境变量李配置了,因为Crontab识别不了环境变量。 3、crontab定时任务如图: ? 3天一执行。
def count_patt(fname, patt): result = {} cpatt = re.compile(patt) fobj = open(fn...
因为ssoc日志巨大,很快就把磁盘占满。需要每天把备份上传到ftp服务器上,所以根据网上的资料,做了个简单的脚本。算是第一次自己拼凑出的脚本。还很简单,特别是把异常处理简化了。...因为本身单一,然后把屏幕输出用管道命令》直接写到本地文件,充当日志。很懒的一个版本。还需加工。 ---- 1 ftp上传 文件夹里的内容 2 上传后把现有的目录下的文件删除。...简化的好处就是只要遍历文件如果有新文件的就上传。
——《沉默的大多数》 " Linux 设置定时任务,crontab 执行 python 脚本不生效的问题,可以通过下方的方法尝试: 1.给 python 脚本第一行添加如下代码: #!.../usr/bin/python 当然 python 解释器的路径要按照自己情况进行填写。...2.如果 python 脚本报错,模块未找到等等,尝试如下方式: import syssys.path.append('xxx的路径>') 如果是虚拟环境,有可能此路径不同,可以通过下列命令查看...脚本中不涉及复杂的逻辑,简单的函数即函数调用即可,如果出现下列代码,请去掉: if __name__ == '__main__': 它会将 crontab 在调用的时候搞晕。...4.可以写一个 shell 脚本去调用 python 脚本,如下: #!
领取专属 10元无门槛券
手把手带您无忧上云