Linux(centos6.5)调用java脚本以及定时执行的脚本实例及配置文件详解


Linux(centos 6.5) 调用java脚本以及定时执行的脚本实例
一、调用java程序脚本(默认已经搭建好了Java环境)

1、jdk 安装路径 /usr/jdk/jdk1.7/……
2、java 程序路径 /usr/jdk
3、类名:Test.java(有主函数的类名)
4、调用java类的脚本,注意脚本的后缀是.sh
5、脚本内容:
(1)#!/bin/bash
// #! 特殊符号,说明这个脚本是由/bin 目录下的bash这个shell来解释并将解释后的内容给kernel来执行
(2)cd /usr/jdk
(3)/usr/jdk/jdk1.7/bin/javac Test.java
(4)/usr/jdk/jdk1.7/bin/java Test
6、脚本名称: testshell.sh
7、执行这个脚本来编译java程序,解释执行jvm机器码

8、执行脚本command: sh testshell.sh

二、定时执行任务

1、linux有个系统级的定时任务服务,叫cron,终端里的命令是crontab,使用他就可以定时执行脚本

2、编写定时任务的文件叫crontab 在 /etc/目录下

3、打开方式有两种,一种是用户级别,一种是系统级别:crontab -e 用户级别 vim crontab 系统级别

4、有两种打开方式也就有两种查看方式,crontab -l 查看用户级别的定时任务 more /less/tail/head 查看系统级别的任务

5、crontab文件中定义的一些 属性:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
(1)、SHELL变量指定了系统要使用哪个shell,这里是bash。

(2)、PATH变量指定了系统执行命令的路径。

(3)、MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户。

(4)、HOME变量指定了在执行命令或者脚本时使用的主目录。

6、定时任务的格式: crontab中的一个实例,这里是使用vim 编辑的所以是系统级的
# 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
* * * * * root sh /usr/jdk/testshell.sh

*/1 * * * * root sh/usr/jdk/testshell.sh

解释: 通过crontab 自带的这个我们可以清晰的看到定时任务的格式,所以就不多说了, 上面自己定义的两个任务都是每一分钟执行一次任务,而用户是root

7、 到这里定时任务就完成了,但不一定会成功执行,下面说说像我这种菜鸟会经常犯的错误

8、如果定义后没有执行定时任务,则可以去/var/spool/mail 查看 相应的日志,如果报错则说明脚本写的有问题,注意这里出错概率比较大的就是路径的问题,所以在写脚本的时候可以写全路径来试试。

9、如果没报错,则说明没有执行定时任务,cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

10、你也可以将这个服务在系统启动的时候自动启动:

在/etc/rc.d/rc.local这个脚本的末尾加上:

/sbin/service crond start

11、时间的设定:

分钟 (0-59)

小時 (0-23)

日期 (1-31)

月份 (1-12)

星期 (0-6)//0代表星期天

除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字

相关内容