精华内容
下载资源
问答
  • Linux 系统是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制...

           Linux 系统是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。

           一、crontab配置文件

            在Linux的/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。在文件里面就可以配置要执行的shell脚本或者其他语言的程序。

            运行命令:crontab -e,就可以编辑文件。如下图:

            

           如图中多半都是运行的是.sh(shell脚本)的文件,而网上大部分都是讲解怎么编写shell脚本来运行程序,很少有直接通过自身程序命令来配置定时任务的,如Java。我们可以配置如下面命令来运行定时任务:

            39  10  *   *   *  java  -jar /home/test.jar     

           /home/test.jar为执行文件的具体目录。

           具体配置命令的介绍,可以查看相关的文章。给出下图作参考

           

    展开全文
  • Linux定时运行java程序

    千次阅读 2014-11-05 18:27:29
    1、 在MyEclipse中将java程序运行一遍得到class文件后,如下图所示:   右键点击dbtodb工程,选择Export: 点击next: 在JAR file :选择jar包存放的路径及jar包名字,点击finish。Jar包导出完成。 2.在c盘找到...

    一,打包java项目。

    1、  在MyEclipse中将java程序运行一遍得到class文件后,右键点击dbtodb工程,选择Export:点击next:

    在JAR file :选择jar包存放的路径及jar包名字,点击finish。Jar包导出完成。

    2.在c盘找到刚导出的jar包,我们将jar包放到一个dbtodb的文件夹下,打开jar包:


    打开META-INF:


    这里将MANIFEST.MF解压出来,然后对其进行配置,内容如下:

    Manifest-Version:1.0

    Main-Class:caic.dbtodb    指定程序运行的入口类,例如本程序内运行的main()在dbtodb.class中,配置为:包名.类名。

    注意:类名后不要加class扩展名

    Class-Path: ./lib/ojdbc14.jar./lib/postgresql-8.4-701.jdbc3.jar ./lib/jdom.jar

    这里配置的是程序所用到的jar包,我们将所用到的jar包放到dbtodb.jar同目录下得lib文件夹下,如图:


    配置完成后。由于jar包读取xml文件和java程序读取xml文件的路径有所不同,本程序读取xml文件是用SAXbuilder实现,所以将xml配置文件放到dbtodb.jar的同目录下就可以读取到,如图:

    到此导出jar包及配置完成。

    二,linux下面的shell脚本。

    1. 在dbtodb文件夹下新建一个ftpcounter.sh,脚本内容为 ,我要执行的是FtpCounter.jar。

    #!/bin/bash
    
    #导入环境变量
    export LANG="en_US.UTF-8"
    export JAVA_HOME=/usr/javak1.6.0_31
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    FTP_HOME=/opt/ftpcounter
    
    sed -i "/OVER/ s/=.*/=0/g" $CONFIG
    cd $FTP_HOME 
    java -jar $FTP_HOME/recommend2_2014_11_5.jar && echo "执行recommend2_2014_11_5.jar完成!" && sed -i "/OVER/ s/=.*/=1/g" $CONFIG || echo "执行FtpCounter.jar失败!"
    echo "【`date +%Y-%m-%d_%H:%M:%S`】统计程序运行完毕,等待下次执行."

    首先需要导入java的环境变量,如果想要在执行中文的时候不出现乱码,还要导入中文编码。之所以要导入这些内容,是因为crontab定时程序调用脚本时,系统的环境变量是没有加载的。
    其次执行jar的命令是java -jar 加jar文件名称就可以了,这个命令是跨平台的。

    2.将dbtodb文件夹放到linux服务器上的usr/目录下


    3.对dbtodb.sh赋权限,具体操作如下:

    [root@bidev /]# cd /usr/dbtodb
    [root@bidev dbtodb]# chmod 777 dbtodb.sh

    4.由于Windows于linux编码格式不同,需要对dbtodb.sh进行编码转换,具体操作如下:
    [root@bidev dbtodb]# dos2unix dbtodb.sh
    dos2unix: converting file dbtodb.sh to UNIX format ...


    三,监控程序。

    在linux下面执行java程序的时候有时候会莫名其妙的自动停止,下面我加了一个监控脚本。叫作ftpcounterwatch.sh。

    #!/bin/bash
    
    pidfile=/tmp/scoreCacl.pid
    
    if [ -e $pidfile ]
    then
       pid=`cat $pidfile`
       pid_ps=`ps -ef|grep $pid|awk '{ print $2 }'`
    
       for apid in $pid_ps
       do
            if [ $apid -eq $pid ]
            then
                    exit
            fi
       done
    fi
    
    echo $$ >$pidfile
    
    #导入环境变量
    export LANG="en_US.UTF-8"
    export JAVA_HOME=/usr/local/jdk
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    cd java
    java -jar recommend2.jar && echo "!!!!!!!"
    echo "【`date +%Y-%m-%d_%H:%M:%S`】统计程序运行完毕,等待下次执行."
    
    rm -f $pidfile

    四,定时器的设置。

    1.在控制台上输入以下命令

    crontab -e

    2.按i键编辑这个文本文件,输入以下内容,每天凌晨2:00执行该任务并将任务日志输入到/usr/dbtodb/log.txt
    00 02 * * * /usr/dbtodb/dbtodb.sh &>/usr/dbtodb/log.txt

     按esc键退出编辑,输入wq回车保存

    3.启动定时服务
    [root@]# service crond stop
    [root@]# service crond start


    展开全文
  • Linux定时运行java程序的做法

    千次阅读 2013-07-16 17:24:09
    linux下面运行java程序,一般情况下我们先打包成jar文件,然后放在linux下,用脚本去执行它。 一,打包java项目。一般用eclipse和netbeans直接把项目打包成jar就可以了,然后把jar跟同目录下面的lib库文件夹一起...
     在linux下面运行java程序,一般情况下我们先打包成jar文件,然后放在linux下,用脚本去执行它。
    一,打包java项目。一般用eclipse和netbeans直接把项目打包成jar就可以了,然后把jar跟同目录下面的lib库文件夹一起放在一个linux文件夹下面。我这里放在/opt/ftpcounter下面。我这个程序的作用是读取某ftp上的文件信息。
    二,linux下面的shell脚本,以我的ftpcounter.sh为例,我要执行的是FtpCounter.jar。
    #!/bin/bash
    
    #导入环境变量
    export LANG="en_US.UTF-8"
    export JAVA_HOME=/usr/javak1.6.0_31
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOMEb/dt.jar:$JAVA_HOMEb/tools.jar
    
    FTP_HOME=/opt/ftpcounter
    CONFIG=$FTP_HOME/configer.properties
    
    echo "【`date +%Y-%m-%d_%H:%M:%S`】开始执行统计程序......"
    sed -i "/OVER/ s/=.*/=0/g" $CONFIG
    cd $FTP_HOME && echo "进入目录:$FTP_HOME"
    java -jar $FTP_HOME/FtpCounter.jar && echo "执行FtpCounter.jar完成!" && sed -i "/OVER/ s/=.*/=1/g" $CONFIG || echo "执行FtpCounter.jar失败!"
    echo "【`date +%Y-%m-%d_%H:%M:%S`】统计程序运行完毕,等待下次执行."
    首先需要导入java的环境变量,如果想要在执行中文的时候不出现乱码,还要导入中文编码。之所以要导入这些内容,是因为crontab定时程序调用脚本时,系统的环境变量是没有加载的。
    其次执行jar的命令是java -jar 加jar文件名称就可以了,这个命令是跨平台的。
    三,监控程序,在linux下面执行java程序的时候有时候会莫名其妙的自动停止,下面我加了一个监控脚本。叫作ftpcounterwatch.sh。
    #!/bin/bash
    
    FTP_HOME=/opt/ftpcounter
    CONFIG=$FTP_HOME/configer.properties
    
    while [ `cat $CONFIG | awk -F'=' '/OVER/ {print$2}'` -eq 0 ]
    do
            FTPCOUNTERPID=`pgrep ftpcounter.sh`
            FTPCOUNTERJARPID=`ps -ef | grep  FtpCounter.jar | grep -v grep | awk '{print $2}'`
            if [ a$FTPCOUNTERPID != "a" ];then
                    echo $FTPCOUNTERPID
                    kill -9 $FTPCOUNTERPID && echo "【`date +%Y-%m-%d_%H:%M:%S`】执行统计程序失败>,杀死ftpcounter.sh脚本进程!"
            fi
            if [ a$FTPCOUNTERJARPID != "a" ];then
                    echo $FTPCOUNTERJARPID
                    kill -9 $FTPCOUNTERJARPID && echo "【`date +%Y-%m-%d_%H:%M:%S`】执行统计程序失
    败,杀死FtpCounter.jar进程!"
            fi
            sh $FTP_HOME/ftpcounter.sh &
            sleep 5m
    done
    四,定时器的设置。
    在linux终端输入crontab -e就可以调出定时器的设置vi界面。然后输入下面的语句就可以了
    15 9 * * * sh /opt/ftpcounter/ftpcounter.sh >> /opt/ftpcounter/ftpcounter.log
    20 9 * * * sh /opt/ftpcounter/ftpcounterwatch.sh >> /opt/ftpcounter/ftpcounter.log
    上面的意思是9点15分启动执行jar的shell脚本,然后20分区监测ftpcounter.sh与FtpCounter.jar的进程是否还在,如果在的话说明程序卡住了,杀死进城后,重新开始执行。
    展开全文
  • 1.上传jar包首先要打好jar包,上传到linux服务器中/data/task目录下2.创建定时任务的shell脚本shell脚本MyTask.sh的内容:#!/bin/shjava -cp /data/task/task-0.0.1.jar start.MyTask其中,jar包的路径要写全,后面的...

    1.上传jar包

    首先要打好jar包,上传到linux服务器中/data/task目录下

    348749.html

    2.创建定时任务的shell脚本

    shell脚本MyTask.sh的内容:

    #!/bin/sh

    java -cp /data/task/task-0.0.1.jar start.MyTask其中,jar包的路径要写全,后面的start.MyTask是java类包路径全称

    3.脚本文件修改权限,不然定时任务会被拒绝:

    命令:chmod 777 MyTask.sh

    4.编写定时任务:

    输入命令:crontab -e

    进入vim编辑界面,编辑当前用户root的定时任务,输入

    #注释:每分钟执行一次

    */1 * * * * /data/task/shell/MyTask.sh

    然后按Esc键,输入:wq,保存退出。

    (此时定时任务已经可以执行了,不需要重启)

    5.查看定时任务:

    输入命令:crontab -l

    6.当前用户root的定时任务会生成在/var/spool/cron下,会有个root文件,里面就是定时任务。

    定时任务的输出信息则是在/var/spool/mail下有个root文件。

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

    输入命令:crontab -r

    展开全文
  • 运行java程序加入你的java程序位于/root/example目录下面,名为Test.javaTest.java内容为:public class Test{ public static void main(String args[]){ System.out.println("ok"); }}但是由于...
  • 首先要打好jar包,上传到linux服务器中/data/task目录下 2.创建定时任务的shell脚本 shell脚本MyTask.sh的内容: #!/bin/sh java -cp /data/task/task-0.0.1.jar start.MyTask其中,jar包的路径要写全,...
  • 0.计划任务的命令:at 安排作业在某一时刻执行batch 安排作业在系统负载不重时执行crontab 安排周期性运行的作业1.at命令用法:安排命令或者多个命令在指定的时间运行一次语法;at [-f filename] 时间at -d or atrm ...
  • Linux后台运行Java程序

    千次阅读 2017-12-26 18:29:59
    例:java -jar test.jar 在终端运行一个循环定时向数据库插入数据的java程序。   想要将它后台运行可以加 & 如:java -jar test.jar & 就可以变为后台运行。 若是在程序执行中,可以先按:Ctrl z 挂起...
  • Java项目部署到Linux并配置定时任务1、在Eclipse中将程序开发好,并进行编译成.class文件2、在linux中创建对应的目录,本人在linux中创建StatShareDataProject 目录用来存放程序,同时在这个目录下创建如下所示的...
  • linux运行java程序 jar格式

    千次阅读 2016-09-21 17:13:59
    在eclipse下写了个java程序,想要放到Linux下用脚本定时运行,遇到了一些坑,分享一下整个过程。 把java代码打成jar包: 1.打包时设置程序入口,告诉程序跑jar包时从哪个程序开始运行; 2.如需调用外部jar,在...
  • linux运行java程序

    2010-10-08 17:06:49
    最近做了定时模块,程序的实现大抵如下,每个定时任务包装成一个实现了Runnable的类,也就是业务逻辑都写在run方法中,写完之后要移植到linux系统,过程有好多需要留意的地方,经整理如下(以最简单的demo为例,仅作...
  • linux后台运行服务 ...这里以后台运行java -jar Test.jar为例 java -jar Test.jar & 这种情况,窗口将不会被锁定,但是如果直接关闭了所在的窗口,将会停止运行 版本2: 同样以后台运行java -jar Test...
  • linux Crontab定时运行JAR

    千次阅读 2018-10-17 08:29:09
    linux下面运行java程序,一般情况下我们先打包成jar文件,然后放在linux下,用脚本去执行它。 time.sh: #!/bin/bash   export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64 export PATH=$JAVA_HOME/bin:$...
  • linux定时启动Java程序

    千次阅读 2013-01-26 10:43:03
    由于项目部署在RedHat下运行,故首要考虑使用Cron定时任务 具体操作及源码以下: 1、定义重启脚本 #!/bin/bash cd /root/tools/mail/ #kill ReceiveMail/SendMail ps -ef | grep ReceiveMail | grep -...
  • Linux系统提供了多个在预选时间运行脚本的方法:at命令和cron表,来安排脚本的运行时间和频率。一.用at命令来计划执行作业at命令允许指定Linux系统何时运行脚本。at命令会将作业提交到队列中,指定shell何时运 行该...
  • Linux(centos 6.5) 调用java脚本以及定时运行的脚本实例一、调用java程序脚本(默认已经搭建好了Java环境)1、jdk 安装路径 /usr/jdk/jdk1.7/……2、java 程序路径 /usr/jdk3、类名:Test.java(有主函数的类名)4、调用...
  • 配置JDK这些需要的linux环境就不在这里演示了,默认都安装了,就开始下面教程吧! 以下文件都是放在root目录   第一步: 程序开始肯定是要有一个java程序文件,下面编写一个简单的java程序:   [root@jcL ~]...
  • Linux(centos 6.5) 调用java脚本以及定时运行的脚本实例 一、调用java程序脚本(默认已经搭建好了Java环境) 1、jdk 安装路径 /usr/jdk/jdk1.7/…… 2、java 程序路径 /usr/jdk 3、类名:Test.java(有主函数...
  • 背景一下:因为要对某公司接口返回数据在晚上12点到早晨08点之间每隔10分钟进行监控一次,所以我们得在Linux运行Java的main方法。网上查询了一下,决定使用linux 定时任务 crontab,这里只是我自己的操作步骤:(1...
  • linux系统中系统的计划任务是由crond服务完成得,你可以直接编辑/etc/crontab文件,也可以使用crontab的命令。下面是一个简单的事例:每天晚上12点清空/test中的内容。首先让把cron设置为开机运行的服务:# ...
  • Quartz是OpenSymphony开源组织在...Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。官方网站:http://www.opensymphony.com/quartz相关Jar...
  • 思路java程序获取linux进程信息可以通过shell脚本获取进程信息、通过读取proc文件系统获取进程信息。 但是为了系统的安全性、方便维护等角度出发,更多的是java通过shell获取和linux交互能力。java程序中要...
  • linux/windows下定时执行java程序

    千次阅读 2013-02-28 19:33:40
    一.windows 定时计划任务 命令说明  - /sc 指定计划类型,取值为minute、hourly、daily、weekly、monthly、once、onstart、onlogon、onidle  - /mo 指定任务在其计划类型内的运行频率  - /tn 指定任务的...
  • linux环境java项目如果不重新发布的话,日志会一直累加(前提是发包的时候创建日志文件是累加的“>>”是累加,“>”不累加),另外一种情况是项目一直没有迭代和升级的话也是一直累加造成日志文件过大占用...
  • linux定时问题

    2017-11-13 14:44:00
    手动运行java脚本,可以,但定时运行没效果 查看脚本是否赋予执行权限;若无则赋予可执行权限,若还是没用,则在脚本增添环境变量,百度搜索。 转载于:https://www.cnblogs.com/fulse/p/7826262.html...
  • crontab定时备份1、创建备份目录# root 用户,创建备份目录mkdir -p /bak/mysqlbakcd /bak/mysqldata2、编写运行脚本vi /usr/sbin/bakmysql.sh脚本代码:#!/bin/bash# Name:bakmysql.sh# This is a ShellScript For ...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 224
精华内容 89
关键字:

linux定时运行java

java 订阅
linux 订阅