定时任务Crond介绍
Crond是一种用于在linux系统上定期执行命令/脚本或指定程序任务的服务或软件,通常在安装Centos5/6 linux操作系统后
Crond服务定期(缺省情况下为每分钟)检查系统中是否存在要执行的任务工作,如果存在,它将根据预设的定时任务规则自动执行该定时任务工作。 这个Crond定时任务服务和我们平时早起使用的闹钟一样。
需要预约的启动服务:
crond:定时任务服务
网络:网络服务
rsyslog:日志服务
sshd:远程链接服务
sysstat:系统监控服务,包括一组监控工具
为什么要使用定时任务?
例如,我们的数据库和代码程序必须在每晚零时进行完全备份。 这样,每晚需要执行的定期工作,要让人操作,就必须每晚半夜起床,登录系统执行任务,执行后再睡觉。 此外,执行任务的过程也可能持续几个小时。 这样的话,我们就不用整晚睡了。 这显然不行。 那么,如何解决这种周期性任务执行的需求呢?
这就是linux系统的计时器任务Crond。 这相当于我们平时生活中的闹钟功能,每晚设定好定时器,早上按时叫醒。
ls -l /var/log/messages* #系统日志
ls -l /var/log/secure* #用户登录日志
用户执行的任务:由用户或系统管理员定期执行的任务。 例如,每5分钟与互联网上的时间服务器进行时间同步,安装系统基础的优化部分。 每晚0点备份站点数据和数据库数据。 通常,这些工作应由每个承运人自己设置。
服务器时间同步
echo '*/5 * * * * /usr/s谦虚的跳糖/ntpdate time.NIST.gov/dev/null 21 '/var/spool/cron/root
可以使用上述命令设置为每5分钟运行一次。 每次将internet时间同步到本地Linux系统时。
crontab -l显示当前用户的计划任务配置。 *号码将在以下详细说明~
time.nist.gov是NTP服务器地址time.windows.com,是微软自家的时间服务器。 请参阅更多==国内常用的NTP服务器地址和IP
crontab (命令)如上所述,此命令可以周期性地执行任务工作。 例如,每5分钟同步一次服务器时间。 必须启动服务crond才能运行名为crontab的命令。 此crontab命令是生产作业中最常用的命令,请务必掌握。
1、开机自启动crond服务
2、此时服务的状态(选中、选中、关闭) ) ) ) ) ) ) )。
3、如何看过程
ps -ef | grep crond
总结提示:
我们所说的crond服务是要执行的程序,crontab是用于管理用户定时任务(规则)的命令
crond服务是企业生产工作中常用的重要服务,at和anacron很少使用,可以忽略
大多数服务器都使用crond服务
数以千计的服务器可以开发分布式定时任务项目方案(统一管理ansible/saltstack )
如何使用计划任务Crond
[ root @ chengliang~~ ] # crontab-- help
crontab : invalid option---- '-'
crontab :用户错误:未注册选项
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace,per 1003.2 )
- e (编辑者' s crontab ) )。
- l (监听器crontab ) ) )。
-删除用户' s crontab ) )。
- I ) )。
-s(Selinuxcontext ) )。
[root@chengliang ~]#
crontab -l显示当前用户的计划任务配置
crontab -e进入当前用户的计划任务vim编辑模式
crontab -u用户名-l显示指定用户的计划任务设置
重点
用crontab我们可以固定
定的间隔时间执行指定的系统指令或script脚本。时间间隔的单位可以是分钟,小时,日,月,周及以上的任意组合(注意:日和周不要组合)。crond服务通过crontab命令可以很容易的实现周期性的日志分析或数据备份等企业运维场景工作使用者权限及定时任务文件
文件
说明
/etc/cron.deny(拒绝)
该文件中所列用户不允许使用crontab
/etc/cron.allow(允许)
该文件优先级高于cron.deny(默认不存在,一般不用)
/var/spool/cron/
所有用户crontab配置文件默认都存在此目录,文件名以用户名命名
[root@chengliang ~]# cat /etc/cron.deny
zcl
[root@chengliang~]# su - zcl
[chensiqi@chengliang~]$ crontab -l
You (chensiqi) are not allowed to use this program (crontab)
See crontab(1) for more information
[zcl@chengliang~]$ crontab -e
You (chensiqi) are not allowed to use this program (crontab)
See crontab(1) for more information
crontab { -l | -e } 实际上就是在操作/var/spool/cron/当前用户这样的文件
默认情况下,当用户建立定时任务规则后,该规则记录对应的配置文件会存在于/var/spool/cron中,其crontab配置文件对应的文件名与登录的用户名一致,如:root用户的定时任务配置文件为/var/spool/cron/root
[root@chengliang ~]# ls /var/spool/cron/
root #默认是没有的,只有创建了定时任务才有
[root@chengliang ~]# cat /var/spool/cron/root
*/5 * * * * /s虚心的跳跳糖/ntpdate time.windows.com >/dev/null 2>&1
Crontab定时任务的书写格式很简单,用户的定时任务规则一般分为6个段(每个段通过空格来分隔,系统的定时任务为/etc/crontab,分为7个段,空格来分隔),前五段为时间的设定段,第六段为所要执行的命令或脚本任务段
用户定时任务实例:
01 * * * * cmd #每小时的01分钟执行
02 04 * * * cmd #每天4点的02分钟执行
22 14 * * 00 cmd #每周日的14点22分执行
42 04 01 * * cmd #每月1日的4点42分执行
提示:
1、cmd为要执行的命令或脚本,例如:/虚心的跳跳糖/sh /server/scripts/chensiqi.sh
2、每个列之间必须要有一个空格。多个空格可以么?自己实践 ==> 经我本人测试有多个空格也可以执行!!
时间记忆口诀:分时日月周
crontab 语法格式中特殊符号含义如下表
特殊符号
含义
*
*号,表示任意时间都,实际就是“每”的意思
-
减号表示分隔符,表示一个时间范围,区间段,如17-19点,例如:每天的17,18,19点的00分执行任务。00 17-19 * * * cmd
,
逗号,表示分隔时段的意思例如每天的5点10点00分执行任务,00 5,10 * * * cmd
/n
n代表数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成/*10* * * * cmd,其中,/10,的范围是0-59,因此也可以写成0-59/10
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。