精华内容
下载资源
问答
  • windows下配置定时执行shell脚本.docx
  • 使用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定时执行shell脚本时,并没有执行golang程序,golang程序执行命令如下: go run main.go 2.问题原因 使用crontab定时执行时,go命令无法被找到。 3.问题解决 go命令使用全路径,进行执行: 方法...

    1.问题说明

    编写了一个golang程序,在shell脚本中定时进行执行,形成巡检表格,使用mailx邮件服务发送给相关人员。
    结果发现每天的邮件并没有定时发送,但是手动执行shell脚本,golang程序是可以执行的。经排查发现,crontab定时执行shell脚本时,并没有执行golang程序,golang程序执行命令如下:

    go run main.go
    

    2.问题原因

    使用crontab定时执行时,go命令无法被找到。

    3.问题解决

    go命令使用全路径,进行执行:
    方法如下:

    • 查询go命令所在路径
    # which go
    /usr/local/go/bin/go
    
    • shell脚本中,填写go命令的绝对路径
    /usr/local/go/bin/go run main.go
    
    展开全文
  • Ubuntu crontab定时执行shell脚本

    千次阅读 2018-10-31 11:21:00
    Ubuntu crontab定时执行shell脚本 最近打算让服务器定时的编译项目源码,及时产生二进制文件。写好了编译脚本后,就需要用到crontab设置定时任务。 Crontab与Cron 使用crontab命令来配置cron进程。cron进程...

    Ubuntu crontab定时执行shell脚本

    • 最近打算让服务器定时的编译项目源码,及时产生二进制文件。写好了编译脚本后,就需要用到crontab设置定时任务。(如果需要更强大的功能,就要考虑用Jenkins了)

    Crontab与Cron

    • 使用crontab命令来配置cron进程。cron进程是Linux中的一个守护进程,一般用来执行系统中的周期性任务。
    • Cron服务命令
    # 查看服务状态
    sudo  service cron status
    # 开启服务
    sudo service cron start
    # 停止服务
    sudo service cron stop
    # 重启服务
    sudo service cron restart
    
    • 设置定时任务
    # 如果服务没有开启,开启该服务
    sudo service cron restart
    # 输入该命令,修改crontab配置。第一次输入该命令时,会提示选择编辑工具,一般选择vim(vi)即可。
    crontab –e
    # 在上一步打开的终端中(第一次使用该命令的话,在选择编辑工具后),输入下面的内容
    # 该内容表示,在每天的0点0分,执行脚本MakeProject.sh
    0 0 * * * /home/linduo/Project/MakeProject.sh
    
    • Crontab定时任务命令格式
    # 格式如下
    # minute hour day-of-month month-of-year day-of-week commands
    # 00-59 00-23 01-31 01-12 0-6 (0 is sunday) 
    
    # 每天0点0分,执行指定脚本
    0 0 * * * /home/linduo/Project/MakeProject.sh
    
    # 星期1到星期5,11点30分,执行指定脚本
    30 11 * * 1,2,3,4,5 /home/linduo/Project/MakeProject.sh
    
    # 星期1、星期3、星期5,23点00,执行指定脚本,并将内容重定向到文件(使用日期命名)
    # 获取日期命令,必须使用如下格式,否则会导致cron执行失败。
    00 23 * * 1,3,5 /home/linduo/Project/MakeProject.sh all >> "/home/linduo/Project/Build_$(date +"\%Y-\%m-\%d")".log 2>&1
    

    相关问题

    • 打开cron.log:Unbutun默认是关闭这个log的,需要手动打开,一遍查看cron执行状态。
    # 找到cron.log行,取消注释
    sudo vim /etc/rsyslog.d/50-default.conf
    # 重启服务
    sudo  service rsyslog  restart
    # 查看cron.log
    vim /var/log/cron.log
    
    • No MTA installed, discarding output:cron默认把屏幕输出到email中,而ubuntu默认没有装MTA。导致cron执行失败,并在cron.log中输入该内容。将输出重定向到文件即可解决该问题(参见上面将内存重定向到文件的命令)
    • cron常用命令
    # 查看cron任务
    crontab -l
    # 为指定用户配置cron任务
    crontab -e -u linduo
    # 删除所有cron任务
     crontab -r
    
    展开全文
  • 下面,笔者说下,如何使用Linux 中的Crontab来定时执行shell脚本,也是工作中实际遇到需要定时执行shell脚本,在这做个记录,以后可以方便查看,如果你也遇到类似的,可以做个参考。 打开上面的博客链接,可以看到...

    前面的博客中,笔者说了,如何在shell脚本中执行maven生成的可执行jar,博客地址:maven 生成可执行jar并使用shell脚本运行

    下面,笔者说下,如何使用Linux 中的Crontab来定时执行shell脚本,也是工作中实际遇到需要定时执行shell脚本,在这做个记录,以后可以方便查看,如果你也遇到类似的,可以做个参考。

    打开上面的博客链接,可以看到有个HelloWorld.java类,修改类代码,如下

    public class HelloWorld {
        public static void main(String[] args) throws Exception {
            String execDate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
            System.out.print("start execute..." + execDate);
            Thread.sleep(3000); // 模拟程序执行时间
            System.out.println("Hello World");
            System.out.println("execute finish...");
        }
    }
    

    然后使用maven生成可执行jar,具体请参考上述提到的博客链接,编写shell脚本如下

    #!/bin/bash
    # FileName:helloworld.sh
    # Author:harvey
    start_time=`date +%s`
    export JAVA_HOME=/usr/local/java
    export PATH=$JAVA_HOME/bin:$PATH
    java -Xms512m -Xmx1024m -jar /root/data/jar/helloworld-jar-with-dependencies.jar
    end_time=`date +%s`
    elapse_time=$((${end_time}-${start_time}))
    echo -e "\n exec jar takes ${elapse_time} seconds\n"

    注意:shell脚本文件中要设置下java的环境变量,否则使用crontab定时执行脚本时回不起作用。

    赋予shell脚本可执行权限

    chmod +x helloworld.sh

    使用crontab前,我们先来看下它如何使用,类似于spring 中的quartz

    * * * * * command
    minute hour day month week command
    星期 command

    minute: 表示分钟,可以是从0到59之间的任何整数。

    hour:表示小时,可以是从0到23之间的任何整数。

    day:表示日期,可以是从1到31之间的任何整数。

    month:表示月份,可以是从1到12之间的任何整数。

    week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

    command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

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

    逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。

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

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

    crontab 范例
    每五分钟执行 /5 * * *

    每小时执行 0 * * * *

    每天执行 0 0 * * *

    每周执行 0 0 * * 0

    每月执行 0 0 1 * *

    每年执行 0 0 1 1 *

    输入如下命令,设置crontab定时执行shell脚本

    crontab -e

    输入字母i,进入插入模式,编写如下内容(一分钟执行一次),然后保存退出

    */1 * * * * /root/data/shellfile/helloworld.sh >> /root/data/log/helloworld.log

    编辑完成后可以使用如下命令,来查看linux所有的中crontab定时任务

    crontab -l

    运行结果:

    start execute...2018-01-24 13:53:01
    Hello World
    execute finish...
     exec jar takes 3 seconds
    
    start execute...2018-01-24 13:54:01
    Hello World
    execute finish...
     exec jar takes 3 seconds
    
    start execute...2018-01-24 13:55:01
    Hello World
    execute finish...
     exec jar takes 3 seconds
    展开全文
  • 好久木有来更新了,下面来记录并分享下在linux下是如何实现定时执行shell脚本的: 一、写一个shell测试脚本 shell脚本命名为test.sh,具体实现如下所示: #!/bin/bash #遍历/files目录下所有的文件 for file in 'ls ...
  • 大家好,今天发表一篇比较基础的文章,对于初学者来说应该算是比较简单而且实用的--通过crontab定时执行shell脚本 今天测试了一个elk系统捕获日志信息的功能,发现接口返回的数据与日志来源内容不一致,然后就通过...
  • 内核是debian的,用dump命令给数据库做定时备份,利用shell脚本执行dump备份命令,用crontab来定时执行shell脚本,只保留最近7天生成的备份文件,当超过7个文件时删除最旧的一个。原来以为是crontab的权限不够,原来...
  • Java程序定时执行shell脚本

    千次阅读 2017-02-16 10:38:21
    第一次写博客,写的不好还请见谅。 之前在Linux环境中想定期执行某个脚本,第一反应就是将这个task加入到crontab里(crontab的知识点这里就不具体...我的解决方法是后台跑Java程序,利用Java程序定时执行shell脚本
  • linux定时执行shell脚本 写一个shell脚本,定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下 ...
  • linux定时执行shell脚本

    万次阅读 2018-01-13 15:29:39
    写一个shell脚本定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据、数据库数据等 不适合人工经常做的一些操作这里简单说下   Shell俗称壳,类似于DOS...
  • 使用Java定时执行shell脚本

    千次阅读 2017-09-14 13:32:09
    执行shell脚本 java定时任务
  • 近段时间使用crontab 定时执行shell脚本,来解析java项目日志,实现“日志解析”跟项目的业务逻辑解耦。编写shell脚本时倒是挺顺利的,但在添加crontab定时执行shell脚本时,遇到了麻烦事。问题是这样的。我的shell...
  • Linux 定时执行shell 脚本

    千次阅读 2019-12-30 13:30:00
    2019年第 85 篇文章,总第 109 篇文章本文大约2000字,阅读大约需要6分钟crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令。定时执行sh...
  • LINUX定时执行SHELL脚本实现DB2数据库操作。首先创建shell脚本[注意:必须要设置导出一下相关命令(DB2)的环境变量,否则crontab无法正常识别执行]。然后使用crontab创建定时任务。
  • 如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。 解决方法: 1、所有命令需要写成绝对路径形式,如: /usr/local/bin/...
  • crontab定时执行shell脚本

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

    千次阅读 2018-12-12 18:01:53
    编写shell脚本 以下shell命令,保存到桌面文件w.sh中 #!/bin/sh touch /d/test.txt sleep 10 echo "ShinChen">> /d/test.txt 找到任务计划程序 创建任务         ....
  • 如何编写Linux定时执行shell脚本任务

    千次阅读 2019-05-24 21:25:41
    很多时候一些shell脚本我们都希望服务器可以自己定时的去运行,那么以下作简单讲解: 首先讲解一些关于cron服务的指令: service crond start //启动服务 service crond stop //关闭服务 service crond restart /...
  • 分享一个脚本给大家,安卓后台定时执行 shell 脚本,测试完成后自动重启: #!/system/bin/sh #初始条件:进入来画首页 logcat -b main -b system -b radio -b events -v time >logcat.log & #开始测试时间戳 ...
  • crontab 定时执行shell脚本

    千次阅读 2017-03-03 11:46:56
    header最近的工作,需要做一个给预约的用户在预约到期的前两个小时进行消息的推送,所有就想到用服务器定时器任务...服务器:centos6.52、编写shell脚本写个简单循环好了:#! /bin/sh A='hello world' echo 'A is :' ech
  • then wget hostname/url/filename #拉取文件得路径 else echo "文件已存在".`date -d yesterday +%Y%m%d` >> ./pv.log break fi done 定时任务: 7 * * * cd /home/work/pv && sh pv.sh > /dev/null 2>&1
  • Linux的定时执行任务是cron服务实现的。...写一个要定期执行的shell脚本 配置cron服务,实现定期执行任务 例如: 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月
  • crontab是一个可以根据自己配置的命令定时执行脚本的服务 crontab 使用:  crontab –e : 修改 crontab 文件,如果文件不存在会自动创建。  crontab –l : 显示 crontab 文件。  crontab -r : 删除 crontab ...
  • CentOS定时执行shell脚本配置

    千次阅读 2017-06-19 13:55:05
    使用shell脚本设置redis的snapshotting持久化,并备份

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,328
精华内容 14,531
关键字:

定时执行shell脚本