linux的定时计划任务Crontab

简介:

1、什么是crontab

          crontab命令常见于Unix类Unix操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

计划任务分2种:

1、  例外性:按一定的周期循环来执行工作,如每月发薪水、每天一次的工作报告、每天需要的打卡等等;

2、  临时性:指定时间执行的命令,这次做完下次不必做的,如领导检查工作等;

    这些计划任务的工作 Linux也都可以帮助我们,如:每天早600要叫我起床(当然是通过音频设备了);下班之前发送一份Email给自己,提醒别忘记发日报等;

对于周期性的任务用cron命令;    -- 周期性计划任务

对于临时性的任务用 at 命令;    -- 一次性计划任务

at命令:在指定的时间执行指定的命令,执行完之后就从系统中取消该命令;

cron命令:在指定的时间周期性的执行指定的命令;


安装crontab

     yum install crontabs

说明:

     /etc/init.d/crond start          启动服务

     /etc/init.d/crond stop           关闭服务

     /etc/init.d/crond restart        重启服务

     /etc/init.d/crond reload         重新载入配置

 

查看crontab服务状态:       /etc/init.d/crondd status

 

查看crontab服务是否已设置为开机启动,执行命令:ntsysv

 

加入开机自启动:         chkconfig –level 35 crond on


2、  crontab命令


使用权限:

        root用户和crontab文件的所有者

语法:

        crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]

说明:

        crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。

参数:

        -e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe),编辑定时任务

        -r [UserName]: 删除目前的时程表         删除定时任务

        -l [UserName]: 列出目前的时程表          查询定时任务

        -v [UserName]:列出用户cron作业的状态 查看定时任务的执行状态或过程


crontab命令格式:

基本格式:    *    *    *    *    *    command

                               命令

         第1列表示:分钟1~~59 每分钟用*或*/1表示

         第2列表示:小时1~~23  (0 表示0点)

          第3列表示:日期1~~31

         第4列表示:月份1~~12

         第5列表示:星期0~~6   (0 表示 星期天)

         第6列表示:运行的命令

wKiom1V0-gfBL7syAAHWdnAArFs022.jpg

crontab命令特殊符号:

wKioL1V0-6mhxSflAAGhR_wnkaI596.jpg

wKiom1V0-geyvqkOAAFZpBsaPp0065.jpg

3、  案例

30 21 * * * /etc/init.d/nginx restart              每晚21:30 重启nginx

45 4 1,10,22 * * /etc/init.d/nginx restart       每月1、10、22日的4:45分 重启nginx

10 1 * * 6,0/etc/init.d/nginx restart            每周六日的1:10 重启nginx

0,30 18-23 * * * /etc/init.d/nginx restart         18点至23点之间每隔30分钟重启nginx

0 23 * * 6 /etc/init.d/nginx restart               每周六的23点重启nginx

* */1 * * * /etc/init.d/nginx restart              每一小时重启nginx

* 23-7/1 * * * /etc/init.d/nginx restart            晚上23点到早上7点之间,每小时重启nginx

0 11 4 * mon-wed /etc/init.d/nginx restart         每月4号的周一到周三 11点重启nginx

0 4 1 jan * /etc/init.d/nginx restart              一月1号的4点重启nginx

*/30 * * * * /usr/sbin/ntpdate 210.72.145.20       每30分钟同步一次时间



本文转自 linuxzkq 51CTO博客,原文链接:http://blog.51cto.com/linuxzkq/1659565

相关文章
|
4月前
|
安全 Linux 调度
在Linux中,如何实现,每星期天早8点服务器定时重启?
在Linux中,如何实现,每星期天早8点服务器定时重启?
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
108 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
47 3
|
2月前
|
Linux
Linux Crontab 查看定时任务启动没
【10月更文挑战第20天】在Linux系统中,crontab用于设置周期性执行的任务。查看当前用户的Crontab任务列表,使用`crontab -l`;查看所有用户任务,使用`sudo crontab -l`或指定用户`sudo crontab -u username -l`。
98 5
|
6月前
|
Unix Linux
Linux中的Crontab:定时任务管理器
`crontab`是Linux下的定时任务管理器,用于设置周期性执行的任务。用户可以通过`crontab -l`查看任务,`crontab -e`编辑,`crontab -r`删除任务。任务格式为:`* * * * * command`,分别代表分钟、小时、日期、月份、星期,例如`30 10 * * * /path/to/script.sh`。注意确保命令有执行权限,处理环境变量,并关注日志文件 `/var/log/syslog` 或 `/var/log/cron`。学会使用`crontab`能有效自动化Linux系统的日常任务。
|
3月前
|
Unix Linux Python
Cron定时设置在linux和mac中的使用
文章详细说明了如何在Linux和Mac操作系统中使用Cron进行定时任务的设置,并提供了多个Cron表达式的实例。
45 0
|
4月前
|
监控 Linux 调度
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
在Linux中,如何进行调度任务?什么是 crontab 并解释 crontab 中的字段?
|
5月前
|
数据挖掘 Linux Shell
linux 使用crontab 创建定时任务
linux 使用crontab 创建定时任务
129 0
linux 使用crontab 创建定时任务
|
4月前
|
监控 Ubuntu Linux
|
6月前
|
Ubuntu Linux 数据安全/隐私保护
Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888
Linux Ubuntu crontab 添加错误 提示:no crontab for root - using an empty one 888
141 3