9_Cron命令相关用法

Cron命令相关用法

  1. 本文将讨论Cron,它是在linux管理中最实用的程序之一,它允许你在特定的时间安排命令和任务,也叫Corn作业。

    Corn作为守护进程运行,用于执行重复性任务,比如备份、监视磁盘空间使用、使用最新的应用程序版本更新系统、发送电子邮件和轮换日志等等。我认为没有不运行几个Corn任务的linux服务器。

    crontab一词具有三种不同的含义:包含用户cron作业的文本文件被称为用户的crontab,每个用户都有这样一个文件,在Ubuntu上,这些文件位于/var/spool/cron/crontabs,只有root用户可以访问这些目录。

    还有一个叫crontab的命令用来管理指定用户,这些文件位于/var/spool/cron/的子目录中。不建议手动编辑他们,建议改用crontab命令,这将使用您首选或默认的文本编辑器打开文件,并在退出时验证文件的结构。

    显示crontab文件的内容可用:

    crontab -l

    一开始,用户没有crontab编辑,编辑当前用户的crontab文件,运行:

    crontab -e # -e = edit

    如果没有默认值,系统会提示你选择一些编辑器。

    在打开的文件中,你可以编辑你想安排的任务。举个例子,你想在每天6a.m运行一个backup脚本,所以可以在该文件中编辑:

    0 6 * * * /root/backup.sh #该行由六个字段组成,每个字段之间用空格隔开,从前到后依次是 minute hour dayofmonth month dayofweek command。注意hour是以24小时为计数的,dayofweek范围是0-7,星期日可以用07表示。

    还比如你想安排一个每分钟监视磁盘空间使用的任务:

    * * * * * /root/check_space.sh

    还比如你想在凌晨4点、6点和10点运行任务,所以分钟为零,在各个小时数之间加逗号:

    0 4,6,10 * * * /root/check_space.sh

    还比如你希望任务在工作日的晚上9点至5点之间运行,在各个小时数之间加横号,每小时一次:

    0 9-17 * * 1-5 /root/firewall.sh

    还比如你希望在固定的时间间隔内执行某任,比如每隔三天,在4点和21点运行一次任务:

    0 4,21 * */3 * /root/task.sh

    还有几个cron宏用于指定最常用的间隔:

    比如每年或者每年将在1月1日午夜运行一次指定的命令/每个月/每星期/每天/每小时/reboot:

    @yearly /root/happy_new_year
    @monthly /root/task.sh
    @weekly /root/task.sh
    @daily /root/path_to_script.sh
    @hourly /root/path_to_script.sh
    @reboot /root/firewall.sh

    比如我想每隔2分钟将当前日期和时间附加到文件中:

    */20 * * * * date >> /tmp/date_and_time.txt

    查看ubuntu上的cront日志文件:

    tail -f /var/log/syslog

    查看centos上的cront日志文件:

    tail -f /var/log/cron

    等两分钟,日志文件上会出现 CMD (date >> /tmp/date_and_time.txt)的任务提示

    要删除您的crontab文件,请运行:crontab -r

    root可以使用-u选项和用户名编辑、列出或删除其他用户的crontab

    sudo su
    crontab -e -u student
    #接着编辑crontab文件
    crontab -r -u student
    crontab -l

    no crontab for student #此时student下没有crontab,说明root用户可以任意修改删除其他用户的crontab

    root还额可以对哪些用户可以访问自己的crontab文件设置一些限制:

    另外还有一些基于Web的crontab语法生成器可以使这更加容易,比如crontab.guru/crontab-generator.org/只要你输入想要的时间日期,它会自动生成相应的crontab语法。

    我们看到有一些cron作业将以root身份运行,你只需要将脚本移动到某些目录中去,这些目录是
    /etc/cron.daily、hourly、monthly和weekly。

    例如,将某脚本移动到/etc/cron.hourly目录,该脚本会每隔一小时执行一次,然后在/etc/crontab中指定这些cron作业的确切运行时间

img

posted @   lyyyuanfang  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示