Centos7#基础服务之计划任务服务

1、一次性计划任务at

作用: 计划任务主要是做一些周期性的任务,目前最主要的用途是定期备份数据,所有计划任务执行中的输出都会以邮件的方式发送给指定用户, 除非重定向
  什么叫计划任务 :
  计划任务,字面意思理解就是在约定好的时间执行已经计划好的工作。在Linux中我们经常使用cron服务来完成这项工作。比如我们可以使用cron来做一个每天晚上12点备份一个日志文件,这就是个计划任务。

一次性调度执行 at
  [root@at-cron ~]# rpm -qa |grep at 
  at.x86_64 0:3.1.13-24.el7
  [root@at-cron ~]# yum -y install at
  [root@at-cron ~]# systemctl start atd
  [root@at-cron ~]# systemctl enable atd
  软件:at + 时间节点
  midnight:午夜(00:00)
  noon:中午(12:00)
  teatime :下午茶4pm(14:00)

23:59 12/31/2018 任务在2018年12月31号23点59分
  [root@at-cron ~]# at 23:59 12/31/2020

创建计划任务
  at 11:00
  rm -rf /tmp/*
  ctrl +d ---->正常结束

查看at计划任务个数:[root@at-cron ~]# at -l
  1 Tue Oct 27 11:00:00 2020 a root
  2 Thu Dec 31 23:59:00 2020 a root
  3 Tue Oct 27 00:00:00 2020 a root

查看详细的计划任务:
  [root@at-cron ~]# ls /var/spool/at(存放计划任务目录)
  a000010197dbf4 a0000201994c9f a000030197d960 spool
  [root@at-cron ~]# cat /var/spool/at/a000010197dbf4
  可以查看具体的计划任务的内容

删掉计划任务:
  [root@at-cron ~]# at -d 1 → 工作号
  [root@at-cron ~]# at -r 2 → 工作号
  [root@at-cron ~]# atrm 3 → 工作号
  删除/var/spool/at/目录下面有相应的一次计划任务文件也可以
  可以通过查看日志文件来看是否执行
  [root@at-cron ~]# tailf /var/log/messages
  [root@at-cron ~]# echo 3 > /proc/sys/vm/drop_caches 清理缓存

===============================================

2、循环性计划任务cron

[root@at-cron ~]# rpm -qa |grep cron
  crontabs-1.11-6.20121102git.el7.noarch
  这个服务是系统默认自启的,因为系统级任务计划需要,如果没有启动,需要启动crond服务
  [root@at-cron ~]# systemctl start crond
  [root@at-cron ~]# systemctl enable crond
  [root@at-cron ~]# systemctl is-active crond
  active

===用户级循环任务=
time+action

* * * * * command
  .----------------minute (0 - 59) 第一个代表分钟数
  | .--------------hour (0 - 23) 第二个
代表小时数
  | | .------------day of month (1 - 31) 第三个代表天号
  | | | .----------month (1 - 12) 第四个
代表月份
  | | | | .--------day of week (0 - 6) (Sunday=0 or 7)第五个*代表周几
  | | | | |
  * * * * * command

* 表示每…
  , 取不同的时间点
  - 表示范围
   */5 每5分钟(只有每隔几分钟是有意义的)

* * * * * rm -rvf /mnt/* → /1 * * * * rm -rvf /mnt/

创建循环计划任务(循环计划任务可以指定用户,不指定就默认是当前用户)
  [root@at-cron ~]# crontab -e
  [root@at-cron ~]# crontab -e -u sunlizhen (管理员可以使用 -u username, 去管理其他用户的计划任务)

查看循环计划任务
  [root@at-cron ~]# crontab -l (用户级别循环计划任务crontab -l可以直接查看计划内容)
  * * * * * rm -rvf /mnt/*
  [root@at-cron ~]# crontab -l -u sunlizhen (管理员查看指定用户循环计划任务)
  /1 * * * * rm -rvf /mnt/

当然也可以查看循环计划任务的存储文件
  [root@at-cron ~]# ls /var/spool/cron/
  此目录下以用户为文件名存储用户级别循环计划任务
  root sunlizhen
  [root@localhost ~]# cat /var/spool/cron/root

删除循环计划任务
  [root@localhost ~]# crontab -r (删除当前用户的所有循环计划任务)
  [root@localhost ~]# crontab -r -u sunlizhen(管理员删除指定用户所有循环计划任务)

要是不想全部删除,可以直接进行编辑
  [root@localhost ~]# crontab -e
  [root@localhost ~]# crontab -e -u sunlizhen
 
  计划任务的权限控制
  [root@xingdian ~]# cat /etc/cron.deny
  如果这个文件存在,凡是写到这个文件里面的账户不允许执行crontab命令
  [root@xingdian ~]# cat /etc/cron.allow(这个文件是系统默认不存在的)
  如果这个文件存在,没有写到这个文件里面的账户不允许执行crontab命令
  如果有allow文件,那不管deny是否存在,都是只允许allow文件里面的用户

3、看门狗查看数据拷贝备份循环计划任务实例

①、vim编辑一个压缩、拷贝的脚本

  [root@at-cron ~]# vim /opt/kaobei.sh
  #! /bin/bash
  tar -czf kakaops`date +%y%m%d%H%M%S`.tar.gz /home/*
  mv kakaops`date +%y%m%d%H%M%S`.tar.gz /mnt/

②、指定一个计划任务,每一分钟执行一次拷贝脚本

  [root@at-cron ~]# crontab -e
  */1 * * * * bash /mnt/kaobei.sh

③、看门狗查看指定目录中的内容变化

  [root@at-cron ~]# watch -n 1 'ls -l /mnt'

-n 指定看门狗更新的秒数 -n 1 看看门狗每隔一秒刷新一次
  在这里插入图片描述
可以看到巡循环计划任务没一分钟执行一次拷贝脚本

在这里插入图片描述

[root@localhost ~]# scp -r /etc 172.16.20.21:/tmp (远程拷贝)
  [root@localhost ~]# du -h /home 这个目录的占用大小
  date日期显示命令
  date显示当前日期和时间方式1
  date +%y%m%d%H%M%S
  显示方式(年、月、日要小写(年大写的话显示2020),时、分、秒要大写,中间可以任意加分隔符)
  date +%D显示方式3
  date +%F显示方式4
  date -s 9:43设置当前时间为9:43

猜你喜欢

转载自blog.csdn.net/kakaops_qing/article/details/109293048