精华内容
下载资源
问答
  • 多方查找发现Shell脚本中的Java命令需要引入环境变量方可正常执行。因此做了一下修改,脚本如下(仅供参考): 1、crontab执行配置 * * * * * cd /项目目录 && ./auto_start.sh >> /log/auto.out 2、Shell脚本 #!/...
  • crontab定时执行shell脚本

    千次阅读 2018-03-14 21:06:51
    我们一般是定时执行shell脚本一、步骤(1)、编写好sh,设置成可执行,然后编辑crontab配置信息: 到你的项目目录下,输入crontab –e,这样就以编辑模式打开个人的crontab配置文件,(2)加入: 0 0 * * * /home/...

    使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。

    例如系统管理员安排一个备份任务使其每天都运行。。我们一般是定时的执行shell脚本

    一、步骤

    (1)、编写好sh,设置成可执行,然后编辑crontab配置信息:

        到你的项目目录下,输入crontab –e,这样就以编辑模式打开个人的crontab配置文件,

    (2)加入:

        0 0 * * * /home/linrui/XXXXXXXX.sh

            每天凌晨运行指定的.sh文件

        或者:

        */1 * * * * sh xxxxxx/sendRequest.sh /dev/null 2>&1 &

            每一分钟执行一次sendRequest.sh

    (3)、然后退出保存,就会自动的根据你的配置执行脚本。

    二、Cron 格式以及参数

    以下是 crontab 文件的格式:

        {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}

        o minute: 区间为 0  59

        o hour: 区间为 23

        o day-of-month: 区间为 31

        o month: 区间为 12. 1 1. 1212.

        o Day-of-week: 区间为 7. 周日可以是07.

    参数配置:

        crontab e : 修改 crontab 文件如果文件不存在会自动创建。

        crontab l : 显示 crontab 文件。

        crontab -r : 删除 crontab 文件。

        crontab -ir : 删除 crontab 文件前提醒用户。 

    三、Crontab 示例

    1、在 凌晨00:01运行

        1 0 * * * /xxx/xxx/xxx.sh

    2、每个工作日23:59都进行备份作业。

        59 11 * * 1,2,3,4,5 /xxx/xxx/xxx.sh  

    或者如下写法:

        59 11 * * 1-5 /xxx/xxx/xxx.sh

    3、每分钟运行一次命令

        */1 * * * * /xxx/linrui/xxx.sh

    4、每个月的1 14:10 运行

        10 14 1 * * /xxx/xxx/xxx.sh

    展开全文
  • crontab 定时执行shell脚本

    千次阅读 2017-03-03 11:46:56
    header最近的工作,需要做一个给预约的用户在预约到期的前两个小时进行消息的推送,所有就想到用服务器定时器任务...服务器:centos6.52、编写shell脚本写个简单循环好了:#! /bin/sh A='hello world' echo 'A is :' ech

    问题描述

    最近的工作,需要做一个给预约的用户在预约到期的前两个小时进行消息的推送,所有就想到用服务器定时器任务做了,纯小白,mark一下最简单的流程。

    1、环境配置

    web容器:Apache
    php版本:5.5.3x
    python版本:2.6
    服务器:centos6.5

    2、编写shell脚本

    写个简单循环好了:

    #! /bin/sh
    A='hello world'
    echo 'A is :'
    echo $A
    for loop in 1 2 3 4 5 6 7 8 9 10
    do
        echo "loop is : $loop"
    done

    命令为hi.sh。存放的路径为/var/www/html/myshell
    第一行是sh脚本的执行器的位置。$符号是shell脚本中,用于取得变量的。loop那边就是循环了。

    3、开始CRONTAB任务

    1.先检查服务器上是否有crontab服务,在命令行下面写services 然后tab就可以看到现在的任务了,如果没有的话,就根据自己的服务器的系统去安装好了。注意版本的对应。这是centos安装的命令:
    [root@CentOS ~]# yum install vixie-cron
    [root@CentOS ~]# yum install crontabs

    2.下面是有关crontab的一些说明
    1>vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
    /sbin/service crond start //启动服务
    /sbin/service crond stop //关闭服务
    /sbin/service crond restart //重启服务
    /sbin/service crond reload //重新载入配置
    查看crontab服务状态:service crond status
    手动启动crontab服务:service crond start
    查看crontab服务是否已设置为开机启动,执行命令:ntsysv
    加入开机自动启动:
    chkconfig –level 35 crond on
    2>crontab使用
    crontab的格式什么的我就不多说了,自己可以百度一下。我主要记录一下最简单的使用方式吧。
    先查看crontab任务,显示没有任务
    这里写图片描述
    创建任务和查看,此处的参数格式一定要写对,并且执行的脚本文件要写绝对路径。
    这里写图片描述
    删除任务
    这里写图片描述
    tips:
    写完定时任务,记得重启crond服务:service crond restart
    3>查看crontab任务的运行状态,我们可以vim /var/log/cron
    这里存放的是crontab的日志文件

    在应该是最简(ruo)单(zhi)的方法了吧,然后我想执行一个服务器上的php文件,就让.sh文件去请求就好了。我是这么想的,不过我觉得如果用Python来写,应该会更棒吧。有机会去尝试一下。

    展开全文
  • 使用crontab定时执行shell脚本

    万次阅读 多人点赞 2018-02-08 08:48:04
    那么今天就来简单说下如何使用crontab定时执行shell脚本。步骤一 首先我们先看一下是否安装了crontab。一般情况下linux系统会自带crontab及crond。如果没有安装,请使用以下指令安装:yum install vixie-cron ...

    很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等不适合人工经常做的一些操作。


    那么今天就来简单说下如何使用crontab定时执行shell脚本。


    步骤一    首先我们先看一下是否安装了crontab。一般情况下linux系统会自带crontab及crond。如果没有安装,请使用以下指令安装:yum install vixie-cron           yum install crontabs (PS:Ubuntu操作系统下请使用apt-get)




    步骤二    然后我们写一个名字叫做liao.sh的shell脚本。很简单,就是输出一段字符。




    步骤三    我们的目的是每分钟执行一次这个shell脚本,所以要再建立一个存放日志的log文件,然后给予liao.sh权限。




    步骤四   然后我们就要使用crontab了,首先进入它的配置文件,在/etc/crontab  中添加我们的调度命令。注意,该配置文件是一个只读文件需要使用sudo vi  /etc/crontab 指令打开文件,不然有可能没有修改权限。




    文件/etc/crontab中每行任务的描述格式如下: 

     
    minute hour day month dayofweek command


    minute - 从0到59的整数 
    hour - 从0到23的整数 
    day - 从1到31的整数 (必须是指定月份的有效日期)
    month - 从1到12的整数 (或如Jan或Feb简写的月份)
    dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
    command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令) 

     
    comp表示以comp用户身份来运行


    >>表示运行脚本后重定向到log文件中


    对于以上各语句,星号(*)表示所有可用的值。例如*在指代month时表示每月执行(需要符合其他限制条件)该命令。


    步骤五    开启crontab服务




    步骤六    查看运行结果




    展开全文
  • 如果我们使用 crontab定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。 解决方法: 1、所有命令需要写成绝对路径形式,如: /usr/local/bin/...

    1.首先查看crontab是否有启动

    service crond status
    

    在这里插入图片描述
    如上图所示则正常运行中

    2.添加定时任务

    有两种方法

    a.修改文件

    vim /etc/crontab
    

    在这里插入图片描述
    然后添加定时任务,注意环境变量和用户信息,
    在这里插入图片描述
    脚本无法执行问题
    如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。

    解决方法:

    1、所有命令需要写成绝对路径形式,如: /usr/local/bin/docker。

    2、在 shell 脚本开头使用以下代码:

    #!/bin/sh
    
    . /etc/profile
    . ~/.bash_profile
    

    3、在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,例如:

    20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh
    

    b.使用命令

    crontab -e
    

    一样如上添加即可

    3.查看定时任务执行情况

    tail -f /var/log/cron
    

    或者

    service crond status -l
    

    ps:定时任务添加语法详解

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.8/bin:/usr/local/sbin:/usr/local/bin:/root/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
    

    规则很简单,看注释就能看懂了,从左到右分别是 分钟(0-59)、小时(0-23)、天(1-31)、月(1-12)、星期(0-6)、用户名、要执行的命令或者脚本
    每几分钟或者几小时或者几天 只要在对应*号下添加即可
    如:
    每一分钟执行一次 /bin/ls:

    */1 * * * * /bin/ls
    

    每十分钟执行一次 /bin/ls:

    */10 * * * * /bin/ls
    

    每一小时执行一次 /bin/ls:

    * */1 * * *  /bin/ls
    

    每三小时执行一次 /bin/ls:

    * */3 * * *  /bin/ls
    

    实例

    每一分钟执行一次 /bin/ls:

    * * * * * /bin/ls
    

    在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:

    0 6-12/3 * 12 * /usr/bin/backup
    

    周一到周五每天下午 5:00 寄一封信给 alex@domain.name:

    0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
    

    每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分…执行 echo “haha”:

    20 0-23/2 * * * echo "haha"
    

    下面再看看几个具体的例子:

    0 */2 * * * /sbin/service httpd restart  意思是每两个小时重启一次apache 
    
    50 7 * * * /sbin/service sshd start  意思是每天7:50开启ssh服务 
    
    50 22 * * * /sbin/service sshd stop  意思是每天22:50关闭ssh服务 
    
    0 0 1,15 * * fsck /home  每月1号和15号检查/home 磁盘 
    
    1 * * * * /home/bruce/backup  每小时的第一分执行 /home/bruce/backup这个文件 
    
    00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;  每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
    
    30 6 */10 * * ls  意思是每月的1、11、21、31日是的6:30执行一次ls命令
    注意:当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1 即可,如:
    
    20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1 
    
    展开全文
  • linux crontab定时执行shell脚本

    千次阅读 2019-04-15 15:53:51
    linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下: crontab -e 编辑周期任务 30 21 * * * /etc/init.d/smb restart 每晚的21:30重启smb crontab命令说明:  crontab命令被用来提交...
  • 大家好,今天发表一篇比较基础的文章,对于初学者来说应该算是比较简单而且实用的--通过crontab定时执行shell脚本 今天测试了一个elk系统捕获日志信息的功能,发现接口返回的数据与日志来源内容不一致,然后就通过...
  • linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务 1.crontab语法 crontab (选项)(参数) 例如:crontab -e 2.crontab选项 -e:修改 crontab 文件,如果文件不存在会自动创建。 -l:显示 ...
  • 经排查发现,crontab定时执行shell脚本时,并没有执行golang程序,golang程序执行命令如下: go run main.go 2.问题原因 使用crontab定时执行时,go命令无法被找到。 3.问题解决 go命令使用全路径,进行执行: 方法...
  • Ubuntu crontab定时执行shell脚本

    千次阅读 2018-10-31 11:21:00
    Ubuntu crontab定时执行shell脚本 最近打算让服务器定时的编译项目源码,及时产生二进制文件。写好了编译脚本后,就需要用到crontab设置定时任务。 Crontab与Cron 使用crontab命令来配置cron进程。cron进程...
  • 写一个简单的shell命令: 1.先进入根目录 ... 2.编写第一个shell文件 hello.sh vim hello.sh ...3、通过chmod命令赋予该脚本执行权限 chmod 755 hello.sh 4、新增调度任务(5分钟执行一次) vim /etc/c...
  • 编写shell脚本时倒是挺顺利的,但在添加crontab定时执行shell脚本时,遇到了麻烦事。问题是这样的。我的shell脚本主要的代码是:(文件名为test.sh)declare -i ii=0log_path=/home/testdatacd $log_pa...
  • centos crontab定时运行shell脚本

    千次阅读 2018-06-07 22:50:11
    1、安装yum install crontabs2、创建脚本touch test.sh3、编辑脚本vi test.sh4、编辑crontab -e (类似于vi操作)20 23 * * * /home/pe/test.sh表示每天晚上23:20运行脚本test.sh5、手动启动crontab服务:service ...
  • 内核是debian的,用dump命令给数据库做定时备份,利用shell脚本执行dump备份命令,用crontab定时执行shell脚本,只保留最近7天生成的备份文件,当超过7个文件时删除最旧的一个。原来以为是crontab的权限不够,原来...
  • 步骤一 首先我们先看一下是否安装了crontab。一般情况下linux系统会自带crontab及crond。如果没有安装,请使用以下指令安装:yum install ...然后我们写一个名字叫做liao.sh的shell脚本。然后给予liao.sh权限。 ...
  • 在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle 中可以利用dbms_job包定时执   在oracle 中可以...
  • 情况说明: linux中执行shell脚本使用root用户执行没有问题,但是当使用Crontab定时调度时则会出现报错: GSS initiate faild 解决方案:
  • 问题:脚本内调用存储过程,脚本直接执行没问题,使用crontab 执行脚本存储过程未执行 原因:缺少oracle环境变量 解决:在shell脚本里添加oracle的环境变量 #!/bin/sh PATH=$PATH:$HOME/bin //环境变量 ...
  • 下面,笔者说下,如何使用Linux 中的Crontab定时执行shell脚本,也是工作中实际遇到需要定时执行shell脚本,在这做个记录,以后可以方便查看,如果你也遇到类似的,可以做个参考。 打开上面的博客链接,可以看到...
  • 一、定时执行shell.sh脚本 1、环境描述:在 /home/software/shellfile目录下,本人编写有shell.sh脚本, 2、手动执行命令:sh /home/software/shellfile/shell.sh>> /home/software/shellfile/test.log ...
  • 在添加定时任务执行 指定的shell脚本任务时,有的脚本因为程序原因需要在指的路径下执行,使的我们执行shell不得不进行相对路径下执行。但是添加到定时任务中shell脚本相对路径就发生改变,就需要我们将shell脚本的...
  • 多方查找发现Shell脚本中的Java命令需要引入环境变量方可正常执行。因此做了一下修改,脚本如下(仅供参考): 1、crontab执行配置 * * * * * cd /项目目录 &amp;&amp; ./auto_start.sh &gt;...
  • 1、编写脚本: #!/bin/bash if [ ! -f "/home/hadoop/shell/crontab/test" ]; then echo "test文件不存在" touch /home/hadoop/shell/crontab/test else echo “删除test文件” rm -rf /home/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,569
精华内容 8,227
关键字:

crontab定时执行shell脚本