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命令,哪些用户不能使用:

  1. at命令会先查找/etc/at.allow文件,如果这个文件存在,那么只有在这个文件里面的用户才能使用at命令。
  2. 如果不存在,那么就会查找/etc/at.deny文件,如果文件存在,那么不在这个文件里面的用户才可以使用at命令。
  3. 如果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的更多相关文章

  1. linux 中的定时任务crontab使用方法

    linux 中的定时任务crontab使用方法: 切换到root用户,sudo su root (可以设置成不需要输入密码) sudo su - (需要输入当前帐号的密码才能进入.) crontab ...

  2. linux下系统定时任务配置----crontab(mysql定时备份)

    crontab命令用于设置周期性被执行的指令,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任 ...

  3. linux中执行定时任务对oracle备份(crontab命令)

    执行定时任务对oracle表数据备份: 1.创建sh脚本 [oracle@localhost ~]$ vi bak.sh 2.添加脚本内容 #!/bin/bash #:本脚本自动备份7天的数据库,每次 ...

  4. Linux中crond服务与crontab用法

    需要写个在Linux下定时更新系统的脚本,man crondtab 不甚详细,现将网络上的介绍列举如下: crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cr ...

  5. linux中Cron定时任务系统命令详解

    分类:Linux VPS教程 作者:阿川 发布时间:October 13, 2011 有很多同学在购买VPS之后,需要用到计划任务.但是又对计划任务不太了解,所以.今天我们的帮助中心主要是给大家提供一 ...

  6. linux中的定时任务创建

    1.查看root用户身份下正常运行的定时任务 crontab -l -u XXX 列出XXX用户的所有定时任务,如有没有会提示 no crontab for XXX列出所有的用户:cat /etc/p ...

  7. [笔记] linux中的计划任务crontab

    不能拒绝进步 cron来源于希腊单词chronos(意为"时间"),指linux系统下一个自动执行指定任务的程序(计划任务). 1--crontab 的命令选项 #crontab ...

  8. 在Linux中三种让crontab每秒执行任务的方法

    第一种方法: 1.创建脚本文件 cat phplog.sh 2.编辑脚本内容 #!/bin/bash while : ;do /home/scripts.sh 2>/dev/null & ...

  9. mac/linux自带定时任务执行crontab的使用

    1.编辑定时任务信息 sudo crontab -e #以root用户创建,也可以 -u 参数 编辑内容如下: 频率表达式分别对应为 分.时.日.周.月 LANG=zh_CN.UTF-8 */30 * ...

随机推荐

  1. HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配)

    HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配) Description The zoo have N cats and M dogs, toda ...

  2. android6.0动态权限处理<一>

    android 6.0以上为了保护用户的隐私,和以往被人诟病的权限机制,确立了新的权限机制.从 Android 6.0(API 级别 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授 ...

  3. 如是使用JS实现页面内容随机显示

    之前有个客户咨询我,因为他们公司的业务员有多个人,但公司网站的联系方式板块里只够放一个人的信息,所以就想能不能实现这个联系方式信息随机显示,对于业务或客服人员来说也能做到分配均匀公平.本文我们将和大家 ...

  4. mysql内部级联删除

    1,创建user表 属性:id,name 2,创建userInfo表 属性:id,age 在userInfo表中创建外键id,如下图: 在user表中插入两个用户信息 (1,'1'),(2,'2') ...

  5. Spring+SpringMVC+MyBatis集成学习笔记【一】

    一,首先要清楚,SpringMVC其实就是Spring的一个组件       例如我们知道Spring中有类似于,AOP TX等等类似的组件,所以SpringMVC其实就是Spring的一个组件,是S ...

  6. Spring源码情操陶冶-AbstractApplicationContext#registerListeners

    承接前文Spring源码情操陶冶-AbstractApplicationContext#onRefresh 约定web.xml配置的contextClass为默认值XmlWebApplicationC ...

  7. 还在为CSS布局发愁?你该看看这7条原则

    一.网页结构分析七条原则 这以下7个原则是经过多年网站实战经验之后的总结,只要掌握这7个原则,可以解决大部分在编写网站布局中的问题. 1.先结构后样式. 2.能用CSS表现出来的效果,就尽量少用图像. ...

  8. 会话跟踪Cookie与Session

    会话跟踪用来跟踪用户的整个会话,常用的是Session和Cookie.Cookie通过客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 1.Cookie  1.1概念及使 ...

  9. Javascript之布尔

    一.概念 将非布尔值转成布尔值(true)或(false). 二.创建布尔对象 var bool = new Boolean(); console.log(bool);//Boolean { fals ...

  10. Xamarin.Forms(一) Visual Studio 连接安卓模拟器(逍遥安卓)

    刚开始学习Xamarin.Forms的时候总是比较困难的,连接安卓模拟器就花了我好长时间,后来在网上找到了方法: 1.打开adb.exe所在目录: 如:cd F:\Android\android-sd ...