启动后每24小时执行一次root命令

启动后每24小时执行一次root命令

我想每 24 小时在一台 Ubuntu 11.04 机器上以 root 身份执行一条命令。这台机器并不是一直开着,但当它开着的时候,可以一次开几天。我应该如何正确配置我的 crontab 以按所需的间隔执行此命令,以及以 root 身份执行 cron 作业有什么特别之处我应该知道吗?我是唯一使用这台机器的人。

答案1

您只需将要执行的脚本添加到目录中即可/etc/cron.daily- 它将每天执行一次anacron

摘录自man 8 anacron

Anacron 可用于定期执行命令,频率以天为单位。与 cron(8) 不同,它不假设机器连续运行。因此,它可以用于不是全天 24 小时运行的机器,以控制通常由 cron 控制的每日、每周和每月作业。

答案2

要编辑 root 的 crontab,请运行:

sudo crontab -e

填写一行,例如:

0 0 * * * /usr/sbin/ntpdate-debian -s

这将在每次午夜时分执行一次ntpdate带有开关的指定命令(请参阅格式的文档,或可能只是 crontab 本身的注释的第一行)。-sinfo 'crontab(5)'

一些小提示:

  • 请注意,crontab 中的命令通常通过 执行/bin/sh,在基于 Debian 的系统上不是 Bash,而是 Dash。注意不要使用巴什主义在命令中。根据我的经验,经常会看到错误的重定向,以及关于哪些字符需要转义的错误假设。
  • 给出二进制文件的完整路径通常是一个好主意,因为PATHroot 和普通用户之间的变量可能不同。我曾见过由于变量不同而导致一个命令遮蔽另一个命令的情况PATH,这是一种不必要的复杂情况。

    简单地执行路径查找中的第一个程序也可以被视为某种安全风险,因为草率的配置可能会让某人替换二进制文件(如果有人在系统上拥有这种权限,他可能在某种程度上可以这样做,但无论如何)。

只要机器在运行,Cron 就会每 24 小时执行一次命令。如果你想让机器在计划执行时“赶上”关闭的情况,你应该看看anacron其目的正是如此。

相关内容