Unix 实用程序在特定时间长度过去后运行命令?

Unix 实用程序在特定时间长度过去后运行命令?

我正在寻找一个每周运行一次命令的守护进程。但我并不是在寻找像 cron 这样可以在特定时间运行命令的东西。因为我的笔记本电脑经常关机,所以经常会发生该命令无法运行的情况,因为它只是错过了 cron 运行该命令的时刻。

因此,我正在寻找一个守护进程,我可以告诉它在运行该命令后一周(或任何其他时间)运行该命令。

我一直在寻找这样的实用程序,但一直没找到。那么,这里有人知道这样的实用程序吗?

答案1

好的,如果您为相关用户创建了这样的 cron 条目(您的问题对规范不是很具体):

0/5 * * * * /path/to/script

脚本看起来像这样,你chmod +x /路径/到/脚本

#!/bin/bash
set -x
today=$(date -d "today 00:00" "+%s")
if [[ -s ~/cronflag && -f  ~/cronflag ]]; then
  if [[ $(( $today - $(cat  ~/cronflag ) )) -ge 604800 ]]; then
    echo huzzah!
#    /path/to/weekly
    echo $today > ~/cronflag
    exit 0
  fi
else
#  /path/to/weekly
  echo hip-hop huzzah!
  echo $today > ~/cronflag
  exit 0
fi

您应该能够得到您想要的结果,假设 a) 您在看到 # /path/to/weekly (没有 # ;})的两个位置添加了您想要每周完成的事情,并且 b) 机器通常正常运行时间为 > = 10 分钟。

相关内容