设为首页 加入收藏

TOP

【Linux】定时任务-crontab(一)
2019-09-04 00:57:22 】 浏览:75
Tags:Linux 定时 任务 -crontab

1.1 定时任务crond介绍

Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,安装完centos 6/7等linux操作系统之后,默认便会启动crond任务调度服务,crond服务也会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作,如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于“闹钟”一样。

1.2 Linux系统的定时任务

Linux系统中定时任务调度的工作可分为以下两种情况:

一、 linux系统自身定期执行的任务工作:
系统周期性自行执行的任务工作,如轮询系统日志,备份系统数据,清理系统缓存等,这些任务无需我们人为干预。

[root@node1 ~]# ls -l /var/log/messages*            # 系统的日志
-rw-------. 1 root root 36080506 9月   1 11:56 /var/log/messages
-rw-------. 1 root root 26616060 8月  11 15:44 /var/log/messages-20190811
-rw-------. 1 root root 26112559 8月  19 10:23 /var/log/messages-20190819
[root@node1 ~]# ls -l /var/log/secure*              # 用户登录日志
-rw-------. 1 root root 10021 9月   1 11:56 /var/log/secure
-rw-------. 1 root root 15821 8月  11 14:44 /var/log/secure-20190811
-rw-------. 1 root root  9131 8月  19 09:51 /var/log/secure-20190819

二、用户执行的任务工作:
某个用户或系统管理员定期要做的任务工作,例如每天晚上0点对tomcat日志进行切割及备份数据库数据,一般这些工作都需要由运维自行设置才行。

实例:每晚0点对tomcat日志进行切割

[root@node1 ~]# crontab –l
0 0 * * * /bin/sh /server/scripts/tomcat_backup.sh  >/dev/null 2>&1

用户执行的工作,也就是我们运维管理人员执行的任务工作,因此用户执行的任务是本篇文章的重点。

1.2.2 Linux系统下的定时任务软件的种类

严格说,linux系统下的定时任务还真不少,例如:at,crontab,anacron

假如:某天晚上需要处理一个任务,仅仅是这一天的晚上,属于突发性的工作任务。要执行at命令,还需要启动一个atd的服务才行,在实际工作中,需要用到的时候几乎没有,因此此处也不详解。

crontab命令
正如前面所说的这个命令可以周期性的执行任务工作。

例如:每晚0点备份数据库数据。如果要执行crontab这个命令,也需要启动一个服务crond才行,此命令也是生产环境最常使用到的命令。

Centos7系统 查看crond服务是否开机自启

[root@node1 ~]# systemctl list-unit-files |grep crond
crond.service                               enabled 

注:centos6系统应使用如下命令:

chkconfig  –-list |grep crond

查看crond服务进程

[root@node1 ~]# ps -elf|grep [c]rond
4 S root   633  1  0  80  0 - 31555 hrtime 14:03 ?   00:00:00 /usr/sbin/crond -n

anacron:此命令主要用于非7*24小时开机的服务器准备的,anacron并不能指定具体时间执行任务工作,而是以天为周期或者在系统每次开机后执行的任务工作。
它会检测服务器停机期间应该执行,但是并没有执行的任务工作,并将该任务执行一遍。

小结:

  1. crond服务是运行的程序,而crontab是用来管理用户的定时任务(规则)的命令
  2. crond服务是企业生产工作中常用的重要服务,at和anacron可忽略使用方法
  3. 几乎每个服务器都会用到crond服务

1.3 定时任务crond使用说明

1.3.1 指令语法

crontab 【-u user】 {-l|-e|-r|-i}

查看系统帮助

man crontab
[root@node1 ~]# crontab --help
crontab:无效选项 -- -
crontab: usage error: unrecognized option
Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u <user>  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n <host>  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x <mask>  enable debugging

Default operation is replace, per 1003.2

crontab –l查看当前用户的定时任务配置

[root@node1 ~]# crontab –l
0 0 * * * /bin/bash /server/scripts/tomcat_log_cut.sh >/dev/null 2>&1       #tomcat日志切割

crontab –e进入当前用户的定时任务vim编辑模式

[root@node1 ~]# crontab –e
#tomcat日志切割
0 0 * * * /bin/bash /server/scripts/tomcat_log_cut.sh >/dev/null 2>&1
~                                                                             
~

crontab –u 用户名 –l查看指定用户的定时任务设置

[root@node1 ~]# crontab -u root –l
#tomcat日志切割
0 0 * * * /bin/bash /server/scripts/tomcat_log_cut.sh >/dev/null 2>&1

[root@node1 ~]# crontab -u node1 -l
no crontab for n
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【Linux】MySQL 运维常用脚本 下一篇Nginx之HTTPS

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目