Cron定时任务
来源:互联网 发布:org.apache.log jar包 编辑:程序博客网 时间:2024/06/11 17:16
1.1. 定时任务Cron
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
service crond status #查看服务状态
/sbin/service crond start #启动服务
/sbin/service crond stop #关闭服务
/sbin/service crond restart #重启服务
/sbin/service crond reload #重新载入配置
1.1.1. 系统定时任务
文件/etc/crontab内的定时任务,配置的是针对系统的任务。cron服务每分钟需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root #如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ #使用者运行的路径,这里是根目录
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 -23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to beexecuted
10 * * * * root /etc/cron.hourly #每10分钟执行/etc/cron.hourly脚本
0 1 * * * root run-parts /etc/cron #每小时执行/etc/内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
1.1.2. 用户定时任务
Ø crontab指令
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u #设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l #列出某个用户cron服务的详细内容
crontab -r #删除没个用户的cron服务
crontab -e #编辑某个用户的cron服务
比如说,root查看自己的cron设置:crontab -uroot -l
再例如,root想删除fred的cron设置:crontab -ufred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
Ø crontab命令添加任务
² 使用crontab -e 进入vi编辑模式
² 添加定时任务,每个任务一行,例如下面:
10 * * * * /etc/cron.hourly #每10分钟执行/etc/cron.hourly脚本
0 1 * * * run-parts /etc/cron #每小时执行/etc/内的脚本
² vi编辑器保存并退出即可。定时任务服务会自动重新加载配置文件。
Ø 编辑用户定时配置文件添加任务
在/var/spool/cron目录下保存了linux系统各个用户的定时任务配置。使用crantab指令操作用户的定时任务时,实际上是操作了该目录下的相应用户的配置定时任务文件,所以我们直接编辑用户定时任务配置文件来实现编辑配置定时任务:
² 若该路径下缺少用户配置文件,则自行新建即可,文件名为用户名,权限为600:
touch /var/spool/cron/root
chmod 600 /var/spool/cron/root
² 编辑文件,添加定时任务配置:
10 * * * * /etc/cron.hourly #每10分钟执行/etc/cron.hourly脚本
0 1 * * * run-parts /etc/cron #每小时执行/etc/内的脚本
² 保存并退出
1.1.3. 定时器格式
Ø 定时器格式
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 -23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to beexecuted
0 12 * * * root echo “cron!” #每天12点执行指令:echo“cron!”
10 12 * * *root run-parts /var/shell #每天12点10分执行/var/shell/目录下的所有脚本文件
² minute - 从0到59的整数
² hour - 从0到23的整数
² day - 从1到31的整数 (必须是指定月份的有效日期)
² month - 从1到12的整数 (或如Jan或Feb简写的月份)
² dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
² command - 需要执行的命令(可用as ls /proc>> /tmp/proc或执行自定义脚本的命令)
root表示以root用户身份来运行
run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本
Ø 特殊符号使用
² 星号(*)表示所有可用的值,即任何的意思。例如*在指代month时表示每月执行(需要符合其他限制条件)该命令
² 整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4
² 指定数值由逗号分开。如:3,4,6,8表示这四个指定整数
² 符号“/”指定步进设置。“/”表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3用来运行每三个月份运行指定任务。
1.1.4. 定时器常见问题
Ø cron配置正确却没执行
² 查看日志是否真的没有执行:
cat /var/log/cron
² 查看日志中显示执行的指令是否有误:
² 尝试添加环境变量(有时是用户下的没有设置相应的环境变量导致),在定时任务配置中,目标指令前加入环境变量配置:
10 12 * * * root . /etc/profile /var/shell.sh #每天12点10分执行
- 定时任务cron
- linux定时任务cron
- Linux定时任务cron
- centos定时任务cron
- 定时任务 Cron 格式
- cron 定时任务
- 定时任务cron
- Cron定时任务
- linux定时任务cron
- 定时任务cron表达式
- 定时任务 Cron表达式
- linux cron定时任务
- 定时任务 Scheduled cron
- cron定时任务
- Linux定时任务系统 Cron
- Ubuntu cron定时执行任务
- linux定时任务cron配置
- Linux cron/at 定时任务
- 通用页面框架CmPage(二):业务模块的基本思路
- XML实用属性
- OpenGL 透视投影 齐次裁剪空间 深度缓存
- 各路大神都用Jupyter Notebook写出了什么
- VirtualBox的网络配置,Host Only+NAT方式
- Cron定时任务
- selenium报WebDriverException错误
- C语言程序设计实践-数组初步
- rxjava
- oracle quota
- 润乾报表v4 - 导出txt内容对齐
- Java程序内存分析:使用mat工具分析内存占用
- Java GUID
- AndroidStudio 日常总结