精华内容
下载资源
问答
  • 下面小编就为大家带来一篇Linux crontab定时任务配置方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Crontab定时任务配置

    万次阅读 2020-03-26 20:42:07
    一、开启crontab 1.查看crontab是否启动 sudo launchctl list | grep cron 2. 检查需要的文件 ls -al /etc/crontab 3.如果crontab文件不存在则创建 sudo touch /etc/crontab 上述操作完成之后就可以正常...

    一、开启crontab

    1.查看crontab是否启动

    sudo launchctl list | grep cron

    2. 检查需要的文件

    ls -al /etc/crontab

    3. 如果 crontab 文件不存在则创建

    sudo touch /etc/crontab

    上述操作完成之后就可以正常使用crontab啦

    二、crontab服务开启、关闭

    1.开启

    sudo /usr/sbin/cron start

    2.重启

    sudo /usr/sbin/cron restart

    3.关闭

    sudo /usr/sbin/cron stop

    三、命令

    crontab [-u user] file
    crontab -e
    crontab -l
    crontab -r
    crontab -i
    

    1. crontab -u user

    • -u user :用来设定某个用户的 crontab 服务;

    • file :命令文件的名字,表示将 file 做为 crontab 的任务列表文件,载入 crontab。如果命令行中没有指定这个文件,crontab 将接受标准输入,即键盘上键入的命令,并载入 crontab

    2. crontab -e

    • 编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab文件;

    • 进入之后如果编辑不了,先按一下a,就可以进入编辑了。
    • 编辑完成之后保存和退出

    先按esc, 输入 :wq  ,即保存并退出

    3. crontab -l 

    • 显示某个用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab文件内容;

    4.crontab -r

    • 从 /var/spool/cron 目录中,删除某个用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。

    5.crontab -i

    • 在删除用户的crontab文件时给确认提示。

    四、crontab 文件格式

    1. 格式

    • 第1列:分钟,0~59
    • 第2列:小时,0~23
    • 第3列:日期,1~31
    • 第4列:月份,1~12
    • 第5列:星期,0~7(0和7表示星期天)
    • 第6列:要运行的命令(如果有多个命令用 && 隔开)

    2. 特殊字符

    • 星号(*) :代表所有可能的值,例如,month字段如果是星号,则表示在满足其它字段的制约条件后,每月都执行该命令操作;

    • 逗号(,) :可以用逗号隔开的值,指定一个多元素的列表,例如:1,2,5,7,8,9

    • 中杠(-) :可以用整数之间的中杠表示一个整数范围,例如“2-6”表示:2,3,4,5,6

    • 正斜线(/) :可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

    3. 示例:

    • 每1分钟执行一次
    */1 * * * *
    
    • 每小时的第3和第15分钟执行
    3,15 * * * *
    
    • 每隔两天的上午8点到11点的第3和第15分钟执行
    3,15 8-11 */2 * *
    
    • 每个星期一的上午8点到11点的第3和第15分钟执行
    3,15 8-11 * * 1
    • 每月的4号与每周一到周三的11点重启smb
    0 11 4 * mon-wed /etc/init.d/smb restart
    • 每小时执行/etc/cron.hourly目录内的脚本
    01 * * * * root run-parts /etc/cron.hourly

    说明:
    run-parts这个参数,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了

    五、crontab 创建任务

    • 编辑定时任务,按下a ,进入vim编辑模式
    crontab -e
    
    • 进入 vim 编辑模式,输入指定的定时任务,按esc,输入 :wq 保存并退出
    # 每间隔 3分钟,执行一次python脚本jupyter_convert.py
    
    */3 * * * * python /Users/******/jupyter_convert.py

    六、常见问题

    1. 使用crontab执行脚本时,要确保 crontab 和脚本是否开启执行权限;

    2. 执行报错,可通过输入 mail 查看具体问题

    3. 执行报错问题为python编码问题 : SyntaxError: Non-ASCII character '\xe6' in file *******,可尝试如下方法:在python文件首行加入

    #coding=UTF-8

    4. 路径问题

    单独执行定时任务时候没有问题,单独执行python脚本没有问题,此定时任务不执行原因是因为python路径要写绝对路径

    首先在linux上执行命令:where is python3.8 或者 which python3.8,得到python的绝对路径

    which python3.8
    /usr/local/bin/python3.8

    设定执行任务

    30 8 * * * /usr/local/bin/python3.8 /user/loacl/bin/***/***.py

     

    展开全文
  • 因为测试工作中需要在服务器上配置定时任务执行脚本,使用到了linux 的crontab。特此记录一下配置的整个流程。 crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件...

    因为测试工作中需要在服务器上配置定时任务执行脚本,使用到了linux 的crontab。特此记录一下配置的整个流程。
    crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

    1.检查是否安装了crontab,如果提示未安装请自行安装,crontab安装包在系统光盘里面的pacekage文件夹crontabs安装包。
    rpm -qa | grep crontab

    2.crontab服务启动与关闭。
    /etc/init.d/crond stop           --关闭服务
    /etc/init.d/crond start          --启动服务
    /etc/init.d/crond restart        --重启服务
    /etc/init.d/crond reload         --重新载入配置

    3.crontab在/etc目录下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个目录和crontab,cron.deny二个文件。

    cron.daily 是每天执行一次的job
    cron.weekly 是每个星期执行一次的job
    cron.monthly 是每月执行一次的job
    cron.hourly 是每个小时执行一次的job
    cron.d 是系统自动定期需要做的任务
    crontab 是设定定时任务执行文件
    cron.deny 是用于控制不让哪些用户使用Crontab的功能的文件

    4.用户配置文件
    每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般情况下我们编辑好用户的cron配置文件保存退出后,
    系统会自动就存放于/var/spool/cron/目录中,文件以用户名命名。linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内容。

    5.crontab文件格式

    minute: 表示分钟,可以是从0到59之间的任何整数。
    hour:表示小时,可以是从0到23之间的任何整数。
    day:表示日期,可以是从1到31之间的任何整数。
    month:表示月份,可以是从1到12之间的任何整数。
    week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
    command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

    6.特殊字符:
    星号(*):代表每的意思,例如month字段如果是星号,则表示每月都执行该命令操作。
    逗号(,):表示分隔时段的意思,例如,“1,3,5,7,9”。
    中杠(-):表示一个时间范围,例如“2-6”表示“2,3,4,5,6”。
    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

    下面以一个实例来说明整个流程:

    1.首先在/home/mstest目录下面创建一个sh脚本test.sh,给test.sh脚本执行赋权chmod a+x test.sh;
    2.然后运行crontab –e 编写一条定时任务 */5 * * * * /home/mstest/test.sh,在每5分钟执行一次test.sh脚本。 
    3.可以 crontab -l 查询当前用户定时任务,或者 crontab -r  删除当前用户所有定时任务  
    4.5分钟后查看任务执行情况
    备注:新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。

    具体实例

    0 0 8 * * ?         每天8点执行一次
    0 0/15 8-23 * * ?   每天8~23点、隔15分钟执行一次

    展开全文
  • 主要介绍了Linux定时任务的设置及 crontab 配置指南,需要的朋友可以参考下
  • 本篇文章主要介绍了Linux中crontab定时任务不执行的原因,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • crontab定时任务配置方法(详解)

    万次阅读 2018-08-31 16:58:10
    crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。 文章除了对...

    目录

    概念/介绍

    CRONTAB语法及应用

    1. 查看当前用户的定时任务

    2. 编辑当前用户的定时任务

    3. 删除当前用户的定时任务

    4. 任务详解

    5. 注意:


    概念/介绍

    crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

    cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许用户拥有自己的crontab文件。

    crontab文件一般位于/etc/下,这里面存放系统运行的的调度程序。

    [root@localhost ~]# more /etc/crontab

    SHELL=/bin/bash

    PATH=/sbin:/bin:/usr/sbin:/usr/bin

    MAILTO=root

    HOME=/

    # run-parts

    01 * * * * root run-parts /etc/cron.hourly

    CRONTAB语法及应用

    1. 查看当前用户的定时任务

    [oracle@localhost ~]$ crontab -l

    * * * * * /home/oracle/test.sh >/dev/null 2>&1

    2. 编辑当前用户的定时任务

    可以在编辑状态修改、删除、新增一些定时任务。注释一般用#

    [oracle@localhost ~]$ crontab -e

    3. 删除当前用户的定时任务

    [root@localhost ~]# crontab -r

    [root@localhost ~]# crontab -l

    no crontab for root

    4. 任务详解

    • test.sh执行文件举例:

    SHELL=/bin/bash

    PATH=/sbin:/bin:/usr/sbin:/usr/bin

    MAILTO=root

    HOME=/u01/rfc

    • 定时任务设置举例:

    #>输出内容不打印到屏幕上,而是输出到*.txt文件中

    #追加而不是覆盖,可以用 >>代替>

    */5 * * * * /u01/rfc/test.sh > /u01/rfc/logs/test.txt 2>&1 

     

    • 解析crontab任务

    a. 定时任务时间含义解释

    # 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

    b.每个条目中各个域的意义和格式:

    第一列 分钟: 0——59

    第二列 小时: 0——23

    第三列 日 : 1——31

    第四列 月 : 1——12

    第五列 星期: 星期0——6(0表示周天,1表示周一。。。)

    第六列 要运行的任务命令(0表示键盘输入;1表示标准输出;2表示错误输出)默认值为1

    前面五列有四种写法: 

    1. * 表示第几分钟(小时/日/月/星期)执行一次 ;
    2. */n 表示每n分钟(小时/日/月/星期)执行一次;
    3. T1-T2 表示从T1到T2分钟(小时/日/月/星期)要执行任务;
    4. a,b,c 表示a,b,c分钟(小时/日/月/星期)分别执行一次; 

    第六列:2>&1 是将错误输出重定向到标准输出。 然后将标准输入重定向到文件test.txt。&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。

     

    5. 注意:

    1. 在SHELL中设置了必要的环境变量;例如一个shell脚本手工执行OK,但是配置成后台作业执行时,获取不到ORACLE的环境变量,这是因为crontab环境变量问题,Crontab的环境默认情况下并不包含系统中当前用户的环境。

    2. 尽量所有的文件都采用完全路径方式,避免使用相对路径。

    展开全文
  • Linux下的crontab定时任务配置和启动

    千次阅读 2020-06-07 11:52:09
    Linux下的crontab定时任务配置和启动,安装查看,添加,执行。

    安装crontab

    [root@tingnan-DB3 tandelindata]# yum install crontabs
    

    创建脚本文件

    [root@tingnan-DB3 init.d]#  touch a.sh
    [root@tingnan-DB3 init.d]# chmod 777 111.sh
    [root@tingnan-DB3 init.d]#  vi 111.sh
    /usr/bin/Rscript /tandelindata/ETL_code/R_oracle_mysql.R
    

    添加定时任务

    [root@tingnan-DB3 tandelindata]# crontab -e
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/
    
    */6 * * * * ./home/test_shell/test2.sh  # 定时间隔6分钟执行一次
    

    启动定时任务

    [root@tingnan-DB3 tandelindata]# service crond restart   # 重启定时任务, 有restart和reload两个命令
    [root@tingnan-DB3 tandelindata]# service crond status  # 查看执行报错情况 
    

    列出定时任务列表

    [root@tingnan-DB3 tandelindata]#  crontab -l   
    

    查看运行结果

    [root@tingnan-DB3 tandelindata]# tail -f /var/log/cron    # 执行日志查,发现
    

    cron设置为在开机的时候自动启动

    [root@tingnan-DB3 tandelindata]# vi /etc/rc.local
    [root@tingnan-DB3 tandelindata]# /bin/systemctl start crond.service
    

    其它常使用命令

    service crond start //启动服务
    service crond stop //关闭服务
    service crond restart //重启服务
    service crond reload //重新载入配置
    service crond status //查看服务状态

    crontab -u //设定用户的cron服务
    crontab -l //查看当前用户下cron调度内容
    crontab -r //删除用户的cron服务
    crontab -e //编辑用户的cron服务
    crontab -i //打印提示,输入yes等确认信息

    脚本原理:定时任务的每段为:分,时,日,月,周,用户,命令。例如:*/5 * * * * ./home/test_shell/test2.sh # 定时间隔5分钟执行一次

    执行结果日志

    [root@tingnan-DB3 tandelindata]# tail -f /var/spool/mail/root  # 执行结果日志
    

    调度执行日志结果

    111.sh脚本如下:

    /usr/bin/Rscript /tandelindata/ETL_code/R_oracle_mysql.R
    

    调度日志脚本结果如下:

    [root@tingnan-DB3 ~]#  crontab -e
    
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/
    
    */6 * * * * /bin/sh /home/111.sh
    

    R语言程序脚本结果如下:

    library(DBI)
    library(RMySQL)
    library(RJDBC) 
    library(rJava)
    ### 创建Oracle数据库连接
    setwd("//tandelindata//data_temp//") ## 在该路径下方架包:ojdbc6.jar,才可以读取Oracle数据库
    drv<-JDBC("oracle.jdbc.driver.OracleDriver","ojdbc6.jar", identifier.quote="\"")  ##java中JDBC的套路
    conn<-dbConnect(drv,"jdbc:oracle:thin:@10.113.113.166:1520:XE","********","**********") ##建立一个连接,**XE**是服务名称
    table1<-dbGetQuery(conn,"SELECT * FROM T_SYN_YJXX_ZK01")  ##根据sql记录获取Oracle中表的数据
    table2<-dbGetQuery(conn,"SELECT * FROM T_SYN_SSZB_ZK01")  ##根据sql记录获取Oracle中表的数据
    colnames(table1) <- iconv(colnames(table1),from="UTF-8",to="GBK") ## 转换对象数据编码和数据库编码统一,解决乱码
    colnames(table2) <- iconv(colnames(table2),from="UTF-8",to="GBK") ## 转换对象数据编码和数据库编码统一,解决乱码
    ### 创建MySQL数据库连接
    con <- dbConnect(MySQL(), host="*******", dbname="******", user="******", password="************")
    dbWriteTable(con,"auto_coal_waring",table1,overwrite=T)  ## 增量更新
    dbWriteTable(con,"auto_coal_analysis",table2,overwrite=T)  ## 增量更新
    dbWriteTable(con,"auto_coal_waring_history",table1,append=T)  ## 历史存储
    dbWriteTable(con,"auto_coal_analysis_history",table2,append=T)  ## 历史存储
    

    在这里插入图片描述

    最终数据表每隔5分钟执行一次,获取传感器采集的数据,进行存库。
    在这里插入图片描述

    展开全文
  • 我们使用Linux系统的时候常常会遇到...用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下: minute hour
  • 本文记录了基于Debian的docker容器设置定时任务的方式。 案例背景 我部署一个前端项目,使用nginx镜像,由于官方镜像是基于debian,对比alpine也不觉得体积差多少,于是就使用debian作为容器系统。 Doc
  • Crontab定时任务配置  最近用flask 写一个小工具,需要端口一直可以稳定的支持访问,奈何环境用的人太多,老有人误删除进程,于是想用crontab 实现一个守护进程,可以定时检测需要的进程是否存在,不存在重新启动...
  • crontab定时任务实例

    2019-08-08 13:41:09
    配置crontab 运行 crontab -e 写入 00 06 * * * sh /home/BlueRunSpider/qmp/function/API/function/qmp_original_data_build/update/dailyupdate.sh >> /home/BlueRunSpider/qmp/function/API...
  • Docker里crontab定时任务

    千次阅读 2019-10-24 11:16:53
    想要在docker里执行crontab定时任务,最大的坑就是不执行定时任务,大体原因有以下: 时区不对,docker里的时区和我国差8个小时。cp 上海时区进docker 的/etc/localtime crond 服务没启动,Dockerfile的cmd一行需...
  • linux crontab 命令,最小的执行时间是一分钟。这篇文章主要介绍了linux定时任务crontab 实现每秒执行一次的方法,需要的朋友可以参考下
  • crontab定时任务最小力度是控制到分钟 所以如果实现定时执行在分钟以内 故用循环来实现 查看现在的定时任务 crontab -l 配置非系统以外的定时任务 crontab -e 新添加的配置定时任务不会立即生效...
  • 如果未安装需要先安装 CentOS(ubantu自行百度,原理类似)下面的安装方法: [root@CentOS ~]# yum install vixie-cron ...1.crontab -e 新增 定时任务 10 0 * * * . /etc/profile;/bin/sh /home/appuser/...
  • crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος)...
  • 本篇介绍 crontab 设置定时任务,并且把 crontab 加入到开机自启动中。 1、配置一个每天自动重启的功能: 如果支持crontab 可直接 crontab -l 查看目前已有的定时任务 如果当前的linux不支持crontab 则需要进行配置...
  • crontab定时任务示例

    2019-02-24 00:07:27
    crontab 的时间格式是 分 时 日 月 周 0 * * * * cmd #整点执行 05 15 * * * cmd #每天15:05执行 05 15 1 * * cmd #每月1号...
  • Linux之crontab定时任务

    万次阅读 多人点赞 2018-05-19 17:27:25
    一、概述 ...与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任...
  • crontab定时任务不生效问题解决

    千次阅读 2020-12-03 15:23:52
    导致crontab定时任务不生效问题可能的原因非常多 首先,排查一些可能会导致问题出现的简单原因。 1.Linux的时间与互联网时间不一致 2.定时执行的.sh文件无执行权限 3.crontab进程未启动 4.定时任务重定向日志的路径...
  • 名称 : crontab使用权限 : root用户和crontab文件的所有者语法 : crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]说明 : crontab 是用来让使用者在固定时间或固定间隔执行程式之用,...
  • aix设置crontab 定时任务

    万次阅读 2018-04-25 08:53:14
    执行步骤1) 编辑指定用户下crontab 如果用户为use 则执行crontab -e use按insert 执行编辑2) 新建定时任务例1:每天11点17执行先压缩后删除命令,注意%是特殊字符需要转义一下17 11 * * * tar cvf /weblog10/App...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,598
精华内容 11,439
关键字:

crontab定时任务配置