开发者社区> 寒凝雪> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Linux中crontab-定时任务命令

简介:
+关注继续查看

有些东西很久不用就会忘记,所以为了不至于总是找资料,干脆就做一次深刻的笔记,这样既能加深记忆,又能深入理解。

  linux服务器很久没接触了,出了一些新的版本,Ubuntu已经出了11.10了,之前对于Ubuntu的了解只是出于对桌面版的好奇,可以跟win7一样炫,现在的Ubuntu已正式进入了Liunx爱好者的视线,应用用于后台大型服务器,选择它的主要原因还是出于对稳定性的考虑。用习惯了Centos,突然转移到Ubuntu上还是有些不习惯,毕竟Centos与传统的Redhat没什么区别。不过,总归命令还是一样的,多用用就熟悉了。

  关于任务定时的命令crontab,在Linux中应用还算常见,这次为了配合开发完成一些辅助功能,以及一些备份更新等脚本,就需要crontab来完成,在windows下也就是一个批处理,linux只是多了一些命令而已。先来看看crontab的介绍:

  crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。

  在Ubuntu中,crontab的命令如下:

  -e 表示编辑当前的crontab

  -l 表示列表显示当前的crontab任务

  -r 表示删除当前用户的crontab

  -i 表示删除crontab时给予提示信息

  注意,user's crontab这个表示是每个用户都有自己的crontab,所以如果需要全局执行,必须定制root用户的crontab,非全局的,就根据各个用户自己的crontab来执行,在执行编辑crontab操作时,我们需要设置编辑工具,否则默认是crontab的编辑,对于习惯vi编辑的用户,我们需要在用户目录下设置.profile配置文件,如root的配置文件.prifile,就如下目录:

  带.的文件都是隐藏文件,所以需要ls -a才能列出来,vi .profile在文件中加入如下配置:

  EDITOR=vi; export EDITOR

  表示,当前root用户以vi作为默认编辑器,此时直接使用crontab -e,可以进行编辑任务列表,如下所示:

  上面以#号开头的表示是注释说明的信息,红色标记的是任务列表。

  对于crontab的任务配置说明;

  分钟 小时 日 月 星期 命令

  

  这样就一目了然了,我们红色标记的表示的意义是每天3点钟执行脚本run.sh,并将执行日志自动输出到log.log文件中。

  /1 * root /opt/bin/test-cron.sh //表示每隔一分钟执行一次脚本

  注:crontab任务是被定制在系统后台运行的cron进程,所以用户书无法查看到cron的进程状态的。设置开机启动cron进程,命令如下:

  chkconfig --add crond,把它加入到系统的服务列表中。

  当然,crontab命令用多了,会越来越喜欢它的,因为它能简化我们日常的很多工作,特别是数据库备份、检测服务器运行状态等一些经常做的工作,都可以根据你的需求来定制,在合理的时间运行执行合适的工作任务,既不影响服务器的性能,又可以节约平时的工作时间,大大提高功能效率。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
12.21 Linux检测长期未执行的定时任务(anacron命令)
anacron 是用来做什么的呢?设想这样一个场景,Linux 服务器会在周末关机两天,但是设定的定时任务大多在周日早上进行,但在这个时间点,服务器又处于关机状态,导致系统很多定时任务无法运行。
79 0
Linux系统开发: 命令进阶学习(一)
Linux系统开发: 命令进阶学习(一)
58 0
【精通Linux系列】inux核心数据处理查找命令之find,cut,awk, sed命令用法
【精通Linux系列】inux核心数据处理查找命令之find,cut,awk, sed命令用法
40 0
【精通Linux系列】服务器之间的telnet与scp命令用法,进程管理命令之ps -ef与ps aux详解
【精通Linux系列】服务器之间的telnet与scp命令用法,进程管理命令之ps -ef与ps aux详解
58 0
Linux下curl 命令的基本使用方法
Linux下curl 命令的基本使用方法
248 0
linux shell之$?和得到联合使用命令的结果
linux shell之$?和得到联合使用命令的结果
30 0
linux之sed命令
linux之sed命令
49 0
linux shell之cut命令
linux shell之cut命令
271 0
Linux下wget命令下载JDK
Linux下wget命令下载JDK
49 0
+关注
5851
文章
223
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载