crontab使用方法
来源:互联网 发布:九章算法基础班视频 编辑:程序博客网 时间:2024/06/02 23:50
crontab用于定时执行任务。
1、在命令窗中输入:
如果是第一次打开,会让你选择使用的文本编辑器。我选vim(以后可以使用select -editor更改)
打开后,最后看到的是
简单写一个定时任务:每隔5分钟,输出当前时间到文件time.log中
保存文件后,需要重启cron服务才能生效。
下面解释一下crontab每行的含义:
引用自:http://darkbaby123.iteye.com/blog/715443
crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:
分钟 0 - 59
小时 0 - 23
天 1 - 31
月 1 - 12
星期 0 - 6 0表示星期天
除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:
星号 表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
逗号 可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
斜线 一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别
注:*/2 可以看成是能被2整除的任意值。
实例:
我们一般使用crontab执行脚本命令,下面介绍一下脚本命令在crontab中的使用方法。
以sh脚本执行Java程序中制作的脚本为例。
假设这个脚本命名为hello.sh 并且存放在/home/xyw/目录下,我想每30分钟执行这个脚本,并且想把结果保存到文件Log.log 中,写法如下:
如果我想一次执行多个任务呢?假如我还想将执行时间保存到Log.log 文件中,写法如下:
两个任务之间用分号间隔。关于一条crontab执行多个任务的方法,具体说明如下:
方法一:
方法二:
方法三:
方法四:
注意,以上方法中方法一和方法二等同。多个命令放在一行,他们的执行情况需要根据中间的分隔符确定。
(1)每个命令被分号分隔,那么命令会连续依次执行下去。
(2)每个命令被&&分隔,命令会按照出现的顺序依次执行,如果在执行命令的过程中出现错误,即中间有错误的命令存在,则以后的命令不会被执行。(相当于与运算,全部命令都没有错误时,才全部执行完成。)
(3)每个命令被||分隔,如果命令遇到可以成功执行的命令,那么命令停止执行,即使后面还有正确的命令则后面的所有命令都将得不到执行。假如命令一开始就执行失败,那么就会执行 || 后的下一个命令,直到遇到有可以成功执行的命令为止,假如所有的都失败,则所有这些失败的命令都会被尝试执行一次。
有关crontab命令的使用方法,可以参看官方的教程,写的很详细:https://help.ubuntu.com/community/CronHowto
参考:http://darkbaby123.iteye.com/blog/715443
1、在命令窗中输入:
crontab -e
如果是第一次打开,会让你选择使用的文本编辑器。我选vim(以后可以使用select -editor更改)
打开后,最后看到的是
m h dom mon dow command
简单写一个定时任务:每隔5分钟,输出当前时间到文件time.log中
*/5 * * * * date >> /home/xyw/time.log
保存文件后,需要重启cron服务才能生效。
sudo service cron restart
下面解释一下crontab每行的含义:
引用自:http://darkbaby123.iteye.com/blog/715443
crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的命令。每个部分以空格分隔,除了最后一个部分(命令)可以在内部使用空格之外,其他部分都不能使用空格。前5个部分分别代表:分钟,小时,天,月,星期,每个部分的取值范围如下:
分钟 0 - 59
小时 0 - 23
天 1 - 31
月 1 - 12
星期 0 - 6 0表示星期天
除了这些固定值外,还可以配合星号(*),逗号(,),和斜线(/)来表示一些其他的含义:
星号 表示任意值,比如在小时部分填写 * 代表任意小时(每小时)
逗号 可以允许在一个部分中填写多个值,比如在分钟部分填写 1,3 表示一分钟或三分钟
斜线 一般配合 * 使用,代表每隔多长时间,比如在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别
注:*/2 可以看成是能被2整除的任意值。
实例:
* * * * * # 每隔一分钟执行一次任务 0 * * * * # 每小时的0点执行一次任务,比如6:00,10:00 6,10 * 2 * * # 每个月2号,每小时的6分和10分执行一次任务 */3,*/5 * * * * # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06
因为cron中的任务基本就是执行命令行,所以当然也会有权限问题。以上例子中的任务就是以你当前登录用户的权限执行的,如果你需要以root用户执行某个任务,可以在crontab前加上sudo。
sudo crontab -ecrontab文件对每个用户都是不同的,所以刚才设置的定期看时间的任务,在这里是看不到的。因为我们没有为root用户增加这样的计划任务。
我们一般使用crontab执行脚本命令,下面介绍一下脚本命令在crontab中的使用方法。
以sh脚本执行Java程序中制作的脚本为例。
#!/bin/bash cd /home/xyw/ /usr/lib/jvm/jdk1.7.0_21/bin/java Hello
假设这个脚本命名为hello.sh 并且存放在/home/xyw/目录下,我想每30分钟执行这个脚本,并且想把结果保存到文件Log.log 中,写法如下:
*/30 * * * * bin/sh /home/xyw/hello.sh >> /home/xyw/Log.log
如果我想一次执行多个任务呢?假如我还想将执行时间保存到Log.log 文件中,写法如下:
*/30 * * * * date >> /home/xyw/Log.log; bin/sh /home/xyw/hello.sh >> /home/xyw/Log.log
两个任务之间用分号间隔。关于一条crontab执行多个任务的方法,具体说明如下:
方法一:
*/30 * * * * bin/sh /home/xyw/task1.sh*/30 * * * * bin/sh /home/xyw/task2.sh
方法二:
*/30 * * * * bin/sh /home/xyw/task1.sh; bin/sh /home/xyw/task2.sh
方法三:
*/30 * * * * bin/sh /home/xyw/task1.sh && bin/sh /home/xyw/task2.sh
方法四:
*/30 * * * * bin/sh /home/xyw/task1.sh || bin/sh /home/xyw/task2.sh
注意,以上方法中方法一和方法二等同。多个命令放在一行,他们的执行情况需要根据中间的分隔符确定。
(1)每个命令被分号分隔,那么命令会连续依次执行下去。
(2)每个命令被&&分隔,命令会按照出现的顺序依次执行,如果在执行命令的过程中出现错误,即中间有错误的命令存在,则以后的命令不会被执行。(相当于与运算,全部命令都没有错误时,才全部执行完成。)
(3)每个命令被||分隔,如果命令遇到可以成功执行的命令,那么命令停止执行,即使后面还有正确的命令则后面的所有命令都将得不到执行。假如命令一开始就执行失败,那么就会执行 || 后的下一个命令,直到遇到有可以成功执行的命令为止,假如所有的都失败,则所有这些失败的命令都会被尝试执行一次。
有关crontab命令的使用方法,可以参看官方的教程,写的很详细:https://help.ubuntu.com/community/CronHowto
参考:http://darkbaby123.iteye.com/blog/715443
http://fenglingcorp.iteye.com/blog/128927
http://bithanpeng.iteye.com/blog/1273155
- Crontab使用方法
- crontab使用方法
- crontab使用方法
- crontab使用方法
- crontab 使用方法
- crontab使用方法
- crontab 使用方法
- crontab使用方法
- crontab的使用方法
- Linux crontab 使用方法
- Crontab及使用方法
- crontab详细使用方法
- crontab的使用方法
- crontab 环境变量的使用方法
- crontab命令的使用方法
- crontab命令的使用方法
- 定时执行crontab使用方法详解
- 定时执行crontab使用方法详解
- STL容器之stack
- hdu 4255 A Famous Grid (模拟+广搜)
- Lua脚本在C++下的舞步(一)(入门指引)
- 学习JDK源码:编程习惯和设计模式
- 为View添加触摸事件 添加tag 用于判断View
- crontab使用方法
- hadoop分布式系统基础架构
- Lua脚本在C++下的舞步(二)
- 在ASP中自动创建多级文件夹的函数(使用FSO)
- 领悟工具的“威力”,磨刀擦擦擦--Windows上也能用strings输出controlfile中文件结构信息
- 通过 http 协议上传文件(rfc1867协议概述) multipart/form-data;boundary 解释
- [转]数据库三范式经典实例解析
- sed默认最长的可能性匹配,如何修改到最短匹配?
- 在java开发中关于class.getResourceAsStream(String name)与 class.getClassLoader().getResourceAsStream(String