每天一个Linux命令(44)crontab命令

    crontab命令被用来提交和管理用户需要周期性执行的任务,与windows下的计划任务类似。

    (1)用法:

    用法: crontab  [-u user]  file

     crontab  [-u user]  [ -e | -l | -r ]

    (2)功能:

    功能:  当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。

    (3)选项参数:

1) -l         列出当前计时器的设置,查看定时运行的程序

2) -e             编辑该用户的计时器设置,设置计时器

3) -r        删除该用户的计时器设置

4) -u<用户名称>  指定要设定计时器的用户名称

  (4)实例:(此命令用的不常,在此简要介绍)

1)每1分钟执行一次command

* * * * * command

2)每五分钟执行一次命令

 */5 * * * * command

3)在每天的17:00执行这个命令

00 17 * * *  command

4)在8:02,11:02,14:02,17:02,20:02 执行,在8点到20点的时间内,每三个小时执行一下命令

2 8-20/3 * * * command

以后会讨论crondtab的几个用法:

*创建一个新的crontab文件;

*列出crontab文件;

*编辑crontab文件;

*删除crontab文件;

恢复丢失的crontab文件;

    (5)其他:

1.什么是Windows的计划任务?

在Windows中,系统有一项重要的“计划任务”功能,通过设置“计划任务”,你可以将每天或某一天的某个时间需要做的事拟成计划,到约定的时间,不管你在电脑上进行什么工作,系统都会提醒你或者启动你设定好的任务程序。

2.crontab的简介:

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

3.crontab文件:

  crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。

4.Linux下的任务调度

Linux下的任务调度分为两类:系统任务调度和用户任务调度。

系统任务调度:  系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件:

[[email protected] /]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- 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
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

前三行是用来配置crond任务运行的环境变量。第一行SHELL变量指定了系统要使用哪个shell,这里是bash;第二行PATH变量指定了系统执行命令的路径;第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户。

 *: 表示任何时刻
  ,: 表示分割
-:表示一个段,如第二端里: 1-5,就表示1到5点
 /n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

用户任务调度:  用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致。

[[email protected] /]# cd /var/spool/cron
[[email protected] cron]# ll
总用量 0
/etc/cron.deny       该文件中所列用户不允许使用crontab命令 /etc/cron.allow      该文件中所列用户允许使用crontab命令 /var/spool/cron/      所有用户crontab文件存放的目录,以用户名命名

5.crond服务

  1)安装crontab:

 yum install crontabs

服务操作说明:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

  查看crontab服务状态:  service crond status

[[email protected] sunjimeng]# service crond status
Redirecting to /bin/systemctl status  crond.service
crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
   Active: active (running) since 五 2016-05-27 23:11:47 PDT; 1 weeks 5 days ago
 Main PID: 1303 (crond)
   CGroup: /system.slice/crond.service
           └─1303 /usr/sbin/crond -n

5月 27 23:11:47 localhost.localdomain systemd[1]: Started Command Scheduler.
5月 27 23:11:47 localhost.localdomain crond[1303]: (CRON) INFO (RANDOM_DELAY...
5月 27 23:11:48 localhost.localdomain crond[1303]: (CRON) INFO (running with...
Hint: Some lines were ellipsized, use -l to show in full.

  手动启动crontab服务:  service crond start

[[email protected] sunjimeng]# service crond start
Redirecting to /bin/systemctl start  crond.service

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

[[email protected] sunjimeng]# ntsysv

输入上述命令后,centOS弹出下面的页面:

  加入开机自动启动:     chkconfig –level 35 crond on    (以后再介绍)

时间: 2024-10-09 21:59:02

每天一个Linux命令(44)crontab命令的相关文章

Linux中使用crontab命令定时执行shell脚本或其他Linux命令

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行 如何往 cron 中添加一个作业? # crontab –e0 5 * * * /root/bin/backup.sh 这将会在每天早上5点运行 /root/bin/backup.sh Cron 各项的描述 以下是 crontab 文件的格式: {minute} {hour} {day-of-month} {month} {day-of-week} {full-pat

at命令和crontab命令

今天看了at命令和crontab命令,就总结下,也是回放下自己脑子里的东西,形成一个这个整体的认识. 一.at命令 这个命令是用来执行一次例行任务,比如我想要指定某个时间点来保存下某个目录中的文件. /etc/at.allow   /etc/at/at.deny这两个文件决定了你是否可以使用at 1.首先查看at命令是否开启,有些不开启 service atd status 如果显示running就OK了;如果不曾开启,就手动开启 service atd start 2.at启动了,可以写自己的

Linux中的crontab命令用法

Crontab 在linux中,crontab的用来设置定期执行指定的命令,我们可以用它来指定一些需要重复的事情,Linux系统的用户只需将想要定期要执行的命令序列加到crontab文件中,操作系统即会按用户配置的时间执行这些命令序列.向crontab文件里添加指令之前,需要检查下crontab服务是否已启动和是否开机自动启动: [查看状态] Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的 可以使用service crond status进行查看状态,下图是我在ce

Linux下使用crontab命令以及Python脚本实现自动签到

关于这一部分, 我首先介绍下如何实现使用Python脚本实现签到功能其实,linux下有个命令叫做curl,完全可以完成模拟签到的功能,但是为了练习Python,我就用Python来写了.有这个想法完全是因为实验室的学长开发了一款App,上边收个起床签到,还有排名,为了能那个首签... 言归正传 首先,因为是手机上的App, 所以,我们需要抓包看下它具体的URL以及发送的内容是什么,关于这部分内容我就不在赘述了,我实现的功能主要有模拟发布状态和模拟签到两种功能,两个的URL也是不同的.为了不让学

linux命令:crontab命令(转)

一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. Linux下的任务调度分为两类,系统任务调度和用户任务调度. 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个crontab文件,这个就是系统任务调度的

转 linux任务调度之crontab命令

crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 在Linux系统中,Linux任务调度的工作主要分为以下两类: 1.系统执行的工作:系统周期性所要执行的工作,如备份系统数据.清理缓存 2.个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置 一./etc/crontab./etc/cron.deny

linux at和crontab命令

linux的2个命令at和crontab 这2个命令都是在指定的时间执行指定的命令,不同点at命令只能执行一次,crontab命令可以重复执行. at命令 符合条件的时间格式 hh:mm,mid-night,noon,teatime(4 pm)等等. at 时间 回车(回车后会进入at命令) at>输入命令 (结束命令使用 ctrl+D,命令行会出现<EOT>的字样) 见下图 列出所有的at命令 at -l crontab命令 crontab的命令固定格式 mm   hh   date 

linux常用命令:crontab 命令

前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系

Linux新手学堂 Crontab命令的语法

crontab 命令的用途就是:提交.编辑.列出或除去 cron 作业. 语法 crontab [ -e [UserName] | -l [UserName] | -r [UserName] | -v [UserName] | File ] 描述 crontab 命令提交.编辑.列出或除去 cron 作业.一个 cron 作业是一个命令,其运行是由 cron 守护程序在规则的调度间隔执行的.要提交一个 cron 作业,指定 crontab 命令用 -e 标志.crontab 命令调用一个编辑会话

linux下使用crontab命令执行定时任务

最近因工作技术问题,难以解决生产日志第二天不打印问题,日志原因解决不了,于是想起了使用定时任务明天重启服务,网上百度了一下,使用crontab命令可以完成定时任务, 大家其实不用记住太多,使用xshell或者ssh进入命令行,敲击crontab -e进入定时任务的编辑模式, 0 5 * * *  /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bin/stopWeblogic.sh 0 6 * * *  /ho