安装、查看cron定时服务
Ubuntu默认是安装了cron程序,如果没有,用如下命令安装:
$ sudo apt-get install cron
查看cron状态,Active为active(running)状态,说明cron正在运行
$ service cron status
命令输出如下
● cron.service - Regular background program processing daemon
Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor pres
Active: active (running) since Fri 2019-02-22 11:09:17 CST; 8h ago
Docs: man:cron(8)
Main PID: 1002 (cron)
Tasks: 1
Memory: 348.0K
CPU: 503ms
CGroup: /system.slice/cron.service
按 q 或者 ctrl + c 退出。
如果是inactive (dead)状态,说明没有启动,用如下命令启动
$ sudo service cron start
认识定时服务命令
用crontab命令创建、查看、删除 定时服务,可以用crontab --help查看命令帮助
$ crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
帮助中文说明:
crontab -e 编辑创建一个定时服务
crontab -l 查看当前用户的定时任务
crontab -r 删除当前用户的定时任务
更加具体的帮助可以用
$ man 5 crontab
看到定时语法如下:
# m h dom mon dow usercommand
17 * * * * root cd / && run-parts --report /etc/cron.hourly
m 代表 minute(分钟) 每分钟用*或者 */1表示; h 代码hour(小时); dom代表day of month; m 代表month; dow代表day of week ; usercomman代表定时执行的命令
5个值的取值范围
allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
例如:
1. 每天0点5分 输出一次“hello world”
5 0 * * * echo "hello world" >> /home/hadoop/test.txt
2.每分钟把当前时间发送到mycron.log中1次
*/1 * * * * date >> /home/hadoop/mycron.log
定时案例操作
$ crontab -e
输出如下:
no crontab for hadoop - using an empty one
Select an editor. To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano <---- easiest
3. /usr/bin/vim.basic
4. /usr/bin/vim.tiny
提示选用哪种编辑器,这里填入2
Choose 1-4 [2]: 2
进入如下界面
在文件末尾输入如下定时任务语句,mycron.log文件会被自动创建:
*/1 * * * * date >> /home/hadoop/mycron.log
注意:注意按实际更改路径,例如用户名为abc的用户,路径要改为/home/abc/mycron.log
Ctrl + O保存,回车,Ctrl + X退出
查看当前用户的定时任务
$ crontab -l
查看定时任务输出:也就是查看mycron.log文件输出
hadoop@node1:~$ cat mycron.log //第一次查看,还没有任何内容
hadoop@node1:~$ cat mycron.log //第二次查看有1次输出
Fri Feb 22 20:33:01 CST 2019
hadoop@node1:~$ cat mycron.log //1分钟后查看后有2次输出
Fri Feb 22 20:33:01 CST 2019
Fri Feb 22 20:34:01 CST 2019
删除定时任务
$ crontab -r
再次查看定时任务
$ crontab -l
完成! enjoy it!