perl – 如何模拟cron工作

前端之家收集整理的这篇文章主要介绍了perl – 如何模拟cron工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我每天要运行一个脚本(只在周末),但是我不能使用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会给出特定于语言环境的字符串,如果您更改语言环境,则可能无法正常工作.

猜你在找的Perl相关文章