1、cron和crontab命令详解crontab 每分钟、每小时、每天、每周、每月、每年定时执行 crontab每5分钟执行一次 cron机制 cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制crontab参数 -u:这个参数可以让我们去编辑其他人的crontab,如果没有加上这个参数的话就会开启自己的crontab crontab -u 使用者名称 -l:可以列出crontab的内容 -r:可以移除crontab -e:可以使用系统预设的编辑器,开启crontab -i:可以移除crontab,会跳出系统信息让你再次确定是否移除crontab crontab时间格式说明 minute(分)可以设置0-59分 hour(小时)可以设置0-23小时 day of month(日期)可以设置1-31号 month(月份):可以设置1-12月 day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,或者我们也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一等等 crontab时间格式范例 1-3表示123 1-9/2表示13579 crontab范例 每五分钟执行 */5 * * * * 每小时执行 0 * * * * 每天执行 0 0 * * * 每周执行 0 0 * * 0 每月执行 0 0 1 * * 每年执行 0 0 1 1 * 设定cron的权限 /etc/cron.allow /etc/cron.deny 系统首先判断是否有cron.allow这个文件,如果有这个文件的话,系统会判断这个使用者有没有在cron.allow的名单里面,如果在名单里面的话,就可以使用cron机制。如果这个使用者没有在cron.allow名单里面的话,就不能使用cron机制。 如果系统里面没有cron.allow这个文件的话,系统会再判断是否有cron.deny这个文件,如果有cron.deny这个文件的话,就会判断这个使用者有没有在cron.deny这个名单里面,如果这个使用者在cron.deny名单里面的话,将不能使用cron机制。如果这个使用者没有在cron.deny这个名单里面的话就可以使用cron机制。 如果系统里这两个文件都没有的话,就可以使用cron机制 介绍crontab文件 /etc/crontab 在这个文件里并没有记录系统要执行哪些工作,而是记录了下面四个子目录。 /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly 这些子目录里存放了一些脚本,到了crontab所指定的时间点,系统就会去执行这些子目录里的脚本。 2、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文件 "*"代表取值范围内的数字, "/"代表"每", "-"代表从某个数字到某个数字, ","分开几个离散的数字 3、查看计划任务 查看调度任务 crontab -l -u jp //列出用户jp的所有调度任务 实例1: (1)在当前家目录下创建shell脚本123.sh(实现排序)如下 #!/bin/bash (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 结束 |
|
来自: XeonGate > 《Ubuntu 16.04.6》