任务计划cron命令

本文介绍如何使用at和cron进行一次性及周期性任务的计划与执行。涵盖了at命令的基本用法,包括设置执行时间和命令格式,以及cron服务的配置,如定义系统与用户级别的周期性任务。

任务计划:
1、在未来的某个时间点执行一次某任务
     at
     batch

     at  时间
     at> COMMAND
     at >COMMAND
     at > Ctrl+d

     指定时间:
         绝对时间:HH:MM    DD.MM.YY   MM/DD/YY
         相对时间:now+#
                单位:minutes,hours,days,weeks
         模糊时间:noon,midnight,teatime    
 
 
     命令的执行结果将以邮件的形式发送给安排任务的用户
     at -l :显示作业=atq
     at -d  AT_JOB_ID :删除作业=atrm  AT_JOB_ID
 
2、周期性的执行某任务
     cron:自身是一个不间断运行的服务
     anacron:cron的补充,能够实现让cron因为各种原因在过去的时间该执行而未执行的任务在系统恢复正常时执行一次;
     cron:
               系统cron任务
                         /etc/crontab
                              分钟  小时   天  月  周   用户  任务
               用户cron任务
                         /var/spool/cron/USERNAME
                              分钟  小时   天  月  周   任务
               时间的有效取值:
                              分钟:0-59
                              小时:0-23
                              天:1-31
                              月:1-12
                              周:0-7,0和7都代表周日

               时间通配表示:
                         *:对应的所有有效取值
                              3  *  *  *  *
                              3  *  *  *  7
                              13  12  6  7  *
                         ,:离散时间点
                              10,40  02  *  *  2,5
                         - :连续时间点
                              10  02  *  *  1-5
                         /# :对应取值范围每多久一次
                              */3  *  *  *  *

               每两小时执行一次:
                         08  */2  *  *  *
               没两天执行一次:
                         02  01  */2  *  *
     
               执行结果将以邮件形式发送给管理员:
                    */3  *  *  *  *  /bin/cat  /etc/fstab  &> /dev/null

               cron的环境变量 : cron执行所有命令都去PATH环境变量指定的路径下去找
                         PATH  /bin:/sbin:/usr/bin:/usr/sbin
               
               用户任务的管理:
                         crontab:
                              -l:列出当前用户的所有cron任务
                              -e:编辑
                              -r:移除所有任务
                              -u USERNAME:管理其他用户的cron任务

               anacron:补充cron,服务器一般不用。
### 如何使用 `cron` 命令创建 Linux 计划任务 #### 创建和编辑计划任务 要管理个人用户的定时任务,可以使用 `crontab -e` 编辑当前用户的 crontab 文件[^1]。此命令将会打开默认配置的文本编辑器,在其中可按照特定格式输入新的调度条目。 #### 查看已有的计划任务 通过执行 `crontab -l` 可以查看当前用户已经设定好的所有周期性工作列表[^2]。如果没有任何预先存在的任务,则会收到提示表示不存在该用户的 crontab 文件。 #### 定义具体的计划任务 每一条记录应当遵循如下模式: ``` * * * * * command_to_be_executed - - - - - | | | | | | | | | +----- 星期几 (0 - 7) (星期天=0或7) | | | +------- 月份 (1 - 12) | | +--------- 一个月中的某一天 (1 - 31) | +-- 分钟 m (0 - 59) ``` 例如,为了每天凌晨两点运行一次清理临时文件夹 `/tmp` 下面的内容,应该添加这样的行到 crontab 文件里: ```bash 0 2 * * * rm -rf /tmp/* ``` 这意呸着在每一天(`*`)的每一个月(`*`)里的任意日期(`*`)于早上2点整(小时:`2`,分钟:`0`)执行删除操作[^3]。 #### 使用环境变量 有时可能希望为 cron job 设置一些环境参数,比如 PATH 或者其他自定义变量。可以在 crontab 文件顶部声明它们: ```bash SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO="admin@example.com" HOME=/ ``` 上述片段设置了 shell 解释器路径、搜索路径以及接收邮件通知的目标地址等信息。 #### 特殊字符串简化表达方式 除了标准的时间字段外,还可以利用几个特殊的字符串来代替复杂的时间组合,如 @reboot 表示开机启动后立即执行;@daily 则代表每日零点时刻触发等等。 ```bash @hourly echo "This will run every hour." @weekly find /home/user/backup -type f -mtime +7 -exec rm {} \; ``` 以上就是关于如何运用 `cron` 来建立自动化流程的基础介绍与实例说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值