Linux中的定时任务at、crontab
at
at命令可以用来在某一时段执行一次任务,只会执行一次,不会重复执行。
at命令是由atd服务来控制的,使用之前先查看atd服务是否正常:
$ /etc/init.d/atd status
* atd is running
如果没有的话就需要安装:
$ sudo apt-get install at
$ /etc/init.d/atd start
at命令的基本语法:
at [options] TIME
常用的options:
- -m:当at工作完成之后,用email通知用户任务已经执行完成
- -l:列出目前所有的任务
- -d:取消一个任务
TIME是时间,常用的格式:
HH:MM:在今天的某时某刻开始执行任务,如果时间已过,则延迟到明天的这个时间开始。HH:MM YYYY-MM-DD:在具体的某年某月某天执行。HH:MM[am|pm] [Month] [Date]HH:MM[am|pm] + number [minutes|hours|days|weeks]:在某个时间点再加上时间后执行,ex:now + 1 minutes
一个例子:
创建一个任务,1分钟后输入hello world到/tmp/t1文件
$ at now + 1 minutes
at> echo "hello world" > /tmp/t1
at> <EOT> # 输入完成后按Ctrl + d保存
可以使用at -l或者atq来查看刚才创建的任务:
$ atq
3 Fri Aug 11 22:41:00 2017 a jby
3是任务序号,如果创建错了任务就可以使用这个数字来删除:
$ atrm 3
权限
可以用过配置文件来设置哪些用户能使用at命令,哪些用户不能使用:
- at命令会先查找
/etc/at.allow文件,如果这个文件存在,那么只有在这个文件里面的用户才能使用at命令。 - 如果不存在,那么就会查找
/etc/at.deny文件,如果文件存在,那么不在这个文件里面的用户才可以使用at命令。 - 如果2个文件都不存在,那么只有root才能使用at命令
2个文件的内容格式都是一行一个用户名
batch
batch命令的用法跟at一样,只不过batch添加的任务会在CPU负载小于0.8的时候才执行,如果到了执行时间点CPU负载过高就会延缓执行。
crontab
crontab命令是用来一直循环执行某个任务。
基本语法:
crontab [-u user] [-l-e-r]
- -u:只有root才能使用,用来帮其他的用户创建或者删除任务。
- -e:编辑任务
- -l:查看当前的任务
- -r:删除所有的任务
一个列子:
输入crontab -e进入编辑模式,输入5 * * * * echo "hello >> /tmp/t1",然后保存退出(不需要重新启动cron服务,会自动每分钟重新读取任务内容)。
任务的格式为:
分 时 日 月 周 命令
前面5个字段是时间,他们之间用空格隔开。表示的就是再某一个时间点执行任务,取值范围就是正常的时间取值范围(比如:分钟是0-59,时是0-23),周的取值是0-7表示星期一到星期天,o跟7都是星期天
例子:
- 5 * * * * 每个小时的5分执行任务
- 10 3 * * * 每天的3点10分执行任务
- 10 3 2 * * 每个月2号的3点10分执行任务
一些特殊的取值:
- *:表示任何时刻
- ,:英文逗号表示and的意思,比如 10 3,6 * * * 每天的3点10分跟6点10分都执行任务
- -:减号表示的范围,比如:10 3-6 * * * 每天的3点到6点之间的每个小时的10分都执行任务
- /n:表示的是单位间隔,比如 */1 * * * * 每隔1分钟执行一次任务
权限
cron服务也有两个文件/etc/cron.allow、/etc/cron.deny来控制用户的使用权限,逻辑都at一样
Linux中的定时任务at、crontab的更多相关文章
- linux 中的定时任务crontab使用方法
linux 中的定时任务crontab使用方法: 切换到root用户,sudo su root (可以设置成不需要输入密码) sudo su - (需要输入当前帐号的密码才能进入.) crontab ...
- linux下系统定时任务配置----crontab(mysql定时备份)
crontab命令用于设置周期性被执行的指令,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任 ...
- linux中执行定时任务对oracle备份(crontab命令)
执行定时任务对oracle表数据备份: 1.创建sh脚本 [oracle@localhost ~]$ vi bak.sh 2.添加脚本内容 #!/bin/bash #:本脚本自动备份7天的数据库,每次 ...
- Linux中crond服务与crontab用法
需要写个在Linux下定时更新系统的脚本,man crondtab 不甚详细,现将网络上的介绍列举如下: crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cr ...
- linux中Cron定时任务系统命令详解
分类:Linux VPS教程 作者:阿川 发布时间:October 13, 2011 有很多同学在购买VPS之后,需要用到计划任务.但是又对计划任务不太了解,所以.今天我们的帮助中心主要是给大家提供一 ...
- linux中的定时任务创建
1.查看root用户身份下正常运行的定时任务 crontab -l -u XXX 列出XXX用户的所有定时任务,如有没有会提示 no crontab for XXX列出所有的用户:cat /etc/p ...
- [笔记] linux中的计划任务crontab
不能拒绝进步 cron来源于希腊单词chronos(意为"时间"),指linux系统下一个自动执行指定任务的程序(计划任务). 1--crontab 的命令选项 #crontab ...
- 在Linux中三种让crontab每秒执行任务的方法
第一种方法: 1.创建脚本文件 cat phplog.sh 2.编辑脚本内容 #!/bin/bash while : ;do /home/scripts.sh 2>/dev/null & ...
- mac/linux自带定时任务执行crontab的使用
1.编辑定时任务信息 sudo crontab -e #以root用户创建,也可以 -u 参数 编辑内容如下: 频率表达式分别对应为 分.时.日.周.月 LANG=zh_CN.UTF-8 */30 * ...
随机推荐
- PowerShell 远程执行任务
在 linux 中我们可以使用 SSH 执行各种远程操作,同样的在 windows 平台上我们可以通过 PowerShell 获得类似的能力.本文将介绍通过 PowerShell 执行远程操作的基本信 ...
- JavaScript中异步编程
一 关于事件的异步 事件是JavaScript中最重要的一个特征,nodejs就是利用js这一异步而设计出来的.所以这里讲一下事件机制. 在一个js文件中,如果要运行某一个函数,有2中手段,一个就是直 ...
- C3制作导航栏分割线及立体风格
//首先写一个导航栏样式 .nav{ width:560px; height: 50px; font:bold 0/50px Arial; text-align:center; ...
- ES6关于Unicode的相关扩展
前面的话 字符串是编程中重要的数据类型,只有熟练掌握字符串操作才能更高效地开发程序.JS中的字符串String类型是由引号括起来的一组由16位Unicode字符组成的字符序列.在过去,16位足以包含任 ...
- VerilogHDL概述与数字IC设计流程学习笔记
一.HDL的概念和特征 HDL,Hard Discrimination Language的缩写,翻译过来就是硬件描述语言.那么什么是硬件描述语言呢?为什么不叫硬件设计语言呢?硬件描述语言,顾名思义就是 ...
- 导出EXCEL遇到问题
EXCEL设置的格式要与写入信息的格式要匹配,比如写入信息是字符串类型,而EXCEL单元格是DATE类型则会出错.
- (转)spring学习之@ModelAttribute运用详解
@ModelAttribute使用详解 1 @ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被 ...
- javascript对象的创建--相对java 怎样去创建了"类"i以及实例化对象
由于javascript没有java那么多基本类型,同时也没有提供class这个东西,那么我们想实现javascript的对象创建应该怎么办呢,我简单地从w3c提供的课件中提取了一下几种方法: 一.工 ...
- Datatables快速入门开发--一款好用的JQuery表格插件
博主是一个java后端程序员小白,前端技术会用但不精通,做后台的一些功能经常要涉及表格的展示,分页,搜索,排序等等一系列功能,在经历了一段时间的原始手段,开始接触并使用Datatables,一个jqu ...
- 15. leetcode 349. Intersection of Two Arrays
Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2, 1 ...