linux crontab定时执行shell脚本
linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:
crontab -e 编辑周期任务 30 21 * * * /etc/init.d/smb restart 每晚的21:30重启smb crontab命令说明:
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。 语法
crontab(选项)(参数)
选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
参数
crontab文件:指定包含待执行任务的crontab文件。 知识扩展
Linux下的任务调度分为两类:系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。 crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute hour day month week 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字段,表示每十分钟执行一次。
|
在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle 中可以利用dbms_job包定时执行pl/sql、sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 利用crontab来定时执行任务大致有如下三步: 1、编写shell脚本 2、利用crontab加入到定时任务队列 3、查看作业完成情况 一、如何建立shell脚本 Linux下有很多不同的shell,但我们通常使用bash(bourne again shell)进行编程,因为bash是免费的并且很容易使用 程序必须以下面的行开始(必须方在文件的第一行): #! /bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。 当编辑好脚本时,要想执行脚本,必须使脚本可以执行 下面的命令,可以使脚本可以执行 chmod +x filename 然后可以输入./filename来执行脚本。 注:在shell编程时,#符号表示注释,只该行结束为止。在编写程序时,最好使用注释。 变量 shell下所有变量都以字符串表示,变量不需要声明,直接使用。直接对变量进行赋值 A="hello world" 取出变量用$符号,如: #! /bin/sh A="hello world" echo "A is:" echo $A 执行该脚本输出结果如下: A is : hello world shell 命令和流程控制 1)unix命令 在shell中可以使用任意的unix命令,但这里介绍一些更常用的unix命令 echo ''this is a example" :打印输出到屏幕 ls:列出文件列表 cp sourcefile destinationfile :拷贝文件 2)概念:管道,重定向和backtick 这些不是系统命令,但他们经常使用,很重要的 管道 | 将一个命令的输出作为另外一个命令的输入 grep -qa compat | more 重定向:将命令的结果输出到文件,而不是标准输出(屏幕) 〉写入文件并覆盖旧文件 〉〉输出追加到文件的尾部,保留旧文件。 3)流程控制 if ... ; then ... else if ...;then ... else ... fi 通常情况下,可以通过测试命令来对条件进行测试,比如可以比较字符串,判断文件是否存在及是否有执行权限等等 通常用“ [ ] “来表示条件测试,注意这里空格很重要,要确保方括号空格 [ -f "somefile" ] :判断是否是一个文件 实例 一般编程步骤 任何优秀的脚本都应该有帮助和输入参数,并且写一个伪脚本framework.sh,该脚本包含了大多数脚本都需要的框架结构。 是个非常不错的注意。这时候,我们编写脚本时只需要执行cp命令即可 cp framework.sh myscript 然后插入自己需要的函数就可以了 调试 最简单的调试命令当然是使用echo命令。您可以使用echo在任何怀疑出错的地方打印任何变量值。这也是绝大多数的shell程序员要花费80% 的时间来调试程序的原因。Shell程序的好处在于不需要重新编译,插入一个echo命令也不需要多少时间。 shell也有一个真实的调试模式。如果在脚本"strangescript" 中有错误,您可以这样来进行调试: sh -x strangescript 这将执行该脚本并显示所有变量的值。 shell还有一个不需要执行脚本只是检查语法的模式。可以这样使用: sh -n your_script 这将返回所有语法错误。 Redhat linux AS 3 下定时执行任务 二、cron调度进程 c r o n是系统主要的调度进程,可以在无需人工干预的情况下运行作业。有一个叫做 crontab的范例格式: crontab条目举例 你可能已经注意到上面的例子中,每个命令都给出了绝对路径。当使用c r o n t a b运行s h e l l 命令形式: 建一个新的crontab文件 在考虑向c r o n进程提交一个c r o n t a b文件之前,首先要做的一件事情就是设置环境变量 保存并退出。确信前面5个域用空格分隔。 列出crontab文件: 为了列出c r o n t a b文件,可以用: 编辑crontab文件: 如果希望添加、删除或编辑c r o n t a b文件中的条目,而E D I TO R环境变量又设置为v i,那么 为了删除c r o n t a b文件,可以用: 三,可以利用重定向命令来输出运行结果 > ,>> 四、具体实例 sh脚本文件:test.sh #! /bin/sh su - oracle << EOF sqlplus test/test@test @"test.sql" sql脚本文件:test.sql insert into test_tb values (sysdate); crontab文件: 0,15,30,45 * * * * /apps/bin/test.sh |
linux crontab定时执行shell脚本的更多相关文章
- crontab定时执行shell脚本失败的原因
有一段时间不用crontab定时执行任务了,这次趁着项目实施的机会来进一步分析一下crontab定时任务设置时遇到的一些棘手的问题. crontab -l 查看目前已经设置的crontab信息 cro ...
- linux下crontab定时执行shell脚本调用oracle 存储过程
问题:脚本内调用存储过程,脚本直接执行没问题,使用crontab 执行脚本存储过程未执行 原因:缺少oracle环境变量 解决:在shell脚本里添加oracle的环境变量 #!/bin/sh PAT ...
- crontab定时执行shell脚本
步骤一 首先我们先看一下是否安装了crontab.一般情况下linux系统会自带crontab及crond.如果没有安装,请使用以下指令安装:yum install vixie-cron ...
- linux crontab定时执行
#利用crontab定时执行url研究了两种简单方式#一利用lynx访问url yum install lynxservice crond startcrontab -einsert键* * * * ...
- Linux下如何执行Shell脚本
Linux下你可以有两种方式执行Shell脚本: 1.用shell程序执行脚本:根据你的shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等(一般来说第一行#!/bin/bas ...
- 在PHP中调用php_ssh实现远程登陆linux服务器并执行shell脚本。
这个功能主要用于在web端利用程序对远程服务器进行操作,通过PHP_ssh执行shell脚本来实现. 首先要安装php_ssh2组件,linux中centos7下有ssh2源,直接安装.window下 ...
- Linux 定时执行shell脚本命令之crontab
crontab可以在指定的时间执行一个shell脚本以及执行一系列Linux命令 例如:服务器管理员定时备份数据库数据.日志等 详解: 常用命令: crontab –e //修改 crontab 文件 ...
- Linux中使用crontab命令定时执行shell脚本或其他Linux命令
使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行 如何往 cron 中添加一个作业? # crontab –e0 5 * ...
- 【转】linux 定时执行shell脚本
在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle ...
随机推荐
- JavaScript编程:文档对象模型DOM
5.文档对象模型DOM JS里的DOM和XML里的DOM不同,但是解析方式是一样的. document.getElementByID("id")根据ID获得元素节点. 创建和操作节 ...
- GCC中初始化函数是怎样被处理的?
本文译至: http://gcc.gnu.org/onlinedocs/gccint/Initialization.html 如我们所知,在GCC通过给代码追加__attribute__((const ...
- ThinkPhp学习07
原文:ThinkPhp学习07 简单CRUD操作 public function show() { $m=M('User'); // $arr=$m->find(2); //查找id=2的数据, ...
- JVM查找类文件的顺序(转)
配置classpath 根据path环境变量的原理,可以定义一个名为classpath环境变量,将要运行的class文件所在目录定义在该变量中. 例:set classpath=c:\ classpa ...
- Swift 编程语言新手教程
今天在网上看到一篇很好的教程,分享给大家 原文地址:http://gashero.iteye.com/blog/2075324 文件夹 1 简单介绍 2 Swift入门 3 简单值 4 ...
- WinMM.dll 函数汇总
#include "MMSystem.h" auxGetDevCaps 查询指定的辅助输出设备以确定其性能 auxGetNumDevs ...
- plsql导入一个目录下全部excel
import java.io.File; import java.util.ArrayList; import jxl.Sheet; import jxl.Workbook; import com.j ...
- vijos P1352 最大获利(最小割)
请不要随便指点别人该怎么做.每一个人的人生都应该自己掌握.你给不了别人一切.你也不懂别人的忧伤. 微笑不代表快乐.哭泣不一定悲伤 不努力怎么让关心你的人幸福.不努力怎么让看不起你的人绝望. 我用生命在 ...
- [LeetCode]Swap Nodes in Pairs 成对交换
Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-& ...
- Unity学习笔记(二)——第一个Unity项目Hello Unity
保留版权,转载请注明出处:http://blog.csdn.net/panjunbiao/article/details/9318811 在这一篇文章里,参照宣雨松的<Unity 3D游戏开发& ...