crontab 基础配置使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了crontab 基础配置使用相关的知识,希望对你有一定的参考价值。

参考技术A 在安装完成操作系统后,默认会安装 crond 服务工具,且 crond 服务默认就是自启动的。crond 进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务。

crontab 是通过 /etc/cron.allow 和 /etc/cron.deny 文件来限制某些用户是否可以使用 crontab 命令的:

crontab 定时任务非常简单,只需执行 crontab -e 命令,然后输入想要定时执行的任务即可。
当我们执行 crontab -e 命令时,打开的是一个文件,而且操作方法和 Vim 是一致的。这个文件的格式才是我们真正需要学习的内容,文件格式如下:

通过 5 个 * 来确定命令或任务的执行时间的,这 5 个 *

时间特殊符号含义:

举例:
45 22 * * * 命令,表示 在 22 点 45 分执行命令
0 17 ** 1命令,表示在每周一的 17 点 0 分执行命令
0 5 1,15**命令,表示在每月 1 日和 15 日的凌晨 5 点 0 分执行命令
40 4 ** 1-5命令,表示在每周一到周五的凌晨 4 点 40 分执行命令
*/10 4 ***命令,表示在每天的凌晨 4 点,每隔 10 分钟执行一次命令
0 0 1,15 * 1命令,表示在每月 1 日和 15 日,每周一个 0 点 0 分都会执行命令,注意:星期几和几日最好不要同时出现,因为它们定义的都是天,非常容易让管理员混淆

当 crontab -e 编辑完成之后,一旦保存退出,那么这个定时任务实际就会写入 /var/spool/cron/ 目录中,每个用户的定时任务用自己的用户名进行区分。

在书写 crontab 定时任务时,需要注意以下几个事项:

Linux配置定时,使用 crontab -e 与 直接编辑 /etc/crontab 的区别

Linux配置定时任务,大家都知道使用crontab这个系统功能,但有时候我们需要区分用户执行,下面就直接说一下2种方法的区别:

方法1:

使用命令 crontab -e 然后直接编辑定时脚本。

这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。

如:

[[email protected] cron.d]# cd /var/spool/cron  
[[email protected] cron]# ll  
总用量 4  
-rw-------. 1 root root 52 12月  9 10:58 root  
[[email protected] cron]# pwd  
/var/spool/cron  
[[email protected] cron]# cat root   
30 03 * * * /root/automysqlbackup.sh  

方法2:

使用命令 vi /etc/crontab 编辑定时脚本。

如:

[[email protected] ~]# cat /etc/crontab                                                                                                                                                                        
SHELL=/bin/bash                                                                                                                                                                                             
PATH=/sbin:/bin:/usr/sbin:/usr/bin                                                                                                                                                                          
MAILTO=root                                                                                                                                                                                                 
HOME=/                                                                                                                                                                                                      
                                                                                                                                                                                                            
# run-parts                                                                                                                                                                                                 
30 * * * * root /usr/sbin/ntpdate 210.72.145.44                                                                                                                                                             
#30 8 * * * root /usr/sbin/ntpdate 132.228.90.101                                                                                                                                                           
01 * * * * root run-parts /etc/cron.hourly                                                                                                                                                                  
02 4 * * * root run-parts /etc/cron.daily                                                                                                                                                                   
22 4 * * 0 root run-parts /etc/cron.weekly                                                                                                                                                                  
42 4 1 * * root run-parts /etc/cron.monthly                                                                                                                                                                 
*/1 * * * * root run-parts /opt/openoffice.org3/program/start.sh                                                                                                                                            
############################################                                                                                                                                                                
                                                                                                                                                                                                            
30 4 * * * root /usr/bin/rsync -vzrtopg --progress --delete [email protected]::resource /hyy/bak/resource   
30 4 * * * root /usr/bin/rsync -vzrtopg --progress --delete [email protected]::log /hyy/bak/log  
############################################  
[[email protected] ~]#   

(系统级的)做系统级配置我们会直接配置 /etc/crontab

(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。

以上是关于crontab 基础配置使用的主要内容,如果未能解决你的问题,请参考以下文章

鸟哥私房菜基础篇:例行性工作排程 (crontab)习题

linux基础10

零基础学习云计算及大数据DBA集群架构师Linux系统配置及网络配置2015年12月30日周三

Linux基础-crontab计划任务

[go]gorhill/cronexpr用go实现crontab

linux crontab 配置 在哪儿