Linux教程

LINUX学习------2.4 Linux系统延时任务及定时任务

本文主要是介绍LINUX学习------2.4 Linux系统延时任务及定时任务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

2.4.1 系统延时任务

at -l                         #查看任务列表
at -c                        ##查看人物内容
at -r                         ##取消任务执行

 

    at 11:11        设定任务执行时间
    at > rm -fr /mnt/*    任务动作
    at > <EOT>    <<Ctrl+D    用ctrl+D发起任务
    
    at now+1min        延时1分钟
    at > rm -fr /mnt/*    
    at > <EOT>

tips:当任务有输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root   ##查看超级用户邮件
1        ##查看第一峰邮件
q        ##退出

2.4.2 任务黑白名单

    /etc/cron.deny    #系统中默认存在,在此文件中出现的用户不能执行cron(黑名单)
    /etc/cron.allow    #系统中默认不存在,当文件出现所有普通用户不能执行cron只有在名单上的用户可以,并且/etc/cron.deny失效

 2.4.3 系统定时任务

/var/spool/cron/username           ##任务保存文件

1、crontab    时间表示方式

* * * * *                                                ##每分钟
*/2* * * *                                             ##每两分钟
*/2 09-17* * *                                     ##早9-晚5每两分钟
*/2*/2* * *                                           ##每隔2小时每2分钟
*/2 09-13 3,5 1 5                              ##一月的3号和5号及每周五 9点到13点  每隔辆分钟
*/2 09-13* * 5                                    ##每周周五早9晚五

2、系统控制crontab的服务

crond.service                                 ##当程序开启时定时任务生效

3、crontab

    crontab -e -u                    ##建立定时任务文件  crontab -u root -e touch /mnt/file
    crontab -l -u                     ##查看定时任务
    crontab -r -u                     ##删除定时任务

4、crontab的黑白名单

/etc/cron.deny        ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow        ##系统默认不存在,当文件出现普通用户不能执行crontab,只有在
echo lee > /etc/cron.allow     ##重定向直接写入文件
名单中的用户可以,并且/etc/at.deny失效,这两个名单都不会影响/etc/cron.d/目录中定时任务的发起和执行

        

 2.4.4 日志和邮件

        当crontab执行定时任务时,输出结果不会出现在shell,而是以邮件的方式发送到任务发起者的邮箱中

    /var/log/cron                                        ##日志文件
    /var/spool/mail/root                            ##邮件文件
    /etc/crontab                                         ##添加定时任务
    /etc/sysconfig/crond                          ##设置邮件/日志是否接受

        dnf install postfix mailx                            ##安装服务邮件
        systemctl enable --now postfix               ##打开服务
        systemctl restart crond.service              ##重启服务(重启服务后定时服务才会重新读取邮件服务)
        
        vim /etc/sysconfig/crond                          ##编辑定时任务是否接受邮件或日志    
            CRONDARGS= -m(邮件) -s(日志)
        
        vim /etc/crontab                                         ##添加定时任务
            MAILTO="root":                                      ##添加定时任务发起用户root
        systemctl restart crond.service                ##重启服务识别
    tips:屏蔽无用邮件fangfa:

                       1、在定时任务发起时 在定时语句后加 &> /dev/null    (将邮件扔空)
                       2、在/etc/sysconfig/crond文件下编写(CRONDARGS= -m(邮件)off -s(日志))
                       3、设置接受对象为空vim /etc/crontab (MAILTO="":)
        
        mail命令:
            mail -u root                               ##打开root用户邮件
            mail -s "test mail" root            ##编写”test mail“的邮件并发送主机   以.结束编写

 2.4.5  系统临时文件的管理方式

脚本文件的建立    cd /etc/cron.
        vim test.sh
        cp text.sh /etc/cron.hourly/
        chmod +x /etc/cron.hourly/text.sh
        cd /etc/cron.d
        vim westos
            ***** root rm -rf /mnt/*
        
        

实验步骤:
    vim /lib/tmpfiles.d/westos.conf                ##创建临时文件目录
        d /mnt/westos 1777 root root 5s            ##在该目录下创建的文件5s后会被系统的临时文件清除命令清除
    systemd-tmpfiles --create /lib/tmpfiles.d/westos.conf    ##加载上述文件
    
    systemd-tmpfiles --clean /lib/tmpfiles.d/westos.conf    ##手动清除临时文件

    vim /etc/cron.d/westos                    ##编写临时文件定时任务,自动化清除临时文件
        01 * * * * root systemd-tepfiles --clean /lib/tmpfiles.d/*.conf        ##在一天后执行清除临时文件命令

这篇关于LINUX学习------2.4 Linux系统延时任务及定时任务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!