目录
一、准备工作:
1、shell代码:
2、crontab
2.1 安装crontab
2.2 开启crontab服务
二、添加定时任务
新增调度任务可用两种方法:
三、原理
一、准备工作:
1、shell代码:
1.1 使用vi编辑器 可以直接 # vim time.sh编写第一个shell文件 time.sh
$ cat time.sh
#! /bin/bash
echo $(date +%s) >> /home/ocean/out.txt
#!/bin/bash 表示要是/bin/bash这个执行脚本的命令执行接下来写的脚本,具体代码看各自需求。
1.2 通过chmod命令赋予该脚本的执行权限chmod 777 time.sh,否则没有执行权限
1.3 查看执行结果
$ cat out.txt
1552543807
1552543861
1552543921
1552543981
1552544041
1552544101
2、crontab
2.1 安装crontab
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
2.2 开启crontab服务
用以下的方法启动、关闭这个cron服务:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig –level 35 crond on
也可以用设置开机自动启动crond服务:
[root@CentOS ~]# chkconfig crond on
查看各个开机级别的crond服务运行情况
[root@CentOS ~]# chkconfig –list crond
crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
可以看到2、3、4、5级别开机会自动启动crond服务
取消开机自动启动crond服务:
[root@CentOS ~]# chkconfig crond off
接下来直接进入正题,说一下定时任务
二、添加定时任务
新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。 crontab -e配置是针对某个用户的,
$ crontab -e
no crontab for ocean - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.tiny
3. /bin/ed
内容编辑为:每一分钟执行一次
# m h dom mon dow command
* * * * * /home/ocean/workspaces/shell/time.sh
查看定时任务是否添加成功
$ crontab -l
重启cron:新加入的定时任务不会马上执行,一般要等一会儿,除非你重启服务器
$ sudo service cron restart
查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
删除任务调度工作
crontab -r //删除所有任务调度工作
注意,新创建的cron作业,不会马上执行,至少要过2分钟才执行。如果重启cron服务则会马上执行。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。 而编辑/etc/crontab是针对系统的任务,全局性配置文件
$ cat /etc/crontab
- 前四行是有关设置cron任务运行的环境变量。
- SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。
- Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。
- 如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。
- 执行命令或脚本时HOME变量可用来设置基目录。
三、原理
ubuntu默认安装了cron,是开机自启动的。
当cron启动后,它会读取它的所有配置文件,然后cron会根据命令和执行时间来调度工作任务。cron有两个配置文件,
- 一个是一个全局配置文件(/etc/crontab),是针对系统任务的;
- 一组是crontab命令生成的配置文件(/var/spool/cron下的文件),是针对某个用户的.定时任务配置到任意一个中都可以。