• Linux下定时任务的操作


    ##############################

    Linux下的任务调度分为两类,系统任务调度和用户任务调度。
    1,系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。
        在/etc/crontab文件,这个就是系统任务调度的配置文件。
    2,用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。
        用户可以使用 crontab 工具来定制自己的计划任务。
        在crontab 文件都被保存在/var/spool/cron目录中。其文件名与用户名一致

    ##########################

    1.系统定时任务:例如清理系统日志,清理系统缓存   -->不过多的关注
        查询系统定时处理任务的路径:
            路径1:
                cd /etc/logrotate.d/        -->可以写定时任务
                less syslog 
            路径2:
                cat /etc/crontab   -->不推荐使用,但是可以看格式
            路径3:
                 ls /etc/ | grep cron*
                     anacrontab
                     cron.d                 -->同路径2 ,可以写定时任务  
                     cron.daily
                     cron.deny              -->控制普通用户使用定时任务crontab
                     cron.hourly
                     cron.monthly
                     crontab
                     cron.weekly
    2.用户的定时任务      -->关注重点

    ##################################

    前四行是用来配置crond任务运行的环境变量
    第一行SHELL变量指定了系统要使用哪个shell,这里是bash
    第二行PATH变量指定了系统执行命令的路径
    第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户
    如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
    第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。
    
    星号(*):代表所有可能的值,如month字段为星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
    逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
    中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
    正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。
    

    小 结: 数字的表示最好用2为阿拉伯数字显示 周和日最好不要同时用 定时任务要加注解 可以定向到日志文件或者空文件 定时任务一定是绝对路径,且目录必须存在才能出结果 crontab 服务一定要开启运行

    ############################

    0 0 * * * sh /root/autotest/hwtest/auto-del-log.sh
    0 */3 * * * python3 /root/autotest/hwtest/hwtestpro/bbs/srun_bbs_test.py
    0 */1 * * * python3 /root/autotest/hwtest/hwtestpro/bbs/url_main.py

    零点零分执行,
    每3小时0分执行一次
    每1小时0分执行一次,

    ####################################

    时间格式如下:
    f1 f2 f3 f4 f5 program
    解释:
    f1 是表示分钟, 分钟(0-59)
    f2 表示小时, 小时(0-23)
    f3 表示一个月份中的第几日,一个月中的第几天(1-31)
    f4 表示月份, 月份 (1 - 12)
    f5 表示一个星期中的第几天。 星期中星期几 (0 - 7) (星期天 为0)
    program 表示要执行的程序。
    当 f1 为 * 时表示每分钟都要执行program,f2 为 * 时表示每小时都要执行程序,其馀类推 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推


    ######################

    crontab -l 表示列出所有的定时任务
    crontab -r 表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除,执行crontab -l后会提示用户:“no crontab for admin”
    crontab -e 表示编辑定时任务,

    ###################################

    常用的命令展示
    安装crontab:yum install crontabs
    crontab服务操作说明:
    /sbin/service crond start //启动服务
    /sbin/service crond stop //关闭服务
    /sbin/service crond restart //重启服务
    /sbin/service crond reload //重新载入配置
    查看crontab服务状态:
    service crond status

    ##########################################

    在linux环境的python定时任务

    ############################################

    1.首先配置linux环境,将anaconda设置为默认环境设置。
    第一种方法:
    
    通过 vi 修改 ~/.bash_profile
    将export PATH="~/anaconda/bin:PATH"‘改为‘exportPATH=" /anaconda/envs/python3/bin:PATH"
    `改为`export PATH="~/anaconda/envs/python3/bin:PATH
    "‘改为‘exportPATH=" /anaconda/envs/python3/bin:PATH"` 第二种方法: 编辑环境变量:vi /etc/profile 在最后一行加入:export PATH=/root/anaconda3/envs/python36/bin:$PATH 保存并退出::wq 环境变量生效:source /etc/profile

    ####################################

    在linux环境的python定时任务

    操作步骤 这里有两种方法进行定时任务添加,分别是crontab -e和编辑/etc/crontab。两种方法的语法也略有不同,/etc/crontab的语法比crontab -e多了一个用户字段。 crontab -e 用户级,不能设置用户字段 /etc/crontab 系统级,只能root用户权限使用,需要设置用户字段

    ####################################

    crontab -e
    这种方式是用户级的,所有用户的可以使用,实际保存在/var/spool/cron/username中。
    但有的linux系统加在crontab -e会无效,这种方法不会对语法进行校验。具体操作步骤为: crontab -e 添加定时任务,如每周一3点执行python脚本 0 3 * * 1 python /data/www/test.py wq保存退出,完毕 简单说明一下crontab,它是linux系统的定时任务命令,与windows系统下的计划任务有点类似, 我们的使用方法也很简单,首先使用你当前的用户创建一个crontab文件,使用crontab -e命令创建一个文件,这个文件在这个目录下: /var/spool/cron 使用 cd /var/spool/cron就可以切换到该目录下,文件名是以当前用户名命名的, 比如你当前是root权限账户,那你创建的文件可能就是root,如果你是test用户,那么文件名就是test, 切记,所有用户定义的crontab文件都被保存在/var/spool/cron目录中,之后编辑该文件,使用vim root或vim test编辑文件。

    ####################################

    /etc/crontab
    直接编辑/etc/crontab 比 crontab -e 多了一个用户名字段,该方法是系统级的,必须root权限使用
    步骤:
    vi  /etc/crontab
    在后面添加定时任务,如每周一3点执行python脚本
    0 3 * * 1 root python /data/www/test.py
    wq保存退出,完毕

    #####################################

    查看crontab日志
    tail -f /var/log/cron

    3. mail任务
    在 /var/spool/mail/root 文件中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 即可查看最近的crontab执行情况。

    ########################################

  • 相关阅读:
    84最佳买卖股票时机含冷冻期(309)
    83 不同路径 II(63)
    82同路径(62)
    模块与包
    名称空间与作用域
    函数的参数
    函数对象
    函数继续学习中
    python学习day3-上午
    第一个完成程序:通过文件实现注册登录
  • 原文地址:https://www.cnblogs.com/andy0816/p/12728882.html
Copyright © 2020-2023  润新知