版权声明:欢迎大家学习讨论,拒绝盗版 https://blog.csdn.net/qq_34319644/article/details/90902936
一 ,初体验 :每分钟都向文件书写内容
1 ,定时任务的作用 :
类似于闹钟,到什么时候就去做什么事
2 ,安装 :
- 我们的 centos6.9 :跟随系统一起安装了,不需要手动安装
- 如果版本太低,就手动安装 :
yum install -y crontabs
3 ,初体验 : 每分钟写入 “heima” 到 /root/e.txt 文件中
- 新建文件 e.txt
cd /root
touch e.txt - 查看文件内容 :
cat e.txt - 命令测试 :什么命令可以做到,把内容写入文件
echo heima>>e.txt - 查看文件内容 : 成功的看到了 “heima”
cat e.txt - 打开定时任务文件 :
crontab -e - 书写定时任务 : 每分钟实行一次
# print heima into /root/e.txt
* * * * * echo heima>>/root/e.txt
- 监控那个文件,看看有没有执行我们的定时任务 :
tail -F /root/e.txt - 时时查看任务 : 看看吧,每个一分钟,都会多出一行 heima
tail -F /root/e.txt - 停止查看 :
ctrl + C
二 ,详解 :
1 ,crond 与 crontab :
crond : 定时任务的守护进程,这个我们不管。
crontab :定时任务的命令,我们只用这个。
2 ,为什么用定时任务 :
- 服务器都是全天候开机的。
- 重要的数据,至少 1 天备份一次,一般都是在夜深人静的时候做的备份,例如半夜 2:00 备份。
我们怎么做 :我们不可能每天半夜爬起来做,我们用定时任务来做。 - 以后做大数据的话 ,每天对数据进行一次计算,通常也是晚上,比如半夜 2:00
做法 : 依然是定时任务
3 ,时间尺度 :分
- crontab :分钟级别
每分钟会检查,系统中是否有需要执行的定时任务,只能执行分钟级别的任务 - 秒级任务怎么办 ?
自己写 shell 脚本,关于 shell 脚本的编写,明天,将会用一天的时间慢慢讲。 - 为什么只做到分钟级别呢?会不会太弱了?
当然不弱,分钟级别已经够了,因为,我们的大数据任务,通常一天进行一次计算,或者每个月进行一次计算,不需要每秒钟一次。
4 ,编写定时任务文件 : ( 记住 )
crontab -e
5 ,查看定时任务文件 : ( 记住 )
crontab -l
6 ,查看定时任务用法 :
man crontab
退出查看 : q
7 ,全部参数 : ( 了解 )
-l 查看 ( 常用 )
-e 编辑 ( 常用 )
-r 删除任务
-i 删除任务确认 ( y/n )
-u 指定使用这个任务的用户
8 ,定时任务 :原理
- 一句话理解定时任务 :
1 ,编写定时任务,实质上就是在编写 /var/spool/cron/root .
2 ,只要这个文件被改变,定时任务,立即生效,啥也不需要做。 - crontab -e 实际上就是在编辑文件 /var/spool/cron/root
相当于 vi /var/spool/cron/root - 这个文件 ( /var/spool/cron/root ) 有什么用 :
保存着与定时任务有关的信息 - crontab -l 实际上就是在查看文件 /var/spool/cron/root
相当于 cat /var/spool/cron/root
9,全部参数设定 : 分时日月周
- 查看 crontab 的用法
cat /etc/crontab - 看到介绍 :分时日月周
- 特殊字符的用法 :*
1 ,目的 : 每天,每分钟都执行任务 :
2 ,命令 :crontab -e
3 ,文件内容 :
* * * * * echo heima>>/root/e.txt
- 特殊字符的用法 :,
1 ,目的 :每个小时的 1 分,2 分,3 分 都执行任务 :
2 ,命令 :crontab -e
3 ,文件内容 :
1,2,3 * * * * echo heima>>/root/e.txt
- 特殊字符的用法 :-
1 ,目的 : 每个小时的 4,5,6,7,8,9,10,11,12 分,都执行任务 :
2 ,命令 :crontab -e
3 ,文件内容 :
4-12 * * * * echo heima>>/root/e.txt