cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
1.直接用crontab命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
名称 : crontab
使用权限 : 所有使用者
使用方式 :
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
说明 :
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定
user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设
定自己的时程表。
参数 :
crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数
来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file [-u user]-用指定的文件替代目前的crontab。
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执
行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :
#每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
注意 :
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之
后加上 > /dev/null 2>&1 即可
例子2 :
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
范例
crontab -l 列出用户目前的crontab.
/sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置
你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
1.直接用crontab命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
名称 : crontab
使用权限 : 所有使用者
使用方式 :
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
说明 :
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定
user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设
定自己的时程表。
参数 :
crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数
来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
crontab -r : 删除目前的时程表
crontab -l : 列出目前的时程表
crontab file [-u user]-用指定的文件替代目前的crontab。
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执
行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :
#每天早上7点执行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
注意 :
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之
后加上 > /dev/null 2>&1 即可
例子2 :
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date
#1月份日早上4点
0 4 1 jan * date
范例
crontab -l 列出用户目前的crontab.
发表评论
-
Linux几种压缩工具或库的简单测试
2016-01-16 15:22 778网址: http://jeoygin.org/2011/ ... -
linux共享文件夹
2016-01-06 10:52 414linux共享文件夹: http://www.cnblo ... -
centOS yum 安装mysql
2014-08-21 21:46 436安装MySQL 安装MySQL [root@localhost ... -
awk入门
2014-08-11 10:01 0简介 awk是一个强大的文本分析工具,相对于g ... -
linux,shell学习(七)
2014-06-15 11:49 518脚本参数传递 1.shi ... -
linux,shell学习(六)
2014-06-15 11:15 425shell函数 1.定义函数 4.函数文 ... -
linux,shell学习(五)
2014-06-12 22:15 1005文本过滤 1.正则表达式介绍 4.awk介绍 2.find介 ... -
linux,shell学习(四)
2014-05-27 22:10 509控制流结构 1.控制结构 6.while循环 2.i ... -
linux,shell学习(三)
2014-05-25 22:53 891shell的输入与输出 1.echo7 ... -
linux,shell学习(二)
2014-05-24 22:43 308变量和运算符 1.什么是shell变量 2.本 ... -
linux,shell学习(一)
2014-05-24 17:26 4731.1 什么是shell shell是核心程序(kernel) ... -
linux 下使用gzip压缩与解压文件
2014-05-20 22:02 641linux 下使用gzip压缩与解压文件 gzip 和 g ... -
shell语句执行hive查询
2014-05-09 15:41 1435执行hive查询实例 执行select查询 $HIV ... -
Shell编程基础
2014-05-09 15:37 483我们可以使用任意一种文字编辑器,比如gedit、kedit、e ... -
shell脚本详解命令
2014-04-26 23:34 541shell脚本编写技巧 " 1.test测试命令 test命令 ... -
linux 下 ifcfg-eth0 配置
2014-04-23 16:42 577网络接口配置文件 [root@localhost ~]# ca ... -
Linux vi替换字符串
2014-04-21 11:48 4641. 基本的替换 :s/vivian/sky/ 替换当前行 ...
相关推荐
一个用bash编写的循环定时脚本,时间到后运行play.sh,无限循环直到Ctrl+C退出
shell 定时器与 shell 发送邮件给到邮箱 在 Linux 系统中,shell 定时器是一种非常有用的功能,可以让用户在指定的时间执行特定的任务。shell 定时器可以用于自动化一些重复性的任务,例如备份数据、发送邮件等。 ...
在IT行业中,Shell脚本是Linux和Unix系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。这个压缩包文件包含了关于shell脚本编写和源码的相关资料,非常适合初学者和有...
### Linux常用Shell脚本知识点详解 #### 一、文件类型判断与操作脚本 ##### 场景背景 在日常的Linux运维工作中,经常会遇到需要判断文件类型并进行相应操作的需求,比如判断某个文件是否为字符设备文件,并将其...
Oracle数据库是企业级广泛使用的数据库管理系统,而Shell脚本则是一种在Unix/Linux系统中执行命令行操作的强大工具。本资源包含一个名为"shell脚本可配置备份oracle数据库异常sendEmail25发邮件"的压缩包,它提供了...
多方查找发现Shell脚本中的Java命令需要引入环境变量方可正常执行。因此做了一下修改,脚本如下(仅供参考): 1、crontab执行配置 * * * * * cd /项目目录 && ./auto_start.sh >> /log/auto.out 2、Shell脚本 #!/...
一、编写Shell脚本crontab.sh #!/bin/bash step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i=(i+step) )); do $(php '/home/www/php/crontab/crontab.php') sleep $step done exit 0 二、crontab -e ...
根据实际情况自己写的,并测试过,能够正常使用的,可以针对其他程序的数据库进行备份,请自行写定时器进行定时运行
另一个番茄钟定时器 shell 脚本停止寻找番茄钟定时器应用程序,如果你有一个类 Unix 的 shell,你可以在一个 shell 行中破解一个: sleep $[60 * 25] ; echo " Pomodoro Finished! " 这个脚本基于这个简单的想法,但...
5. **自动化任务**:使用cron定时器,Shell脚本可以定期执行任务,如备份、清理临时文件等。例如,`daily_cleaner.cron`可能包含一个在每天凌晨执行的清理脚本。 学习和理解这些脚本将有助于提升你在Linux环境下的...
在Red Hat Linux 9.0操作系统中,shell脚本是一种非常重要的工具,它允许用户通过编写文本文件来执行一系列命令,实现自动化任务处理。这里提到的"20080318_1"可能是一个特定的更新或者版本标识,而"LinuxShell.rar...
crontab定时器详解 crontab是一种定时器工具,用于在 Linux 系统中执行计划任务。它允许用户在指定的时间点执行特定的命令或脚本。crontab 的主要功能是根据用户的需求,自动执行计划任务,从而提高工作效率和自动...
3. **Shell脚本**:Shell脚本是Unix/Linux系统中的一种批处理程序,用于执行一系列命令。在这个项目中,Shell脚本被编写用来定时调用Cloudflare API,获取并更新DNS记录。 4. **Padavan固件**:Padavan是一款开源的...
4. **定时任务**:利用cron定时器,结合shell脚本,可以定期执行数据同步、备份、清理等任务。 5. **故障恢复**:当服务异常时,shell脚本可以自动进行重启,确保服务的高可用性。 结合钉钉小程序的特性,这些Java...
3. **脚本编写**:详细阐述如何编写SHELL脚本,包括变量、参数传递、函数定义、错误处理和调试方法。通过实例展示如何构建一个完整的SHELL脚本来自动化日常任务。 4. **流程控制**:涵盖if语句、case语句、for循环...
该项目是一款基于C语言的Linux多重定时器设计源码,包含29个文件,涵盖4个文本文件、4个输入文件、3个Markdown文件、3个Shell脚本文件、3个CMake配置文件、3个C源代码文件、2个PNG图像文件、2个头文件、1个Git忽略...
1. SHELL脚本:SHELL脚本是一系列在SHELL环境下执行的命令,以文本文件形式存在。通常以`#!/bin/bash`开头,指定使用Bash这个最常用的SHELL。 2. 变量:在SHELL中,变量用于存储数据。声明变量无需类型定义,例如`...
Linux Shell编程是一种在Linux操作系统环境下,使用Shell脚本语言进行程序设计的方法。Shell是Linux的命令解释器,它提供了一种交互式环境,用户可以通过命令行输入指令来控制操作系统。而通过编写Shell脚本,我们...
本文将深入探讨如何使用Shell脚本来监控Redis集群节点,并在检测到异常时通过邮件通知管理员。 首先,让我们了解一下Redis。Redis是一个高性能的键值数据库,常用于缓存、消息队列等场景。它支持多种数据结构,如...
在IT领域,shell脚本是一种极其重要的工具,它允许用户通过命令行界面执行一系列系统操作。在这个场景中,我们讨论的是使用shell语言实现的两个经典游戏:推箱子和俄罗斯方块。这两个游戏都是计算机科学和编程教育中...