zoukankan      html  css  js  c++  java
  • ubuntu 16.04 计划任务crontab 周期执行任务

    crontab主要作用:

    比如我们每天需要清空日志记录文件,我们可以执行一段指令去完成,每天都需要手动输入就比较麻烦,让系统每天去帮我们完成就比较轻松了,
    根据你自己的定义 可以定位到月 日 时 分 星期 ,
    以前有个很有名的病毒 '黑色星期五'   
    每到了周五就发作,计划任务和它一样的道理,只不过没有破坏性,
    

    1、 计划任务,crontab命令选项:

     -u指定一个用户,
     -l列出某个用户的任务计划,
     -r删除某个用户的任务,
     -e编辑某个用户的任务
    

    2 cron文件语法:

    分 小时 日 月 星期 命令

    0-59 0-23 1-31 1-12 0-6 command

      可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件

        "*"代表取值范围内的数字,
    
        "/"代表"每",
    
        "-"代表从某个数字到某个数字,
    
        ","分开几个离散的数字
    

    举例如下:

    5 * * * * ls /*指定每小时的第5分钟执行一次ls命令*/ 
    30 5 * * * ls /*指定每天的 5:30 执行ls命令*/ 
    30 7 8 * * ls /*指定每月8号的7:30分执行ls命令*/ 
    50 7 * * * root run-parts /etc/cron.daily /*每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件*/
    

    3、查看计划任务

    查看调度任务
    crontab -l //列出当前的所有调度任务

         crontab -l -u jp   //列出用户jp的所有调度任务
    

    实例1:

    (1)在当前家目录下创建shell脚本123.sh(实现排序)如下

         #!/bin/bash
        arr=(1 5 4 5 6 7 0)
        for (( i=0 ; i<${#arr[@]} ; i++ ))
        do
              for (( j=${#arr[@]} - 1 ; j>i ; j-- ))
              do
            #echo $j
            if  [[ ${arr[j]} -lt ${arr[j-1]} ]]
            then
               t=${arr[j]}
               arr[j]=${arr[j-1]}
               arr[j-1]=$t
            fi
          done
        done
    echo "排序后:"
    echo ${arr[@]}                  
    

    (2)输入crontab -e 添加计划任务(不指定用户就是当前用户)

        第一次会让你选择编译器,如果选错编译器了要更改编译器  输入   select-editor 重新选择
    
        ubuntu截图用shift+PrintScreen 选择 ’复制到剪切板‘ 就可以了
    

    我选的是vim ,看个人习惯

    (3)在文本最后输入我们要执行的shell脚本命令

    * * * * * 代表每分钟执行一次

    按esc 输入:wq 保存退出

    (4)重启cron服务:

    service cron restart

    (5)查看结果

    用户家目录下查看任务有没有执行,如果执行了应该是有pa.txt文件的(任务有重定向到文件)

    查看文件内容

    如果你要周期执行python脚本,你只需要把脚本写好,然后将cron那里的执行命令写成 python3 脚本目录文件名就可以

    比如 :

    * * * * *  python3 ~/hello.py >  123.txt
    

    总结:

    linux中将一个脚本文件作为一个计划任务小结,以python脚本为例:

    1 创建脚本文件test.py,在文件开头需要加上下面一行

    #!/usr/bin/python

    上面这行的作用是说明使用那个解释器来执行该文件,如果不知道python解释器在哪,可以使用命令which python来查看

    2 给该文件添加可执行的权限

    chmod +x test.py

    3 添加计划任务

    crontab -e

    在文件中追加一行,*/2 * * * * /usr/bin/python /home/pc/work/ENV/project/test.py

    保存退出,:wq

    4 重启cron服务

    service cron restart

    cron的配置文件称为“crontab”,是“cron table”的简写

      service crond start //启动服务
      service crond stop //关闭服务
      service crond restart //重启服务
      service crond reload //重新载入配置
      service crond status //查看服务状态

    结束

  • 相关阅读:
    Datatables 行数据删除、行上升、行下降功能演示
    1.2 初识输入输出
    布局管理——绝对定位
    创建一个包括菜单栏,工具栏,状态栏,文本编辑部件的经典GUI应用程序的骨架
    工具栏
    上下文菜单
    选项菜单
    创建子菜单
    设置菜单栏
    添加状态栏(显示状态信息)
  • 原文地址:https://www.cnblogs.com/haima/p/12202531.html
Copyright © 2011-2022 走看看