为当前用户创建 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 是指运行 脚本的命令 后面一段时指脚本存放的路径
2. 查看该用户下的 crontab 服务是否创建成功, 用 crontab -l 命令
3. 启动 crontab 服务
一般启动服务用 /sbin/service crond start 若是根用户的 cron 服务可以用 sudo service crond start, 这里还是要注意 下 不同版本 linux 系统启动的服务的命令也不同 , 像我的虚拟机里只需用 sudo service cron restart 即可, 若是在根用下直接键入 service cron start 就能启动服务
4. 查看服务是否已经运行用 ps -ax | grep cron
5. 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
任务调度的 crond 常驻命令
crond 是 linux 用来定期执行程序的命令. 当安装完成操作系统之后, 默认便会启动此
任务调度命令. crond 命令每分锺会定期检查是否有要执行的工作, 如果有要执行的工
作便会自动执行该工作.
6. crontab 命令选项:
-u 指定一个用户
-l 列出某个用户的任务计划
-r 删除某个用户的任务
-e 编辑某个用户的任务
7. cron 文件语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围, 0 表示周日一般一行对应一个任务)
记住几个特殊符号的含义:
"*" 代表取值范围内的数字,
"/" 代表 "每",
"-" 代表从某个数字到某个数字,
"," 分开几个离散的数字
8. 任务调度设置文件的写法
可用 crontab -e 命令来编辑, 编辑的是 / var/spool/cron 下对应用户的 cron 文件, 也可以直接修改 / etc/crontab 文件
具体格式如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
每个字段代表的含义如下:
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务
Command 指定要执行的程序
在这些字段里, 除了 "Command" 是每次都必须指定的字段以外, 其它字段皆为可选
字段, 可视需要决定. 对于不指定的字段, 要用 "*" 来填补其位置.
举例如下:
5 * * * * ls 指定每小时的第 5 分钟执行一次 ls 命令
30 5 * * * ls 指定每天的 5:30 执行 ls 命令
30 7 8 * * ls 指定每月 8 号的 7:30 分执行 ls 命令
30 5 8 6 * ls 指定每年的 6 月 8 日 5:30 执行 ls 命令
30 6 * * 0 ls 指定每星期日的 6:30 执行 ls 命令 [注: 0 表示星期天, 1 表示星期 1,
以此类推, 也可以用英文来表示, 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 * * * root run-parts /etc/cron.daily [ 注: run-parts 参数表示, 执行后面目录中的所有可执行文件. ]
9. 新增调度任务
新增调度任务可用两种方法:
1), 在命令行输入: crontab -e 然后添加相应的任务, wq 存盘退出.
2), 直接编辑 / etc/crontab 文件, 即 vi /etc/crontab, 添加相应的任务.
10. 查看调度任务
- crontab -l // 列出当前的所有调度任务
- crontab -l -u jp // 列出用户 jp 的所有调度任务
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, 因此我们配置这个文件也能运用 cron 服务做一些事情. 用 crontab 配置是针对某个用户的, 而编辑 / etc/crontab 是针对系统的任务. 此文件的文件格式是:
- 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-parts /etc/cron.monthly // 每月去执行 / etc/cron.monthly 内的脚本
大家注意 "run-parts" 这个参数了, 如果去掉这个参数的话, 后面就可以写要运行的某个脚本名, 而不是文件夹名了
例如:
1) 在命令行输入: crontab -e 然后添加相应的任务, wq 存盘退出.
2) 直接编辑 / etc/crontab 文件, 即 vi /etc/crontab, 添加相应的任务
11 2 21 10 * rm -rf /mnt/fb
来源: http://www.bubuko.com/infodetail-2604457.html