• linux-定时任务


    目录

    一、crond命令

    1、什么是计划任务

    2、crond服务的概念

    3、crontab

    二、at命令

    1、at任务的概念

    三、邮件服务

    1、概念

    2、启动postfix

    四、mailx命令

    1、三个概念:

    2、交互式发邮件

    3、非交互式发邮件

    四、cron定时任务实践

    1、系统定时任务配置文件

    2、用户定时任务计划

    3、检查crond服务是否运行


    一、crond命令

    1、什么是计划任务

    • 周期性任务执行
    • 清空/tmp目录下的内容
    • mysql数据库备份
    • redis数据备份

    这就用到了crond服务

    检查crond服务相关的软件包

    1. [root@localhost ~]# rpm -qa | grep cron
    2. cronie-anacron-1.4.11-11.el7.x86_64
    3. crontabs-1.11-6.20121102git.el7.noarch
    4. cronie-1.4.11-11.el7.x86_64
    5. [root@localhost ~]#

    rpm -ivh 安装rpm软件

    rpm -qa 查看软件是否安装

    rpm -ql 查看软件详细信息

    rpm -qf 查看命令属于的安装包

    rpm -e 卸载软件

    先查看是否安装crond服务相关软件包

    1. [root@localhost ~]# rpm -qa cron*
    2. cronie-anacron-1.4.11-11.el7.x86_64
    3. crontabs-1.11-6.20121102git.el7.noarch
    4. cronie-1.4.11-11.el7.x86_64
    5. [root@localhost ~]#

    查看是否正在运行

    2、crond服务的概念

    • cron 定时任务的名字
    • crond 定时任务的进程名
    • crontab 管理定时任务命令

    3、crontab

    f1 f2 f3 f4 f5 program

    - 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。


    二、at命令

    1、at任务的概念

    • at定时任务工具,依赖于atd服务,适用于执行一次就结束的调度任务
    • 例如突发任务,某天夜里三点需要临时性备份数据,可以使用at软件

    2、at实例


    三、邮件服务

    1、概念

    任务计划触发执行后,会通过邮件发给用户,(并非互联网上的邮件,而是系统内部i的邮件服务)

    检查服务器端口,25号邮件端口是否打开,centos5是sendmail,centos6、7是postfix服务

    ss -tnl | grep 25 netstat -tnl | grep 25 需要下载net-tools

    2、启动postfix

    vim /etc/postfix

    - 确保inet_protocols = all

    三个服务的区别


    四、mailx命令

    1、三个概念:

    MTA:Mail Transport Agent,邮件传送代理,也就是postfix服务

    MUA:Mail User Agent , 收发邮件的客户端,可以是foxmail,也可以是其他客户端

    Centos7通过命令mailx发送邮件,通过mail命令接收邮件

    2、交互式发邮件

    给root系统用户发送邮件

    1. [root@localhost ~]# mailx -s "hello root" root
    2. nihao root
    3. EOT

    mail查看收到的邮件

    1. Heirloom Mail version 12.5 7/5/10. Type ? for help.
    2. "/var/spool/mail/root": 3 messages 1 new
    3. 1 root Thu Sep 28 13:23 19/634 "hello root"
    4. 2 root Thu Sep 28 13:23 19/626 "hello root"
    5. >N 3 root Thu Sep 28 13:24 18/615 "hello root"
    6. &

    看详细信息

    3、非交互式发邮件

    1. [root@localhost ~]# echo "i am sender" > fine.txt
    2. [root@localhost ~]# mail -s "nihao root" root < fine.txt

    查看邮件


    四、cron定时任务实践

    1、系统定时任务配置文件

    crond进程提交任务的方式与at不同,crond需要读取配置文件,且有固定的文件格式,通过crontab命令管理文件。

    crond任务分为两类

    • 系统定时任务

    crond服务除了在工作时查看/var/spool/cron 文件夹下的定时任务文件以外,还会查看/etc/cron.d目录以及/etc/anacrontab 下面的文件内容,里面存放每天,每天,每月需要执行的系统任务

    1. [root@localhost ~]# ls -l /etc/cron.d total 4 -rw-r--r--. 1 root root 128 Jan 27 2014 0hourly
    2. [root@localhost ~]# ls -l /etc/anacrontab -rw-------. 1 root root 541 Jan 27 2014 /etc/anacrontab

    2、用户定时任务计划

    当系统管理员(root)或者是普通用户船舰了需要定时执行的任务,可以使用crontab命令配置

    crontab -l 查看以及设置的定时任务

    crontab -e

    1. [root@localhost ~]# cat /tmp/1
    2. i am root
    3. [root@localhost ~]# crontab -l
    4. * * * * * /usr/bin/echo "i am root" > /tmp/1

    3、检查crond服务是否运行

    1. [root@localhost ~]# systemctl is-active crond
    2. active
    3. [root@localhost ~]# ps -ef|grep crond
    4. root 936 1 0 Sep27 ? 00:00:00 /usr/sbin/crond -n
    5. root 7613 6760 0 17:09 pts/0 00:00:00 grep --color=auto crond
    6. [root@localhost ~]#

    定时任务相关文件

    /var/spool/cron 定时任务的配置文件所在目录

    /var/log/cron 定时任务日志文件

    /etc/cond.deny 定时任务黑名单

  • 相关阅读:
    Java中HashMap之replaceAll()方法具有什么功能呢?
    Visual Studio(VS)C++项目 管理第三方依赖库和目录设置
    代码托管基础操作
    Mybatis-Plus的一些优雅用法
    tomcat 7 Request请求参数中文乱码问题
    鸿蒙文件操作事前准备
    centos7安装redis4.0.10环境以及配置使用
    手绘板的制作——重置与橡皮擦(2)
    Linux quota
    你的librosa和scikit-learn打架了吗?
  • 原文地址:https://blog.csdn.net/bmxch/article/details/133421533