linux定时任务,让你更深入的了解系统
haoteby 2025-01-23 17:17 1 浏览
cron的软件包cronie
rpm -ql cronie
rpm –ql crontabs
最关键的是一个叫做crontab的命令,我们要书写的非系统定时任务就是通过此程序来编写的;
要保证crond.service服务有启动,cron定时任务才会生效:
systemctl status crond.service 查看crond服务状态;
systemctl enable crond.service 开机自动启动crond服务;
systemctl disable crond.service 开机禁止启动crond服务;
systemctl start crond.service 启动crond服务;
systemctl stop crond.service 停止crond服务;
systemctl restart crond.service 重启crond服务;
crontabs软件包提供了系统级别的定时任务的配置文件和一些初始状态的脚本,正常情况,我们不应该
去动这些脚本。特别是系统默认自带的东西,不要去修改他们,如果一定要用系统的定时任务,无非
是我们自己去按照规定去添加。
提交cron定时任务说明
向crond提交作业的方式不同于at,它需要使用专用的配置文件,此文件有固定格式,
不建议使用文本编辑器直接编辑此文件;要使用crontab命令;
cron任务分为两类:
1、系统cron任务
主要用来实现系统自身的维护;可以手动编辑修改/etc/crontab文件
2、用户cron任务
通过crontab命令(一个带有SUID权限的工具)增删改查;
系统定时任务配置文件
查看配置文件/etc/crontab
说明:
1. 如果定义的cron任务有多个,每行写一个,共7个字段;字段分别为,
分 时 日 月 周 user-name表示用户名, 后边表示要执行的命令或脚本;
2. 由于这里的环境变量PATH定义的可选值与系统bash接口略有差别,这里范围更小,
所以建议,定义定时任务中用到的命令建议使用绝对路径,或者自定义PATH环境变量;
crontab命令选项和说明
crontab的常建语法结构和选项:
crontab [-u user] [-l | -r | -e] [-i]
-e:编辑当前用户的或者指定用户的crontab,如果没有定时任务,会作为一个新的文件编辑,编辑默认是以vi编辑
器来编辑,可以通过显式设定VISUAL或EDITOR环境变量来修改使用指定的编辑器来编辑。一但编辑的crontab保
存退出后,crontab会自动被安装成定时任务计划。
比如:
export EDITOR="/usr/bin/nano" 或 export EDITOR="/usr/bin/emasc",然后再去crontab -e
nano和emacs都是文本编辑器,默认都是没有安装的,需要自己手动指定安装。
-l:列出当前用户或者指定用户的crontab到标准输出。
-r:移除当前用户或者指定用户的所有定时任务,即删除/var/spool/cron/USERNAME文件;(危险,没有交互式
操作提示)
-i:在使用-r选项移除所有任务时提示用户确认信息;
-u user:指定管理给定用户的crontab,只有超级管理员用户才能管理,普通用户不能使用此选项;
小技巧和注意事项:
1、如果不想把定时任务运行结果通知给指定用户
COMMAND > /dev/null 标准错误信息还是会以邮件的形式通知给用户;
COMMAND &> /dev/null 所有输出信息都不会以邮件的形式通知用户;
2.定义COMMAND时,如果命令需要用到%,需要对其转义;但放置于单引号中的%不用转义亦可;
3.某任务在指定的时间因关机未能执行,下次开机不会自动执行;
4.如果期望某时间因故未能按时执行,下次开机后无论是否到了相应时间点都要执行一次,可使用anacron实现;
crontab配置定时任务时候的时间表示
时间格式一共5位,分别对应:
* * * * *
分 时 日 月 周
分钟有效值:0 - 59;
时的有效值:0 - 23;
日的有效值: 1 - 31;
月的有效值:1 - 12 或 jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec;
周的有效值:0 - 6 ,星期天可以用0或7表示,这个是个特例,也可以用周的英文缩写,
sun,mon,tue,wed,thu,fri,sat
· 指定特定值
给定时间点有效取值范围内的值;
注意:day of week和day of month一般不同时使用;
例如:
3 * * * *:执行频率为 每小时执行一次;每小时的第3分钟执行;
3 4 * * 5:执行频率为 每周执行一次;每周5的4点3分执行;
5 6 7 * *:执行频率为 每月执行一次;每月的7号的6点5分执行;
7 8 9 10 *:执行频率为 每年执行一次;每年的10月9号8点7分执行;
· 取所有值
给定时间点上有效取值范围内的所有值;表示"每xxx"的含义;
· 离散取值
在时间点上使用逗号分隔的多个值;
x,y,z
例如:
0 8,20 * * 3,7:这种不建议;(出现了20号,又出现了每周3,周天);
9 8 * * 3,7:每周三和周日执行的8点9分执行;
· 连续取值
在时间点上使用符号短破折号"-"连接开头和结束
x-y
例如:
0 9-18 * * 1-5:周1到周5,每天的9点到18点,执行;(假设上午9点上班,下午18点下班,双休,这就是
工作日执行要执行的任务)
· 步长取值
在指定时间点上,定义步长:
/number :其中number表示步长;
指定的时间点不能被步长整除时,其意义将不复存在;
最小时间单位为"分钟",想要完成"秒"级别任务,需要额外借助于其他机制,例如
可以定义每分钟定时计划任务,再利用脚本实现在每分钟之内,循环执行多次;
例如:
*/5 * * * *:每5分钟执行一次;
* */1 * * *:每1小时执行一次;
* * */5 * *:每5天执行一次;
*/7 * * * *:这个并不完全是每7分钟执行一次,这种不整除的现象,不建议使用。
cron定时任务示例
1、每12小时备份一次/etc目录至/backups目录中,保存文件 名称格式为"etc-yyyy-mm-dd-hh.tar.xz"要添加的任务计划为:
* */12 * * * /usr/bin/mkdir -p /backups >/dev/null && /usr/bin/tar -JPcvf /backups/etc-`date '+%Y-%m-%d-%H'`.tar.xz /etc >/dev/null
*
2、每周2、4、7备份/var/log/secure文件至/logs目录中,文件名格式为"secure-yyyymmdd";
要添加的任务计划为:
* * * * 2,4,7 /usr/bin/mkdir -p /logs >/dev/null && tar -JcvfP /logs/secure-`date +%Y%m%d`.tar.xz /var/log/secure >/dev/null
3、每两小时取出当前系统/proc/meminfo文件中以S或M开头的行信息追加至/tmp/meminfo.txt文件中;
* */2 * * * /usr/bin/grep -E '^(S|M)' /proc/meminfo >> /tmp/meminfo.txt
4、制定每周三凌晨三、五点10分执行某个脚本,输出当前时间,时间格式为 2017-12-28 10:00:00;
我的脚本内容为:
[root@node2 ~]# cat /var/tmp/print_dtime.sh
#! /bin/bash
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
LANG="en_US.UTF-8"
export PATH LANG
source /etc/profile
shopt -u expand_aliases #关闭 bash alias 扩展
echo `date +'%Y-%m-%d %H:%M:%S'`
[root@node2 ~]#
定时任务计划为:
10 3,5 * * 3 bash /var/tmp/print_dtime.sh
相关推荐
- 前端:从零实现一款可视化图片编辑器
-
背景介绍我们知道,为了提高企业研发效能和对客户需求的快速响应,现在很多企业都在着手数字化转型,不仅仅是大厂(阿里,字节,腾讯,百度)在做低代码可视化这一块,很多中小企业也在做,拥有可视化低代码相关技术...
- 2018年面世 英特尔将打造超级计算机
-
|责编:王冬奇中关村在线消息:据国外媒体报道,近日英特尔宣布将联手Cray公司为美国阿贡国家实验室打造一台性能强大的全新超级计算机——极光(Aurora),运算性能可达到180P-Flops(每秒浮...
- Hyperledger Fabric 2.0安装教程
-
本文介绍如何安装最新的HyperledgerFabric2.0的预编译程序、fabric-samples示例配置和代码以及docker镜像。HyperledgerFabric区块链开发教程:F...
- 一文精通虚拟端口通道vPC,精品文章,爱了
-
今天给大家带来的是虚拟端口通道相关的技术:简介...
- 「数据中心」数据中心脊页架构:思科FabricPath Spine和Leaf网络
-
思科在2010年引入了FabricPath技术。FabricPath提供了新的功能和设计选项,使网络运营商能够创建以太网结构,从而提高带宽可用性,提供设计灵活性,并简化和降低网络和应用程序部署和操作的...
- 51单片机项目:定时宠物喂食系统(含代码)keil、DXP原理图
-
题目要求:一、拟解决的主要问题...
- 基于51单片机的多功能智能语音循迹避障小车(含代码)
-
大家好,今天给大家介绍基于51单片机的多功能智能语音循迹避障小车,下方附有本文涉及的全部资料和源代码的获取方式,可进群免费领取。一.功能介绍及硬件准备这是一款基于51单片机开发的智能小车,通过这篇文章...
- 如何对自己尚不熟悉Angular.js的情况下对代码进行调试
-
【51CTO.com快译】如果大家对AngularJS还不熟悉,那么可能会在初步创建Web应用时对很多问题感到担心。而且尽管这可能已经是我们所能用到的上手难度最低的Web开发框架之一,但大家仍然需要了...
- 拿代码量算KPI跟程序员们来这套?(下)
-
嘿嘿,一个美丽的周末又这么过来了~小伙伴们都做了些啥呢?加班了咩?改bug了咩?催需求了咩?小编也如约更新“拿代码量算KPI……跟程序员们来这套?(下)”前情回顾请点击下方菜单栏的“精彩文章”,找到7...
- 哆啦A梦彩色版第5卷第51章,胖虎的料理
-
重温童年经典动漫,哆啦A梦彩色版第5卷第51章,胖虎的料理...
- 51单片机项目设计:基于51单片机时钟万年历(含代码、原理图)
-
大家好,今天给大家介绍基于单片机stm32的多功能氛围灯、手机控制ws2812和MCU升级程序,文章末尾附有本毕业设计的论文和源码的获取方式,也可现在直接进群免费领取。...
- 重构代码,真没有银弹
-
译者|布加迪我的一位同事在大型项目代码重构方面有丰富的经验,他真诚地与我分享了他如何处理这些繁杂的任务。虽然他做的大部分事情只是坚持不懈地努力,就像在健身房锻炼那样,但这对我来说很有意义。本文分享...
- 11个奇奇怪怪的微信隐藏玩法(含撩妹教程)
-
最近,我在微信发现了一个好玩的东西用它可以扒到好友的“黑料”...
- 程序员没转发公司朋友圈,被罚款500,半个月后3行代码让领导懵了
-
现在在职场,也确实存在着许多的身不由己,很多事情都不是自己想做的,但是为了工作也不得不做。就比如说公司经常会要求员工们发一些朋友圈,很多人都不愿意把工作上的东西发到朋友圈去,但是如果不发又要挨领导的批...