python实现定时任务下载release
【摘要】
1.python实现自动任务下载某产品版本
使用schedule类库
介绍: schedule 是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间。 schedule 允许用户使用简单、人性化的语法以预定的时间间隔定期运行 Python 函数(或其...
1.python实现自动任务下载某产品版本
使用schedule类库
-
介绍:
-
schedule 是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间。
-
schedule 允许用户使用简单、人性化的语法以预定的时间间隔定期运行 Python 函数(或其它可调用函数)
-
定时任务格式如下:
-
schedule.every(10).seconds.do(job)
-
schedule.every(10).minutes.do(job)
-
schedule.every().hour.do(job)
-
schedule.every().day.at("10:30").do(job)
-
schedule.every(5).to(10).minutes.do(job)
-
schedule.every().monday.do(job)
-
schedule.every().wednesday.at("13:15").do(job)
-
schedule.every().minute.at(":17").do(job)
截图
2.案例
实现步骤:
-
1.连接vpn
-
2.获取url地址
-
3.使用curl命令下载输出指定目录
-
4.断开vpn
-
# coding=utf-8
-
"""
-
作者:gaojs
-
功能:
-
新增功能:
-
schedule 是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间。
-
schedule 允许用户使用简单、人性化的语法以预定的时间间隔定期运行 Python 函数(或其它可调用函数)
-
demo如下:
-
schedule.every(10).seconds.do(job)
-
schedule.every(10).minutes.do(job)
-
schedule.every().hour.do(job)
-
schedule.every().day.at("10:30").do(job)
-
schedule.every(5).to(10).minutes.do(job)
-
schedule.every().monday.do(job)
-
schedule.every().wednesday.at("13:15").do(job)
-
schedule.every().minute.at(":17").do(job)
-
日期:2022/5/29 12:45
-
blog: www.gaojs.com.cn
-
"""
-
import os
-
-
import schedule
-
import time
-
from schedule import every, repeat, run_pending
-
from selenium import webdriver
-
from selenium.webdriver.chrome.options import Options
-
-
-
def conn_vpn():
-
"""
-
连接vpn
-
"""
-
try:
-
# 修改工作目录到
-
os.chdir('C:\\Program Files\\Array Networks\\MotionPro VPN Client')
-
os.system('MotionPro.exe -connect xxxxxxxx 443 uname passwd 0 0 0 1')
-
time.sleep(10)
-
finally:
-
os.system('ping 10.x.x.x')
-
pass
-
-
-
def disconnect_vpn():
-
"""
-
断开vpn连接
-
"""
-
# 修改工作目录到
-
try:
-
os.chdir('C:\\Program Files\\Array Networks\\MotionPro VPN Client')
-
os.system('MotionPro.exe -disconnect')
-
finally:
-
os.system('ping 10.x.x.x')
-
-
-
def mkdir_path():
-
"""
-
创建目录
-
"""
-
if not os.path.exists('release/'):
-
os.mkdir('release/')
-
-
-
def download():
-
"""
-
自动下载release
-
"""
-
print('*************************** 正在刷新新版本,请稍等 *******************************')
-
conn_vpn()
-
url = 'http://xxxxxxx.html'
-
chrome_options = Options()
-
chrome_options.add_argument('--headless')
-
driver = webdriver.Chrome(options=chrome_options)
-
time.sleep(5)
-
driver.get(url)
-
driver.maximize_window()
-
try:
-
element = driver.find_element_by_xpath(xpath='/html/body/blockquote[1]/a[1]').text
-
release_url = element.split(' ')[0]
-
print(release_url)
-
# 分离url和文件名称
-
release_name = os.path.split(release_url)[1]
-
print(release_name)
-
finally:
-
# os.system(r'curl -o E:\panglu_test_59\release\ + %s %s' % (release_name, release_url))
-
os.chdir('D:\\builds')
-
if not os.path.exists('D:\\builds\\' + release_name):
-
os.system(r'curl -o %s %s' % (release_name, release_url))
-
driver.close()
-
# 断开vpn连接
-
disconnect_vpn()
-
-
-
# 每隔一小时执行一次
-
schedule.every().hours.do(download)
-
while True:
-
# 启动任务
-
schedule.run_pending()
-
time.sleep(1)
结果如下:
3.案例3–linux下配置
-
#!/bin/bash
-
# coding=utf-8
-
"""
-
作者:gaojs
-
功能:
-
新增功能:
-
schedule 是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间。
-
schedule 允许用户使用简单、人性化的语法以预定的时间间隔定期运行 Python 函数(或其它可调用函数)
-
demo如下:
-
schedule.every(10).seconds.do(job)
-
schedule.every(10).minutes.do(job)
-
schedule.every().hour.do(job)
-
schedule.every().day.at("10:30").do(job)
-
schedule.every(5).to(10).minutes.do(job)
-
schedule.every().monday.do(job)
-
schedule.every().wednesday.at("13:15").do(job)
-
schedule.every().minute.at(":17").do(job)
-
日期:2022/5/29 12:45
-
blog: www.gaojs.com.cn
-
"""
-
import os
-
import time
-
from selenium import webdriver
-
-
from selenium.webdriver import FirefoxOptions
-
-
-
def conn_vpn():
-
"""
-
连接vpn
-
"""
-
try:
-
# 修改工作目录到
-
os.system('iSecSP -h intranet.arraynetworks.com.cn -u gaojs -p Bigdata_2013')
-
time.sleep(40)
-
finally:
-
pass
-
-
-
def disconnect_vpn():
-
"""
-
断开vpn连接
-
"""
-
# 修改工作目录到
-
try:
-
os.chdir('cd /opt/')
-
os.system('iSecSP -s')
-
finally:
-
os.system('ping 10.3.0.120')
-
-
-
def mkdir_path():
-
"""
-
创建目录
-
"""
-
if not os.path.exists('/opt/builds/'):
-
os.mkdir('/opt/builds/')
-
-
-
def download():
-
"""
-
自动下载release
-
"""
-
print('*************************** 正在刷新新版本,请稍等 *******************************')
-
url = 'http://10.3.0.120/sp2/build/rel_netiag_10_0_4.html'
-
opts = FirefoxOptions()
-
opts.add_argument("--headless")
-
driver = webdriver.Firefox(options=opts)
-
time.sleep(5)
-
driver.get(url)
-
driver.maximize_window()
-
print('downloading')
-
try:
-
element = driver.find_element_by_xpath(xpath='/html/body/blockquote[1]/a[1]').text
-
release_url = element.split(' ')[0]
-
print(release_url)
-
# 分离url和文件名称
-
release_name = os.path.split(release_url)[1]
-
print(release_name)
-
finally:
-
os.chdir('/var/www/html/builds/netIAG/')
-
if not os.path.exists('/var/www/html/builds/netIAG/' + release_name):
-
os.system(r'curl -o %s %s' % (release_name, release_url))
-
driver.close()
-
# 断开vpn连接
-
# disconnect_vpn()
-
-
-
download()
jenkins任务
每日晚上十点定时更新最新build
正则匹配去实现下载操作:
-
#!/bin/bash
-
# coding=utf-8
-
"""
-
作者:gaojs
-
功能:
-
新增功能:
-
日期:2022/7/11 14:29
-
"""
-
import os.path
-
import re
-
-
import requests
-
-
-
def get_release():
-
"""
-
正则匹配版本号
-
"""
-
url = 'http://10.3.0.120/sp2/build/rel_netiag_10_0_4.html'
-
resp = requests.get(url)
-
# print(resp.text)
-
base_url = re.findall(r'http:\/\/10\.3\.0\.120\/sp2\/build\/nodebug-Rel_NetIAG_[0-9]_[0-9]_[0-9]_[0-9]\.click', resp.text)[0]
-
print(base_url)
-
base_name = os.path.split(base_url)[1]
-
os.chdir('/var/www/html/builds/netIAG/')
-
if not os.path.exists('/var/www/html/builds/' + base_name):
-
os.system(r'curl -o %s %s' % (base_name, base_url))
-
-
print('*********************** 下载完成 **********************')
-
-
-
if __name__ == '__main__':
-
get_release()
4.遇到问题
-
1.ubuntu部署jenkins
-
2.创建任务,定时任务配置
-
3.调试问题解决
-
4.调试通过
-
5.一定要注意ubuntu下jenkins的权限的问题
文章来源: blog.csdn.net,作者:懿曲折扇情,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_41332844/article/details/126837425
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)