澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

定时任务,crontab设置详解

2019-11-10 作者:澳门新萄京官方网站   |   浏览(150)

 

linux下crontab使用笔记

  1. 安装
    service crond status
    yum install vixie-cron
    yum install crontabs

  2. 实例
    每分钟打印当前时间到日志文件
    #crontab -e
    */1 * * * * date >> /tmp/date.txt
    #tail -f /tmp/date.txt (动态显示该文件)
    #crontab -e -u username
    0-58/2 * * * * echo "EVEN***n"
    #crontab -l -u username
    #tail -f /var/log/cron

  3. 格式
    */minute */hour */day */month */weekday COMMAND
    #每晚21:30 重启Apache
    30 21 * * * service httpd restart
    #每月1、10、22日的4:45重启Apache
    45 4 1,10,22 * * service httpd restart
    #每月1到10日4:45重启Apache
    45 4 1-10 * * service httpd restart
    #每隔两分钟重启Apache
    */2 * * * * service httpd restart
    1-59/2 * * * * service httpd restart
    #晚上11点到早上7点之间,每隔一小时重启Apache
    0 23-7/1 * * * service httpd restart
    #每天18:00至23:00之间每隔30分钟重启Apache
    0-59/30 18-23 * * * service httpd restart
    #低一级的时间不能用'*','*/A'表示每A秒执行一次
    */30 18-23 * * * service httpd restart #每30分钟执行一次

  4. 配置
    /etc/crontab #系统级crontab
    /var/spool/cron/username #username对应的crontab #crontab -e -l

  5. 日志
    /var/log/cron
    /var/spool/cron #该目录下存放各个用户的crontab
    /var/spool/mail #该目录下存放各个用户的cron邮件信息

  6. 错误

1. 安装 service crond status yum install vixie-cron yum install crontabs 2. 实例 每分钟打印当前时间到日志文件 #crontab -e */1 * * * *...

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。
 
如果无cron这个服务,执行: yum -y install vixie-cron
 
由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
 
 /sbin/service crond start //启动服务
 /sbin/service crond stop //关闭服务
 /sbin/service crond restart //重启服务
 /sbin/service crond reload //重新载入配置
 
你也可以将这个服务在系统启动的时候自动启动:
 在/etc/rc.d/rc.local这个脚本的末尾加上:
 /sbin/service crond start
 
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
 
 1、直接用crontab命令编辑
 
 cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
 
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
 crontab -l //列出某个用户cron服务的详细内容
 crontab -r //删除某个用户的cron服务
 crontab -e //编辑某个用户的cron服务  

Linux之crontab

最近系统服务器进行搬迁,又恰好需要使用定时任务运行程序,而我的程序主要使用PHP写的,然后总结了下定时任务的用法,但是在这里主要写的是关于crontab命令的用法,使用过程中遇到不少问题,例如no crontab for root等问题。

比如说root查看自己的cron设置:crontab -u root -l
 再例如,root想删除fred的cron设置:crontab -u fred -r
 在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
 进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
 
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
 
 分钟 (0-59)
 小時 (0-23)
 日期 (1-31)
 月份 (1-12)
 星期 (0-6)//0代表星期天
 
 除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:
 
每天早上6点
 
0 6 * * *定时任务,crontab设置详解。 echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
 
每两个小时
 
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
 
晚上11点到早上8点之间每两个小时,早上八点
 
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
 
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
 
0 11 4 * 1-3 command line
 
1月1日早上4点
 
0 4 1 1 * command line
 
每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

一 cron

crond位于/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最总引用/var/lock/subsys/crond。

 

cron是一个linux下的定时执行工具(相当于Windows下的scheduled task),可以在无需人工干预的情况下定时地运行任务task。由于cron 是Linux的service(deamon),可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start

现在cron这个服务已经在进程里面了,我们就可以用这个服务了。

Linux中利用crontab创建计划任务

Linux中用crontab例行工作安排

Linux crontab不执行问题排查

Ubuntu使用crontab定时任务

Linux计划任务(at batch crontab anacron)  

一、Linux系统安装crontab服务

  1.确认crontab是否安装

  # crontab -l

  如果报 “command not found” ,就说明该crontab服务没有安装

  如果报 “no crontab for root” ,就说明已经安装crontab服务了,请跳过步骤一,至于出现这个提示的解决办法请往下看。

 

  2.安装crontab服务

  centos系统,请执行以下命令:

style="color: #999999">//vixie-cron软件包是cron的主程序;  

# yum install -y vixie-cron  

style="color: #999999">//rontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序

# yum install crontabs

//启动服务   

#澳门新萄京官方网站, /sbin/service crond start   或者  systemctl crond start

//加入开机自动启动

# chkconfig --level 35 crond on

  ubuntu、debian系统,请执行以下命令:

//安装crontab服务  

# apt-get install cron  

//启动crontab服务(同时还有service cron stop 停止服务,service cron restart 重启服务)

# service cron start   

 

  3.测试是否安装成功了

  继续执行上面第一条命令:crontab -l

  这时会出现 “no crontab for root” 这是由于你还没有创建任何定时任务或者命令打错,即没有使用crontab -e命令去创建任何任务。但是到了这里,你的安装基本可以了。crontab命令详情请看下步

  

澳门新萄京官方网站 1

二 crontab

crontab位于/usr/bin/crontab。

 

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e 进入vi编辑模式,编辑的内容一定要符合下面的格式:

*/1 * * * * ls >> /tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:

分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天

定时任务,crontab设置详解。除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt

晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line

1月1日早上4点
0 4 1 1 * command line

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

 

二、crontab命令详解

  1.crontab命令主要有3个参数:

  -e :编辑用户的crontab

  -l :列出用户的crontab的内容

  -r :删除用户的crontab的内容

 

  2.功能说明:设置计时器

  补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:

语法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

  参数:

    -e   编辑该用户的计时器设置。

    -l    列出该用户的计时器设置。

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

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

  

  3.crontab -e命令详解

  # crontab -e

  如果第一次执行上面命令时,会让你选择编辑器,不过有些终端会默认帮你选择nano编辑器的,一般我们都会修改编辑器为vim,具体方法请看步骤三。

  然后会打开一个crontab的文件,然后点击 i 进行输入模式,输入一下内容:

  //每隔一分钟执行一次test.php

  # * * * * * php /var/test.php  

  输入完后保存退出,:wq。然后重启crontab服务

  // 不同服务器命令不一样,详情请看步骤一

  # service cron restart

 

  4.crontab -l

  查看crontab有哪些定时任务在执行,这里没什么好弊述的。

  

  5.crontab格式

  基本格式:* * * * * command

  格式说明:上面的*代表着不同的时间点,具体排序如下:分 时 日 月 周。

  例如:

  * * * * * php /var/www/hello/index.php >> /tmp/log/index.txt

  //表示每分钟执行一次,整句话的意思是说每分钟执行使用php执行index.php文件,并将信息打印到/tmp/log/index.txt文件中,具体路径自己改

  这里加个技巧关于查看某个文件,但又不想vim <文件名>的。可以使用cat <文件名>命令

  1. * */2 * * * php /var/www/index.php >> /tmp/index.txt

  2. * * */1 * * php /var/www/index.php >> /tmp/index.txt

  // 如果要设置没隔多久执行,则写为“*/数字”,在哪个位置就代表每隔多久执行一次。上面命令分别代表:

  1.每隔2小时执行一次

  2.每隔一天执行一次

 

三 编辑/etc/crontab配置文件

cron的系统级配置文件位于/etc/crontab。

cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab配置文件,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab -e进行的配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录

# run-parts

01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

更多详情见请继续阅读下一页的精彩内容:  

  • 1
  • 2
  • 下一页

一 cron crond位于/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最总引用/var/lock/subsys/crond。 cron是一个linux下的定时执行工...

三、修改crontab默认编辑器为vim

  1.debian终端下默认编辑器为nano,比如crontab -e就会打开nano,这个编辑器用起来很不习惯,想修改为vim,当然,你的debian系统必须先安装vim.如果已经安装vim,请输入如下命令:

# update-alternatives --config editor

  澳门新萄京官方网站 2

  然后选择/usr/vim/vim.basic就可以了,vim.tiny与vim.basic的区别是vim.basic为完全版的vim,而vim.tiny为简化版,功能上有所区别,如不支持高亮等等.

  输入数字   2   ,回车,再次打开crontab -e即可。

 crontab的使用就到此为止了,欢迎有问题的小伙伴在下方留言。

 

本文由澳门新萄京官方网站发布于澳门新萄京官方网站,转载请注明出处:定时任务,crontab设置详解

关键词: