linux系统定时任务(cron服务)设置
为当前用户创建cron服务
1. 键入 crontab -e 编辑crontab服务文件
例如 文件内容如下:
*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
保存文件并并退出
*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
*/2 * * * * 通过这段字段可以设定什么时候执行脚本
/bin/sh /home/admin/jiaoben/buy/deleteFile.sh 该字段可用于指定要执行的脚本。需要注意的是,在此路径中 bin/sh 是指运行脚本所需的命令(例如 sh),而后一部分表示脚本存储的位置。
2. 查看该用户下的crontab服务是否创建成功, 用 crontab -l 命令
3. 启动crontab服务
通常我们会使用 /sbin/service crond start 来启动服务;如果是根用户的 Cron 服务,则需要使用 sudo 命令运行:sudo service crond start;需要注意的是,在不同的 Linux 版本中启动服务的命令也会有所差异;例如,在我的虚拟机中使用 sudo service cron restart 即可启动服务;如果在根用户下直接输入 service cron start 也能启动服务
4. 查看服务是否已经运行用 ps -ax | grep cron
5. crontab命令
该cron服务给出crontab指令以配置cron服务的运行模式,并详细描述了此指令包含的参数及其说明。
crontab用于为某个用户配置cron表单项任务。root用户通常需要此参数来执行 cron 服务。
列出某个用户的 cron 服务详细信息可通过 crontab 命令查看。
删除某个用户的 cron 服务可使用 crontab -r 命令完成。
编辑特定用户的 cron 服务则需要运行 crontab -e 命令。
例如 root用户可以通过以下方式查看自己的cron配置: crontab -u root -l
再如root想删除fred用户的cron设置: crontab -u fred -r
在编辑cron服务内容时,请注意遵循以下格式:
输入: crontab -u root -e 进入vi编辑模式
编辑的内容必须符合如下规范:
*/1 * * * * ls >> /tmp/ls.txt
任务调度中常用的crond工具通常是永久运行状态。
用于定期执行任务的crond工具通常是永久运行状态。
任务调度指令。cron命令每隔一分钟会定期检查是否需要处理工作
作便会自动执行该工作。
6. crontab命令选项:
-u指定一个用户
-l列出某个用户的任务计划
-r删除某个用户的任务
-e编辑某个用户的任务
7. cron文件语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
记住几个特殊符号的含义:
Any number of items can be selected using .... For each item, a price of $/item is required. Several distinct numbers can be used here from 1 to 10 items. The list includes several distinct numbers separated by commas.
可使用crontab -e命令进行编辑操作,并主要针对位于/var/spool/cron下的用户特定cron表单文件进行修改。此外,在某些情况下也可以直接访问/etc/crontab目录下的 cron表单文件并进行相应的调整。具体格式如下所示:
对于一些特定的字段值设置,在实际操作中可以根据具体情况来定。对于那些未指定的字段,则需要用星号表示其位置缺省值。
以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
第50到第7天每天定时运行根目录下的所有可执行文件 run-parts 参数 /etc/cron.daily [ 注解:run-parts参数表示所有位于后续目录中的可执行文件 ].
9. 新增调度任务
可采用以下两种方法来实现:
- 通过命令行指令:crontab -e 并添加相应任务后保存退出;
- 直接编辑文件并插入所需内容。
浏览所有调度任务
11. 删除任务调度工作
crontab -r //删除所有任务调度工作
12. 任务调度执行结果的转向
例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1
注:2>&1 表示执行结果及错误信息。
编辑/etc/crontab 文件配置cron
cron服务每隔一分钟不仅需要读取[var/spool/cron]目录下的所有文件,还必须进行一次[etc/crontab]文件的读取操作,以便完成定时任务的初始化.通过设置[etc/crontab]文件,我们可以实现对多个cron工作流程的统一配置.值得注意的是,单独编辑[etc/crontab]文件属于系统管理范畴,而通过用户特定目录下的cron工作流程则属于个人用户的专用配置.此文档采用如下格式:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行
/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行 /etc/cron.weekly内的脚本
42 4 1 * * root run-part /etc/cron.monthly //每月定期运行/etc/cron.monthly内的脚本
值得注意的是,“run-part”这一参数具有重要性。如果省略该参数,则可以在后续指令中直接指定要执行的具体脚本名称。
例如:
- 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务
11 2 21 10 * rm -rf /mnt/fb
