加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 如何模拟cron工作

发布时间:2020-12-15 21:27:16 所属栏目:大数据 来源:网络整理
导读:我每天要运行一个脚本(只在周末),但是我不能使用cron作业. 我正在想一个无限循环,睡24小时,检查是否是一个周末,如果是这样执行脚本. 在linux下的bash下,这是一个很好的解决方案? 我目前的实施: #! /bin/bash while [ true ]; do if [[ $(date +%u) -lt 6 ]
我每天要运行一个脚本(只在周末),但是我不能使用cron作业.

我正在想一个无限循环,睡24小时,检查是否是一个周末,如果是这样执行脚本.

在linux下的bash下,这是一个很好的解决方案?

我目前的实施:

#! /bin/bash

 while [ true ]; do
    if [[ $(date +%u) -lt 6 ]]; then
               ./program
        else
             echo Today is a weekend,processing is skipped. Back to sleep.
    fi
    sleep  86400
done

我将在下午五点启动这个剧本.

解决方法

在没有每用户crontabs的那一天,我经常在(1)完成这个使用.
#!/bin/sh
... do stuff...
at -f /path/to/me 5pm tomorrow

这样你的脚本会运行并安排自己进行下一次调用.

我不认为你可以指定“下个周末”的时间表,所以你只需要重新安排每一天,如果不是一个周末,你的脚本会退出(在安排下一个工作之后).

编辑:或者不是每天调度,找出今天是什么,并适当地安排.例如

day=Saturday
if [ $(date +%u) -eq 6 ] ; then day=Sunday ; fi
at -f /path/to/me 5pm next $day

如果这个脚本在星期六运行,它会安排下个星期天的下一个运行,否则运行在下个星期六. [$(date%A)= Saturday]可能更可读,但是%A会给出特定于语言环境的字符串,如果您更改语言环境,则可能无法正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读