如何使用python or Shell 进行 整点的 自动任务监听运行

一、目的

我们遇到需要整点自动运行的任务时,使用下面脚本设置自动检测整点运行的程序,当到达指定的时间时,运行指定的脚本。

二、方法

1.python 版本

代码如下(示例):

# -*- coding: utf-8 -*-
"""
Created on Wed Jan  6 14:00:31 2021

@author: dujidan
"""
from subprocess import check_call
from time import sleep
from datetime import datetime, timedelta

while True:
    hours_date = (datetime.now()).strftime("%Y%m%d%H")[-2:] # 获取 时
    if hours_date == '08': # 早 8.00
        cmd =  'python3 RUN.py' 
        check_call(cmd, shell=True)
        sleep(3600) # 跳过 目标时间段
    else:
        # sleep 到整点
        time_aim = str(datetime.now() + timedelta(hours=1))[:13]+':00:00'  # 创建 目标时间
        target_time = datetime.strptime(time_aim, '%Y-%m-%d %H:%M:%S')     # 格式转换
        delay = (target_time - datetime.now()).total_seconds()             # 相减 获取 差值的秒数
        sleep(delay)

2.shell 版本

代码如下(示例):

band="$( cd "$( dirname "$0" )" && pwd )"

idx=1
while [ $idx != 0 ]
do
	clock=`date +"%H"`
	if [[ "${clock}" == "10" ]]; then
		echo $clock
		##sh $band/RUN.sh 
	fi
	if [[ "$clock" == "23" ]];then
		sec=`date +%s | awk '{print 1200 - $1 % 1200 + 5;}'` # 加5s 跳过计算+-1的边界
		sleep $sec
	else
		sec=`date +%s | awk '{print 3600 - $1 % 3600 + 5;}'`
		echo $sec
		sleep $sec

	fi
done
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值