`
lp895876294
  • 浏览: 284857 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

centos定时任务

 
阅读更多

原文:http://li200429.iteye.com/blog/1608758

 

1.Cron的启动与关闭

由于Cron是Linux的内置服务,可以用以下的方法启动.关闭这个服务:

/sbin/service crond start           //启动服务
/sbin/service crond stop            //关闭服务
/sbin/service crond restart        //重启服务
/sbin/service crond reload         //重新载入配置

2.Cron配置文件

2.1全局配置文件

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是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来执行的,那么就放在这个目录下面.

/etc/crontab文件一般如下:

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

我们可在此文件中添加自己需要的cron job.

/etc/cron.deny文件就是用于控制不让哪些用户使用Crontab的功能.

2.2用户配置文件

每个用户都有自己的cron配置文件,通过crontab -e 就可以编辑,一般情况下我们编辑好用户的cron配置文件保存退出后,系统会自动就存放于/var/spool/cron/目录中,文件以用户名命名.

linux的cron服务是每隔一分钟去读取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的内容.

3.Cron命令格式

crontab [ -u user ] 文件 
crontab [ -u user ] { -l | -r | -e }

-u:指定某一用户

-e:执行文字编辑器来设定用户(当前用户或指定用户)时程表,内定的文字编辑器是vi.
-r:删除用户时程表.
-l:列出用户时程表.

4.Cron文件格式

*  *  *  *  *  command
分 时 日 月 周   命令

第1列表示分钟1~59, 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

5.Cron文件使用说明

5.1 一般情况

当f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余类推. 

* * * * * /bin/usershell  每天每分钟执行一次/bin/usershell
当f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推.

0-12 * * * * /bin/usershell  每天每小时从0到12分钟每分钟执行一次/bin/usershell
当f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推.

* */2 * * * /bin/usershell  每天每2小时执行一次/bin/usershell
当f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推.

* 1,3,5,7 * * * /bin/usershell  每天每逢1,3,4,7点执行一次/bin/usershell

5.2. 冲突逻辑

日期可以用月限定,也可以用“星期”指定,如果两个段有冲突,那么,第六段的命令将在匹配任何一个的情况下都运行,比如

"30 4 1,15 * 5",将在每月的1号和15号加每个周五,上午4:30运行.

5.3. 符号"%"

"%"在Cron文件中,有"结束命令行","换行","重定向"的作用,假如不需要"%"的特殊作用,需要使用转义符转义.

5.4. @reboot

这个不需要理解,为了达到在开机后运行,且只运行一次的目的.除了这个,也无法通过前五段的设置来实现.

@annually也是这个功能.

至于@yearly,@monthly等等其实都可以用上面的五段来设置.

 

然后我自己写了一个小例子做了下测试:

使用crontab -e进行编辑,内容为:

*/2 * * * * echo "i am crontab" >> /home/zhang/hello

这样隔两分钟就会往hello这个文件里写i am crontab

 

我自己写了一个脚本task.sh,直接运行task.sh时可以运行,可是加到crontab里就有运行了,后来我查看了网上的解决方法,终于解决了,先来看一下我原来写的task.sh脚本吧:

#!/bin/sh

java -jar offergateway.biz.offer-1.0-SNAPSHOT.jar

 

crontab定时任务的写法为:

* * * * *  /task.sh

 

后来我查了网上说要运行crontab,必须使用绝对路径,然后我把路径都改成绝对路径了。

在crontab的执行环境变量中,没有相应用户设置的环境变量,你需要手动设置一下环境变量,才能让它生效。于是我把上面的脚本改成:

#!/bin/sh

. /etc/profile

java -jar /home/zhang/offergateway.biz.offer-1.0-SNAPSHOT.jar

参考如上代码后,写了一个定时任务脚本,如下:

#!/bin/bash
. /etc/profile
 
if [ $# -lt 1 ]; then
	echo 'no monitor port , please input port number .'
	exit
fi

echo 'check port...'

#use netstat command test port's status

testing=$(netstat -apn | grep $1)

if [ "$testing" == ""  ]; then
	echo  $(date +'%Y-%m-%d %H:%M:%S') ', port:'$1' is not running .' >> /monitor/log.$(date +'%Y-%m-%d')
	java -cp /monitor/monitorSMS.jar com.glodon.monitor.MonitorMain $(ifconfig eth0 |grep 'inet addr' |awk '{print $2}' |awk -F ":" '{print $2}')':'$1
	exit 
fi

echo $1 'is running .' >> /monitor/log.$(date +'%Y-%m-%d')

 主要用于定时监控端口开启状态,如果没有开启端口,则调用jar包中的main方法。

 

 

 

分享到:
评论

相关推荐

    backup(centos定时任务脚本).sh

    附件三:数据库定时备份脚本,仅供个人学习参考最终解释权归博主所有。

    centos6.9定时任务crontab离线安装包

    `-e`选项会打开一个编辑器(如`vi`或`nano`),在这里输入你的定时任务。例如,每晚12点运行一个清理日志的脚本: ```bash 0 0 * * * /path/to/your/cleanup_script.sh ``` 保存并关闭编辑器后,`crontab`服务会...

    centos定时备份mysql脚本.zip

    centos定时备份mysql脚本,并实现压缩.需要把sh脚本放入定时任务中。使用说明在附件里面有。centos定时备份mysql脚本,并实现压缩.需要把sh脚本放入定时任务中。使用说明在附件里面有。centos定时备份mysql脚本,并...

    CentOS7如何执行PHP定时任务详解

    本文主要给大家介绍了关于CentOS7执行PHP定时任务的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 一、CentOS 7 安装crontab: yum install crontabs 语法: crontab [-u <用户名称...

    centOS6中使用crontab定时运行执行jar程序的脚本

    总结一下,本文详细介绍了如何在CentOS6中使用crontab进行定时任务的配置,包括编写Java程序、Shell脚本以及设置crontab规则。这种方法适用于任何需要周期性执行的Java应用程序,不仅可以提高工作效率,还可以确保...

    linux centos环境kettle部署与定时作业执行

    Linux Centos 环境 Kettle 部署与定时作业执行 Linux Centos 环境 Kettle 部署与定时作业执行是指在 Linux Centos 环境中部署 Kettle 工具,并配置定时作业执行。下面将详细介绍 Kettle 部署和定时作业执行的步骤...

    Linux centos下设置定时备份任务的方法步骤

    总结来说,设置Linux CentOS下的定时备份任务,主要涉及编写shell脚本、赋予执行权限、设置cron定时任务以及验证备份过程。通过这些步骤,我们可以确保数据的安全性和可恢复性,避免因意外丢失重要信息。务必根据...

    CentOS7设置定时任务

    在这个例子中,我们关注的是如何在CentOS7上设置定时任务。CentOS7使用`cron`服务来管理这些定时任务。 首先,要启用和启动`cron`服务,你需要通过以下命令安装`cron`相关的软件包: ```bash yum install crontabs...

    Centos7.6下设置Oracle定时自动备份和sudo设置.docx

    我们可以使用 crontab 命令来设置定时任务。 ``` [root@centos7 dpump_dir]# crontab -e 20 23 * * * /db_backup/AutoBackup.sh ``` sudo 设置 在 Centos7.6 下,默认情况下普通用户 oracle 无法使用 sudo 命令。这...

    centos6.5 离线安装 crontabs rpm 系统定时任务

    cronie-1.4.4-12.el6.x86_64.rpm cronie-anacron-1.4.4-12.el6.x86_64.rpm crontabs-1.10-33.el6.noarch.rpm procmail-3.22-25.1.el6.x86_64.rpm sendmail-8.14.4-8.el6.x86_64.rpm

    centos 设置定时任务执行指定脚本的方法

    下面将详细介绍如何在CentOS上设置定时任务来执行指定的脚本。 首先,打开cron配置文件。通常,cron配置文件位于`/etc/crontab`,可以使用`vim`编辑器进行编辑: ```bash vim /etc/crontab ``` 在`/etc/crontab`...

    centos7中crontab定时计划任务5分钟一次命令写法

    1.输入命令: [root@master ~]# crontab -e 2.添加: */5 * * * * /usr/share/nginx/spark_run_nginx_log.sh 2&>1 >> /usr/share/nginx/crontab_spark_run_nginx.log 3.等待验证: [root@master ~]# cd /usr/...

    shell命令与定时任务

    ### CentOS 7 中 Shell 脚本的使用与定时任务创建 #### Shell 命令与脚本基础 - **Shell 脚本环境变量**: - **系统环境变量**:位于`/etc/profile`文件中,适用于系统中的所有用户。 - **用户环境变量**:位于...

    CentOS 5.5局域网定时任务与时间同步.docx

    在Linux系统管理中,时间同步和定时任务是两个非常重要的功能。CentOS 5.5作为一款历史悠久的Linux发行版,虽然现在已经不再受到官方支持,但仍有大量的旧系统在运行,因此了解如何在这类系统中配置这两项功能是必要...

    Linux CentOS 定时运行脚本配置的方法

    总结一下,Linux CentOS系统中定时运行脚本的配置主要包括安装`crontab`,启动并设置开机启动服务,以及使用`crontab`语法编写和管理定时任务。这使得我们可以自动化执行各种任务,如数据备份、日志清理、定期监控等...

    CentOS下采用Crontab实现PHP脚本定时任务

    ### CentOS下采用Crontab实现PHP脚本定时任务 #### 一、引言 在Linux系统(特别是CentOS)环境中,经常会遇到需要定时执行某些任务的情况。这些任务可能包括但不限于备份数据库、清理缓存、定时发送邮件等。利用...

    CentOS6系统时钟同步-定时器处理.pdf

    本文将详细介绍如何在CentOS 6系统上实现时钟同步,并设置定时任务来定期同步时间,以保持系统的准确性。 #### 二、下载ntpdate **步骤1:安装ntpdate** 首先,我们需要安装`ntpdate`工具,该工具用于手动或通过...

    Centos 7下利用crontab定时执行任务详解

    前言 cron服务是Linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务: /sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service crond reload ...

    linux定时任务详解.docx

    ### Linux CentOS 7 下用户定时任务详解 #### 一、定时任务基础知识 在 Linux 系统中,定时任务是极其重要的功能之一,它允许用户在指定的时间自动执行一系列任务,如备份数据、清理日志等。Linux 提供了多种方式...

Global site tag (gtag.js) - Google Analytics