Linux 定时任务Crontab

Linux 定时任务Crontab

描述

Crontab用于创建和管理用户周期性执行的任务;
crond进程每分钟会定期检查是否有要执行的任务,若有则自动执行该任务;

配置解释

定时任务配置解释

\* * * * * user-name command to be executed
第一个*号表示:minute (0 - 59)
第二个*号表示:hour (0 - 23)
第三个*号表示:day of month (1 - 31)
第四个*号表示:month (1 - 12) OR jan,feb,mar,apr…
第五个*号表示:day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

30 21-23 * */2 1,5 command
星号(*):表示所有可能的值,上面例子中day字段为*,则表示满足其他限制的每一天都执行该任务;
逗号(,):表示一个列表范围,上面例子中week字段为,则表示每周一和周五执行该任务;
横杠(-):表示一个区间范围,上面例子中hour字段为-,则表示21到23点间每小时执行该任务;
正斜线(/):表示指定时间的间隔频率,上面例子中month字段为/,则表示每两个月执行该任务;

综上分析该任务执行周期为:每隔一个月的周一和周五的21-23点30分执行任务;

使用方式
  • 当前用户创建定时任务
[git@centos-36_2 data]$ crontab -e
\* * * * * /home/git/data/hi
\* * * * * /home/git/data/hi1
~
"/tmp/crontab.xVfMO9" 1L, 36C written
crontab: installing new crontab
[git@centos-36_2 data]$ ps -aux | grep /hi
git 131091  0.0  0.0 112724   992 pts/1    S+   16:59   0:00 grep --color=auto /hi
[git@centos-36_2 data]$ ps -aux | grep /hi
git 131095  0.0  0.0 113180  1208 ?        Ss   16:59   0:00 /bin/bash /home/git/data/hi
git 131096  0.0  0.0 113180  1212 ?        Ss   16:59   0:00 /bin/bash /home/git/data/hi1
git 131113  0.0  0.0 112724   992 pts/1    S+   16:59   0:00 grep --color=auto /hi
[git@centos-36_2 data]$ su
密码:
[root@centos-36_2 data]# cat /var/spool/cron/git 
\* * * * * /home/git/data/hi
\* * * * * /home/git/data/hi1
[root@centos-36_2 data]# 
  • 查询当前用户定时任务信息
[git@centos-36_2 data]$ crontab -l
* * * * * /home/git/data/hi
[git@centos-36_2 data]$ su
密码:
[root@centos-36_2 data]# crontab -l
*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
[root@centos-36_2 data]# 
  • 删除当前用户定时任务信息

    • 删除所有
    [git@centos-36_2 data]$ crontab -l
    \* * * * * /home/git/data/hi
    \* * * * * /home/git/data/hi1
    [git@centos-36_2 data]$
    [git@centos-36_2 data]$ crontab -ri 
    crontab: really delete git's crontab? y
    [git@centos-36_2 data]$ crontab -l
    no crontab for git
    [git@centos-36_2 data]$
    
    • 删除单条
    [root@centos-36_2 data]# crontab -l
    \*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
    \* * * * * /home/gaokangkang/data/hi
    [root@centos-36_2 data]# ps -aux | grep /hi | grep -v grep
    [root@centos-36_2 data]# ps -aux | grep /hi | grep -v grep
    root     131739  0.0  0.0 113180  1212 ?        Ss   17:05   0:00 /bin/bash /home/gaokangkang/data/hi
    [root@centos-36_2 data]#
    [root@centos-36_2 data]# crontab -e
    			1 */5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
    ~
    "/tmp/crontab.Wq1hBp" 1L, 76C written
    crontab: installing new crontab
    [root@centos-36_2 data]# crontab -l
    \*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
    [root@centos-36_2 data]#
    
  • Crontab可以使用@reboot来执行主机启动之后的命令

    [root@centos-36_2 data]# crontab -e
    			1 */5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
    			2 @reboot /root/my_script/on_start.sh
    ~
    "/tmp/crontab.tYgena" 2L, 112C written
    crontab: installing new crontab
    [root@centos-36_2 data]# 
    [root@centos-36_2 data]# crontab -l
    \*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
    @reboot /root/my_script/on_start.sh
    [root@centos-36_2 data]# 
    
### 使用 `crontab` 命令管理定时任务 #### 编辑用户的定时任务列表 编辑当前用户的定时任务可以通过 `-e` 参数实现。这会打开默认的文本编辑器来修改用户的 crontab 文件[^1]。 ```bash crontab -e ``` #### 列出用户的定时任务 查看当前用户已设定的所有定时任务可以使用 `-l` 参数[^2]。 ```bash crontab -l ``` #### 删除用户的定时任务 移除当前用户的全部定时任务可借助 `-r` 参数完成;如果希望删除前得到确认提示,则应加上 `-i` 选项[^3]。 ```bash crontab -r # 直接删除所有任务,不询问 crontab -ir # 提示是否真的要删除这些任务 ``` #### 替换用户的定时任务 当指定一个文件作为参数传递给 `crontab` 命令时,默认行为是用此文件的内容替换现有的 crontab 条目。例如: ```bash crontab my_tasks.txt ``` 这里假设 `my_tasks.txt` 是一个包含了有效 cron 表达式的纯文本文件[^4]。 #### 设置具体的定时任务表达式 为了定义何时以及如何执行某个特定的任务,在 crontab 文件里每行代表一条记录,格式如下所示: | 字段 | 含义 | |--|--------------------------------------------------| | minute | 每个小时中的哪一分钟 | | hour | 每日中的哪一个钟头 | | day of moth| 每中具体某一天 | | month | 年份里的某一份 | | day of week| 星期几 | 各字段允许使用的数值范围也已在表格中给出。通过组合不同的时间单位,能够精确控制任务触发的时间点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值