内容目录(原文见公众号python宝)
一、crontab 介绍 1.1 常见命令参数 1.2 定时任务分类 1.3 crontab文件内容分析 1.4 crontab日志路径二、常用的命令展示三、定时任务的执行四、注意事项
一、crontab 介绍
crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 -->相当于闹钟日志文件: ll /var/log/cron*
编辑文件:vim /etc/crontab
进程:ps -ef | grep crond ==> /etc/init.d/crond restart
作用:定时备份,实时备份
1.1 常见命令参数
'''
参数说明:
-e 编辑该用户的计时器设置,如果不指定用户,则表示编辑当前用户的crontab文件
-l 列出该用户的计时器设置,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r 从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i 在删除用户的crontab文件时给确认提示。
-u user 用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
file file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
'''
1.2 定时任务分类
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。
在/etc/crontab文件,这个就是系统任务调度的配置文件。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。
用户可以使用 crontab 工具来定制自己的计划任务。
在crontab 文件都被保存在/var/spool/cron目录中。其文件名与用户名一致
1.3 crontab文件内容分析
前四行是用来配置crond任务运行的环境变量
第一行:SHELL变量指定了系统要使用哪个shell,这里是bash
第二行:PATH变量指定了系统执行命令的路径
第三行:MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户
如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
第四行:HOME变量指定了在执行命令或者脚本时使用的主目录。
注:
星号(*):代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,如“0-23/2”表示每两小时执行一次。
小 结:
数字的表示最好用2为阿拉伯数字显示
周和日最好不要同时用
定时任务要加注解
可以定向到日志文件或者空文件
定时任务一定是绝对路径,且目录必须存在才能出结果
crontab 服务一定要开启运行
1.4 crontab日志路径
ll
/var/log/cron
*
/var/log/cron
只会记录是否执行了某些计划的脚本,但是具体执行是否正确以及脚本执行过程中的一些信息则linux会每次都发邮件到该用户下。
二、常用的命令展示
yum install crontabs # 安装crontab
# crontab服务操作说明
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
# 查看crontab服务状态
service crond status
# 查看crontab服务是否已设置为开机启动
方法一: 界面启动 ntsysv
方法二: 加入开机自动启动: chkconfig –level 35 crond on
crontab -l # 查看定时任务列表
# 编辑定时任务
crontab –e # 编辑定时任务
vim /var/spool/cron/root # 同上,编辑定时任务
# crontab -r 删除定时任务
从/var/spool/cron目录中删除用户的crontab文件
如果不指定用户,则默认删除当前用户的crontab文件
crontab –i 在删除用户的crontab文件时给确认提示
# 恢复丢失的crontab文件
'''
如果不小心误删了crontab文件,假设你在自己的$HOME目录下还有一个备份,
那么可以将其拷贝到/var/spool/cron/<username>,其中<username>是用户名。
如果由于权限问题无法完成拷贝,可以用:
crontab <filename> 其中,<filename>是你在$HOME目录中副本的文件名。
有些crontab的变体有些怪异,所以在使用crontab命令时要格外小心。如果遗漏了
任何选项,crontab可能会打开一个空文件,或者看起来像是个空文件。
这时敲delete键退出,不要按<Ctrl-D>,否则你将丢失crontab文件。
'''
三、定时任务的执行
# 每小时执行执行命令'free -g',将输出保存到/home/pythonbao/f.txt下。
0 * * * * echo `free -g` > /home/pythonbao/f.txt
# 每隔10分钟执行一次
*/10 * * * * echo `free -g` > /home/pythonbao/f.txt
# 每天八点执行一次
0 8 * * * echo `free -g` > /home/pythonbao/f.txt
# 每分钟执行一次
* * * * * echo `free -g` > /home/pythonbao/f.txt
# 意思是每两个小时重启一次apache
0 */2 * * * /sbin/service httpd restart
# 意思是每天7:50开启ssh服务
50 7 * * * /sbin/service sshd start
# 意思是每天22:50关闭ssh服务
50 22 * * * /sbin/service sshd stop
# 每月1号和15号检查/home 磁盘
0 0 1,15 * * fsck /home
# 每小时的第一分执行 /home/bruce/backup这个文件
1 * * * * /home/bruce/backup
# 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;
# 意思是每月的1、11、21、31日是的6:30执行一次ls命令
30 6 */10 * * ls
30 21 * * * /usr/local/etc/rc.d/lighttpd restart # 每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart # 每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart # 每周六、周日的1 : 10重启apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart # 每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart # 每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart # 每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart # 晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart # 每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart # 一月一号的4点重启apache
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44 # 每半小时同步一下时间
About Me:小麦粒
● 本文作者:小麦粒,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用
● 作者博客地址:https://blog.csdn.net/u010986753
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● 个人微信号:pythonbao 联系我加微信群
●个人 QQ:87605025
● QQ交流群pythonbao :483766429
● 公众号:python宝 或 DB宝
● 提供OCP、OCM和高可用最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
如果您觉得到文章对您有帮助,欢迎赞赏哦!有您的支持,小麦粒一定会越来越好!