如何只运行一次 cron 作业?

如何只运行一次 cron 作业?

我有一个任务,它一启动就永远运行。因此,我希望在将其输入“crontab -e”文件并保存后(或)每次重启时仅启动一次。

如何实现这一点?

答案1

如果你想要运行一个命令一次稍后使用该at命令。

如果你想运行一个命令一次在系统启动时,正确的解决方案是使用:

  • 系统 RC 脚本(/etc/rc.local)
  • 带有特殊前缀的 crontab @reboot(请参阅手册页)

对于非 root 用户来说,后者是唯一的选择。

答案2

您可以使用 at(1) 在将来的某个时间点运行某个作业。但是,如果您想在启动时运行某个作业,并且该作业会自行运行,也许您需要在 /etc/init.d/ 中为其添加一个条目?这样您就可以在启动时启动它。

答案3

只运行一次并一直运行直到您命令其停止的作业称为“守护进程”。它们通常通过 /etc/init.d/ 中的 init 脚本启动。

如果您的工作在某个时间点结束并且可以被视为一次性工作,那么您可能需要查看 at 命令。例如,如果我想在今晚 10 点运行 find 命令,并且只运行一次,我会这样做:

$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00

答案4

看看 at 命令

相关内容