• Linux/Window之定时任务脚本编写


    Windows(Win 10)

    compmgmt.msc[Win+R] > 任务计划程序 > 任务计划程序库 > 创建基本任务

    Linux(Ubuntu)

    定时任务种类

    实现linux定时任务主要可以通过cron、anacron、at三种,而使用最多的是cron任务。

    CRON定时任务软件

    概念

    1. [词义]cron一词来源于希腊语chronos(χρόνος),原意特指:时间。
    2. [功能]常见于Unix和类Unix的操作系统之中,通常被内置于操作系统中。用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
    3. [Shell服务]cron服务提供cron、crontab命令(crontab,即 cron table之缩写)来设定cron服务。
    4. [推荐:绝对路径]脚本中推荐使用绝对路径,无论是shell脚本还是python脚本,里面所有的路径最好都是绝对路径!!!形如:echo "hello world" >> /root/jack/cron/sh-log.txt
    5. [辨析]cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表

    cron安装与使用

    • 安装与查看
    shell> sudo apt-get install cron #安装,Ubuntu等Linux系统默认会按照cron服务
    shell> sudo  service cron status # 查看cron状态
    
    • 创建定时任务
    cmd shell> crontab -e
    edited file> # minute hour day-of-month month day-of-week commands
    edited file> */1 * * * * echo "Have a break now." >> /tmp/test.txt   # 每隔1分钟,执行bash shell命令"echo "Have a break now." >> /tmp/test.txt"
    edited file> 3,15 * * * * command   # 每小时的第3和第15分钟执行command
    edited file> 3,15 8-11 * * * command  # 在每天上午8点到11点的第3和第15分钟执行command
    edited file> 6,10 * 2 * *  # 每个月2号,每小时的6分和10分执行一次任务
    edited file> */3,*/5 * * * *   # 每隔3分钟或5分钟执行一次任务,比如10:03,10:05,10:06
    
    • 启动/重启
    shell> sudo service cron start # 启动
    shell> sudo /etc/init.d/cron start # 启动
    shell> sudo service cron restart  # 重启
    shell> sudo /etc/init.d/cron restart # 重启
    
    • 重新载入配置
    shell> sudo service cron reload
    
    • 关闭
    shell> sudo service cron stop
    
    • crontab命令
      • -u //设定某用户的cron服务,一般root用户在执行这个命令的时候需要此参数
      • -l //显示某用户cron服务的配置信息 
      • -r //删除某用户的cron服务
      • -e //编辑某用户的cron服务的配置信息
      • -ir //删除 crontab 文件前提醒用户
    crontab -u root -l  ## 用户(root)查看自己的cron服务配置信息
    

    crontab任务配置基本格式

    crontab中的每一行代表一个定期执行的任务,分为6个部分。前5个部分表示何时执行命令,最后一个部分表示执行的shell命令。

    edited file> # minute hour day-of-month month day-of-week commands
    edited file>    *   *  *  *  *  command
    

    其各项字段对应的合法值:00-59 00-23 01-31 01-12 0-6 (0 is sunday)

    附加说明:操作符号 + 逗号(',')分开的值,例如:“1,3,4,7,8”。表示任意值,比如:在小时部分填写 * 代表任意小时(每小时) + 连词符('-')指定值的范围,例如:“1-6”,意思等同于“1,2,3,4,5,6”。可以允许在一个部分中填写多个值,比如:在分钟部分填写 1,3 表示一分钟或三分钟 + 星号('*')代表任何可能的值。形如,在“小时域”里的星号等于是“每一个小时”,等等。一般配合 * 使用,代表每隔多长时间,比如:在小时部分填写 */2 代表每隔两分钟。所以 */1 和 * 没有区别 */2 可以看成是能被2整除的任意值。

    参考文献

  • 相关阅读:
    实现反转函数,即反转一个Null结尾的字符串
    给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串
    IDL 常用字符串处理函数
    IDL创建进度条
    python中f'{}'用法
    Win10 pycharm中显示PyTorch tensorboard图
    torch.cat()和torch.stack()
    运筹学笔记6初始可行基
    运筹学笔记5单纯形法
    运筹学笔记4线性规划问题的几何特征
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/10746712.html
Copyright © 2020-2023  润新知