示例
1.编写测试脚本脚本 time .sh
$ cat time.sh
#! /bin/bash
echo $(date +%s) >> /home/ocean/out.txt
保存完毕后记得给予权限 chmod 777 test.sh
2.添加定时任务
$ crontab -e
no crontab for ocean - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/nano
2. /usr/bin/vim.tiny
3. /bin/ed
内容编辑为:每一分钟执行一次
# m h dom mon dow command
* * * * * /home/ocean/workspaces/shell/time.sh
3.查看定时任务是否添加成功
$ crontab -l
4.重启cron:新加入的定时任务不会马上执行,一般要等一会儿,除非你重启服务器
$ sudo service cron restart
注意,新创建的cron作业,不会马上执行,至少要过2分钟才执行。如果重启cron服务则会马上执行。
5. 查看执行结果
$ cat out.txt
1552543807
1552543861
1552543921
1552543981
1552544041
1552544101
原理
ubuntu默认安装了cron,是开机自启动的。
当cron启动后,它会读取它的所有配置文件,然后cron会根据命令和执行时间来调度工作任务。
cron有两个配置文件,一个是一个全局配置文件(/etc/crontab),是针对系统任务的;一组是crontab命令生成的配置文件(/var/spool/cron下的文件),是针对某个用户的.定时任务配置到任意一个中都可以。
每个用户的计划任务配置文件
$ ls -l /var/spool/cron/
total 4
drwx-wx--T 2 root crontab 4096 Nov 16 2017 crontabs
备注:这个歌目录下只会有一个crontabs,就算新添加其他计划,也只会有一个。
全局性配置文件
$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab