Linux Server 种脚本自动执行

在我们用python编写完脚本后,时常需要定时运行我们的脚本。在这里,我为大家介绍两种常用定时执行python脚本文件的方式:
第一种: crontab job
在Linux系统中可以通过设置crontab 的方式设置脚本自动执行的时间。这个任务调度命令是Linux系统默认安装的。crond 命令会自己动定期检查是否需要执行任务。
注意: 在初次新建crontab job 后,任务不会马上开始执行,一般需要等到2 min 后开始执行。
基本语法:crontab [-u user] file 或 crontab -e
编写crontab 文件。
其中,-u 是指设定指定的user来执行脚本,这主要是涉及到某个用户才有执行或修改权限等。
-e : 进入crontab 文件编辑状态。
-r : 删除目前的时程表。
-l : 查看用户的时程表。

	*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

第二种:调用schedule 模块定时执行任务。众所周知,python 因其丰富的库函数而闻名,这里我们将简单介绍一个轻量级的定时任务执行包。它能够有效满足我们大多数时候的需求。

import schedule
import time

def job(name):
    print("her name is : ", name)

name = "longsongpong"
schedule.every(10).minutes.do(job, name) # 每隔十分钟执行一次任务
schedule.every().hour.do(job, name) # 每隔一小时执行一次任务 
schedule.every().day.at("10:30").do(job, name)# 每天的10:30执行一次任务 
schedule.every(5).to(10).days.do(job, name)# 每隔5到10天执行一次任务 
schedule.every().monday.do(job, name)# 每周一的这个时候执行一次任务 
schedule.every().wednesday.at("13:15").do(job, name)# 每周三的13:15执行一次任务 

while True:
    schedule.run_pending() # 运行所有可以运行的任务
    time.sleep(1)

schedule的所有任务都是串行执行的,如果需要多线程并发,可以如下方式启用多线程:

 def run_threaded(job_func):
      job_thread = threading.Thread(target=job_func)
      job_thread.start()
 
schedule.every(10).seconds.do(run_threaded,job)
schedule.every(10).seconds.do(run_threaded,job2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值