linux crontab anacrontab
发布日期:2021-05-17 17:55:21 浏览次数:16 分类:精选文章

本文共 1849 字,大约阅读时间需要 6 分钟。

在介绍 crontab 命令之前,我们首先要了解 crond 服务。crond 是一个Linux下用来周期执行任务或等待事件处理的守护进程,类似于Windows中的计划任务。它在系统启动时自动运行,并每分钟检查一次任务列表。

启动和管理 crond 服务

默认情况下,crond 服务在安装Linux操作系统后就会启用。要启动或重启 crond 服务,可以使用以下命令:

# 启动 crond
[root@localhost ~]# systemctl start crond
# 重启 crond
[root@localhost ~]# systemctl restart crond
# 设置 crond 服务为开机自启动
[root@localhost ~]# systemctl enable crond

当然,在大多数Linux发行版中,crond 服务通常会自启动,并且默认开机时启用。

了解 crontab 命令的使用

crontab 命令用于管理周期任务,它类似于 at 命令,但比 at 命令更灵活,支持更复杂的定时规则。

访问和使用 crontab

每个用户都可以用自己所属的身份使用 crontab 命令,通过以下命令进入编辑器:

[root@localhost ~]# crontab -e

如果不带 -e 选项,crontab 会直接使用当前用户的任务文件。

关于访问控制

crontab 命令的访问受限于 /etc/cron.allow/etc/cron.deny 两个文件。默认情况下,只有 root 用户可以使用 crontab 命令。在 /etc/cron.allow 中写入允许的用户时,只有这些用户才能使用 crontab。如果没有 /etc/cron.allow 文件,且用户不在 /etc/cron.deny 中,则默认可以使用 crontab

crontab 定时任务的格式

crontab 定时任务文件的格式采用五个字段,分别对应分钟、小时、天、月、周(可选)和执行时的命令。格式如下:

_auditジョ Stations      Minutes      Hours       Days      Months       Days_of_week   Command
* * * * * user command

各字段的意义如下:

字段 说明 范围
第一个 * 分钟(0-59) any minute
第二个 * 小时(0-23) any hour
第三个 * 天数(1-31) any day
第四个 * 月份(1-12)或月份缩写(如jan,feb) any month
第五个 * 星期(0-7,0和7代表星期日) any day of week
后续部分 指定要执行的命令,用户身份及命令路径

常用符号:

  • *:表示所有值。
  • ,:指定多个值。
  • -:表示范围。
  • /:表示间隔。

例如:

  • */5 表示每隔5分钟。
  • 1-5 表示在1到5之间的值。
  • 0 表示 指定时间点。

定时任务实例

  • 每5分钟执行一次命令
  • */5 * * * * /bin/echo "11" > /tmp/test
    1. 每周二的凌晨5:05重启系统
    2. 5 5 * * 2 /sbin/shutdown -r now
      1. 每月1日、10日、15日的凌晨3:30执行日志备份脚本
      2. 30 3 1,10,15 * * /root/sh/autobak.sh

        执行命令中需要注意的事项:

        -命令既可以直接输入命令,也可以指向脚本。建议使用绝对路径,以避免权限问题。

        使用 cronanacron

        cron 适用于24小时运行的机器,而 anacron 则针对每天或每周关机的机器。

        需要注意 cronanacron 会有冲突,安装 anacron 时会替代 cron 服务。

        配置 crontab 又怎么办

        /etc/crontab 文件中可以配置系统级定时任务,需要使用 root 用户身份编辑。

        用哪种方法更好

        如果只需要为用户设置个人任务,可以使用 crontab -e。而如果需要设置系统级任务,可以直接编辑 /etc/crontab 并重新加载服务。

        [root@localhost ~]# visudo /etc/crontab

        在编辑文件后,守护进程 crond 会自动读取新的任务列表。

        通过以上方法,可以灵活地管理Linux服务器上的定时任务。

    上一篇:SELinux
    下一篇:Linux chattr命令详解:修改文件系统的权限属性(转)

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2025年04月11日 12时45分42秒