【Centos7.4】

!!!测试环境我们首关闭防火墙和selinux;免得后面的测试会出现问题

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost ~]# setenforce 0

一、什么是crond

1️⃣、crond是linux的一个守护进程,当安装完成操作系统后,系统默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务Linux下的任务调度分为两类,系统任务调度和用户任务调度【系统任务调度是指系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等等。在/etc/crontab这个文件里边,这个就是系统任务调度的配置文件,其实就是告诉用户如何配置】(我安装的Centos7.4默认已经安装crond服务)

2️⃣、如过没有crond服务可以使用yum 安装改服务(有的话就忽略)

[root@localhost ~]# yum install crontabs
[root@localhost ~]# systemctl start crond
[root@localhost ~]# systemctl enable crond

3️⃣、查看crond服务是否开启

[root@localhost ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 六 2020-07-25 10:21:56 CST; 46min ago
Main PID: 23538 (crond)
CGroup: /system.slice/crond.service
└─23538 /usr/sbin/crond -n 7月 25 10:21:56 localhost.localdomain systemd[1]: Started Command Scheduler.
7月 25 10:21:56 localhost.localdomain systemd[1]: Starting Command Scheduler...
7月 25 10:21:56 localhost.localdomain crond[23538]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 43% if used.)
7月 25 10:21:57 localhost.localdomain crond[23538]: (CRON) INFO (running with inotify support)
7月 25 10:21:57 localhost.localdomain crond[23538]: (CRON) INFO (@reboot jobs will be run at computer's startup.)
7月 25 10:27:01 localhost.localdomain crond[23538]: (zhangsan) RELOAD (/var/spool/cron/zhangsan)
7月 25 10:31:01 localhost.localdomain crond[23538]: (zhangsan) RELOAD (/var/spool/cron/zhangsan)

二、/etc/crontab文件含义

1、查看文件内容

[root@localhost ~]# vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root # For details see man 4 crontabs # Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

2、各部分解释

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute   hour   day   month   week   command(在文件里面的模板上虽然有user-name,但是在实际大多数不会去设置用户,只需要前五段和第六段command)

3、特殊字符

在以上各个字段中,还可以使用以下特殊字符

星号(*):代表所有可能的值,例如day字段如果是星号,则表示在满足其它字段的制约条件后每天都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“*/2”可以表示每两分钟时执行一次,在小时字段则表示每两小时执行一次,以此类推。

4、使用者权限文件

[root@localhost ~]# ls /etc/cron
cron.d/ cron.daily/ cron.deny cron.hourly/ cron.monthly/ crontab cron.weekly/

1️⃣:cron.deny——该文件中所列用户不允许使用crontab命令

2️⃣:cron.allow——该文件中所列用户允许使用crontab命令(在我所列的文件里面没有这个文件,是正常的(有的可能都没有),一般只写拒绝的用户;如过两个都存在,允许优先)

[root@localhost ~]# ll /var/spool/cron/
总用量 0
-rw-------. 1 root root 0 7月 25 09:55 root

3️⃣:/var/spool/cron/——所有用户crontab文件存放的目录,以用户名命名

三、crontab命令

1、命令格式

crontab -e      //默认是给root用户设置计划任务,如果是普通用户下就是普通用户自己给自己设置计划任务
crontab -e -u 'username' //这是以root用户身份给其他普通用户设置定时任务

2、参数

-u username:用来设定某个用户的crontab服务
-e:编辑某个用户的crontab文件内容。如果不指定用户,则默认编辑当前用户的crontab文件
-l:显示某个用户的crontab文件内容,如果不指定用户,则默认显示当前用户的crontab文件内容;如过当前是root用户,要查看普通用户的crontab文件则输入 :crontab -l -u username
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件;如过当前是root用户,要删除普通用户的crontab文件则输入 :crontab -r -u username
-i:在删除用户的crontab文件时给确认提示

四、crontab举例

1、默认以root用户创建crontab文件;目的:每隔1分钟向/root/data文件发送一次当前时间,然后可以使用tail -f 文件名监控该文件最新的变化

[root@localhost ~]# crontab -e
[root@localhost ~]# crontab -l
*/1 * * * * /usr/bin/echo `date` > /root/date
[root@localhost ~]# tail -f date
2020年 07月 25日 星期六 16:18:01 CST
tail: date:文件已截断
2020年 07月 25日 星期六 16:19:01 CST

2、给普通用户zhangsan创建crontab文件;目的:每隔1分钟向/home/zhangsan/date文件发送一次当前时间

[root@localhost ~]# useradd zhangsan
[root@localhost ~]# echo '123456' | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# crontab -e -u zhangsan
[root@localhost ~]# crontab -l -u zhangsan
*/1 * * * * /usr/bin/echo `date` > /home/zhangsan/date
[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ cd
[zhangsan@localhost ~]$ ls
date
[zhangsan@localhost ~]$ tail -f date
2020年 07月 25日 星期六 16:28:02 CST
tail: date:文件已截断
2020年 07月 25日 星期六 16:29:01 CST

3、其他类型的举例

1️⃣:在规定的时间去做什么事;例如:默认root用户,每天早上8:30重启httpd服务

[root@localhost ~]# crontab -e
[root@localhost ~]# crontab -l
30 8 * * * /etc/init.d/httpd restart

2️⃣:在某时间段去做什么事;例如:默认root以后,在早上8点到20点重启httpd服务

[root@localhost ~]# crontab -e
[root@localhost ~]# crontab -l
* 8-20 * * * /etc/init.d/httpd restart

3️⃣:在某时间段内没个多长时间去做某事;

  • 例如:默认root用户,在早上9点到17点,每隔30分钟重启一次nginx服务
[root@localhost ~]# crontab -e
[root@localhost ~]# crontab -l
*/30 9-17 * * * /etc/init.d/nginx restart
  • 例如:默认root用户,在19点到6点,每隔3小时重启一次nginx服务
[root@localhost ~]# crontab -e
[root@localhost ~]# crontab -l
* 9-17/3 * * * /etc/init.d/nginx restart

五、总结

crond服务时提供系统定时任务的守护进程,可以方便的给用户设置一些定时有任务,解决一些繁琐的操作;同样有好有坏,如果服务器被陌生人入侵,植入不知名的木马,很大程度上有可能写入了定时任务,就算删除木马进程,但是由于有计划任务,很可能再次陷入困境;crontab这个是帮助用户设置一些crontab文件,这些文件被存放在/var/spool/cron/目录下,并且以用户名命名;还有一般会将以root用户的些的文件返回结果,发送到/var/spool/mail/下以用户名命名的邮件中,不过系统会有提示!,总之,我们应该好好利用计划任务去处理一些繁琐事,方便自己!

Linux_计划任务的更多相关文章

  1. Linux_计划任务理论概述

    一.计划任务概述 1.计划任务概述: 计划任务分为: 一次性任务 周期性任务 在Linux系统的计划任务服务crond 可以满足周期性执行任务的需求. crond进程每分钟会处璇一次计划任务,计划任务 ...

  2. Linux_进程管理&计划任务

    目录 目录 top打开Linux系统任务管理控制台 ps进程查询指令 kill进程关闭指令 一个小实验 一次性计划任务 周期性计划任务 top打开Linux系统任务管理控制台 快捷键: P M k q ...

  3. 【声明】前方不设坑位,不收费!~ 我为NET狂官方学习计划

    发个通知,过段时间学习计划相关的东西就出来了,上次写了篇指引文章后有些好奇心颇重的人跟我说:“发现最近群知识库和技能库更新的频率有点大,这是要放大招的节奏啊!” 很多想学习却不知道如何规划的人想要一个 ...

  4. SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)

    前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...

  5. ORACLE从共享池删除指定SQL的执行计划

    Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等.也就是说可以删除.清理特定SQL的执行计划 ...

  6. 解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器 任务计划设计器

    企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑.核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利.比如通用权限管理系统,通用附件管理,通用查询等组件 ...

  7. MSSQLSERVER执行计划详解

    序言 本篇主要目的有二: 1.看懂t-sql的执行计划,明白执行计划中的一些常识. 2.能够分析执行计划,找到优化sql性能的思路或方案. 如果你对sql查询优化的理解或常识不是很深入,那么推荐几骗博 ...

  8. SQL Server-聚焦使用索引和查询执行计划(五)

    前言 上一篇我们讲了聚集索引对非聚集索引的影响,对数据库一直在强调的性能优化,所以这一节我们统筹讲讲利用索引来看看查询执行计划是怎样的,简短的内容,深入的理解,Always to review the ...

  9. SQL Tuning 基础概述03 - 使用sql_trace和10046事件跟踪执行计划

    1.使用sql_trace跟踪执行计划 1.1 当前session跟踪: alter session set sql_trace = true; //开始sql_trace alter session ...

随机推荐

  1. [Fundamental of Power Electronics]-PART I-2.稳态变换器原理分析-2.5/2.6 多极点滤波器电压纹波估计及要点小结

    2.5 含两极点低通滤波器变换器的输出电压纹波估计 在分析包含两极点低通滤波器的变换器如Cuk变换器及Buck变换器(图2.25)输出时,小纹波近似将会失效.对于这些变换器而言,无论输出滤波电容的值是 ...

  2. Web协议详解与抓包实战,高效解决网络难题

    无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速.高效地解决问题,Web 协议一定是你绕不过去的一道坎. 旨在帮助你对各种常用 W ...

  3. JMeter自定义采样器插件开发

    JMeter自定义采样器插件开发 目录 JMeter自定义采样器插件开发 1. 简介 2. 需求简介 3.成品展示 成功展示 失败展示 4. 准备开发环境 4.1 准备pom文件 4.2 新建Java ...

  4. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之物理机配置-01

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之物理机配置-01  欢迎加QQ群:1026880196  进行交流学习 近期我发现网上有人转载或者复制 ...

  5. linux下更新gcc

    1 下载源码 链接 目前最新为9.2版本. 2 解压 tar -zxvf gcc-9.2.0.tar.gz cd gcc-9.2.0 3 download_prerequisites脚本 运行这个脚本 ...

  6. (十八)VMware Harbor 镜像同步

    为什么需要镜像同步 由于对镜像的访问是一个核心的容器概念,在实际使用过程中,一个镜像库可能是不够用的,下例情况下,我们可能会需要部署多个镜像仓库: 国外的公有镜像下载过慢,需要一个中转仓库进行加速 容 ...

  7. linux中mysql连接不上,服务启动失败等问题解决

    confluence问题解决方式 1)针对confluence访问页面报500与连接失败等问题 首先我们登陆部署confluence的服器 10.15.4.115 2)重启mysql服务,发现重启失败 ...

  8. 使用vue-element-admin框架从后端动态获取菜单

    1.前言 ​ vue-element-admin是一个纯前端的框架,左侧菜单是根据路由生成的.实际开发中经常需要根据当前登陆人员的信息从后端获取菜单进行展示,本文将详细介绍如何实现该功能. 2.详解 ...

  9. git Windows下重命名文件,大小写敏感问题

    作为一个重度强迫症患者,是不忍受文件名,有字母大小拼写错误的,但是在git下,已是受控版本文件要改过来,要费些周章了. 一.环境 Widnows + git version 2.24.0 + Tort ...

  10. 01- linux入门

    LINUX是什么? -linux是计算机操作操作系统 -常见的操作系统有:Windows,Android,苹果iOS,Mac系统,Unix(和linux类似) 操作系统是干什么的? 管理硬件和程序的一 ...