定时任务Cron
Linux系统中的定时任务cron,一个很实际很有效很简单的一个工作,在日常的生产环境中,会被广泛使用的一个组件。通过设置时间、执行的脚本等内容,能够让系统自动的执行相关任务,很是方便。
cron定时任务,在系统中能够执行,需要有一个依赖的服务,也就是crond定时任务服务,该服务默认情况下是开机自启动的,通过命令chkconfig 可以查看,设置开机启动的命令,chkconfig crond on。
在为系统用户创建定时任务时,默认会在/var/spool/cron/目录下,创建以系统用户用户名为名称的文件,在该文件中记录了用户设置的定时任务。定时任务的执行,该用户必须存在于系统中。
通过命令crontab -l,可以查看当前用户设置的定时任务,如果要查看其它用户设置的定时任务,可以是crontab -lu username,crontab -e是用来设置用户的定时任务,实际上也就是编辑/var/spool/cron/下的文件。
cron定时任务,在编写定时任务时,也是有固定格式的,时间+执行的命令。具体可以看看cron的帮助信息,或者查看crontab文件内容。
[bobo@localhost ~]$ cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/ # For details see man crontabs # Example of job definition:
# .---------------- minute ( - )
# | .------------- hour ( - )
# | | .---------- day of month ( - )
# | | | .------- month ( - ) OR jan,feb,mar,apr ...
# | | | | .---- day of week ( - ) (Sunday= or ) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
这里详细说明了定时任务的写法,分钟、小时、日期、月份、星期,定义了5个时间参数之后,后面是要执行的用户命令,默认情况下,系统会每分钟检查定时任务是否要执行,执行后会给该定时任务的属主发送mail。在日期填写中,有特殊字符,比如*表示任意的某个时间点,在5个时间设置位上,表示任意分钟、任意小时等等,也就是任意,如果是*/n,表示每n个单位,比如每5分钟,*/5。下面,我们写几个定时任务,测试一下。
使用普通用户,创建定时任务,每分钟向自己家目录下的文件中增加一条日志记录。
首先,先测试一下命令是否可用,看是否能正常执行
[bobo@localhost ~]$ echo this is a cron task >>$HOME/crontask
[bobo@localhost ~]$ cat /home/bobo/crontask
this is a cron task
[bobo@localhost ~]$ echo `date ` this is a cron task
Thu Mar :: CST this is a cron task
[bobo@localhost ~]$ echo `date ` this is a cron task >> $HOME/crontask
[bobo@localhost ~]$ cat ~/crontask
this is a cron task
Thu Mar :: CST this is a cron task
[bobo@localhost ~]$
然后将命令写入文件中,可以通过crontab -e或者vim /var/spool/cron/username,进行编辑,然后通过crontab -l进行查看
[bobo@localhost ~]$ crontab -l
*/ * * * * echo `date` crontask runing >>$HOME/crontask
我们可以通过tail -f 查看该文件的变化,每隔1分钟,会增加一行内容记录

这样,就可以说明,定时任务在正常执行。
定时任务书写规范
1、在编写定时任务时,需要为定时任务增加注释,让其他人知道,这个定时任务是谁写的,作用是什么。在crontab -e中,注释以#开头
2、在编写定时任务时,尽量用命令去执行,把要执行的命令写入到shell脚本中,然后通过sh执行,然后将输出结果写入空设备,将错误结果输出到空设备中,具体写法是 1>/dev/null 2>&1,如果不这么写,由于系统每次运行一次定时任务,就会给root用户发送一封邮件,当系统没有开启邮件服务的时候,会在邮件maildrops目录中生产大量的小文件,这样的小文件,虽然不会占用系统多大的容量,但是会占用系统大量的inode,当系统的inode耗尽时,系统将无法再次写入文件。
当启用了postfix应用之后,改目录会迅速发送完成,不再占用。

所以,对于之前写的那个定时任务,优化下,建立一个sh文件,将要执行的命令,写入到sh文件中,然后在cron定时任务中,写入注释。


定时任务Cron的更多相关文章
- Spring Boot 系列教程14-动态修改定时任务cron参数
动态修改定时任务cron参数 不需要重启应用就可以动态的改变Cron表达式的值 不能使用@Scheduled(cron = "${jobs.cron}")实现 DynamicSch ...
- Linux/UNIX 定时任务 cron 详解
定时任务( job)被用于安排那些需要被周期性执行的命令.利用它,你可以配置某些命令或者脚本,让它们在某个设定的时间内周期性地运行.cron 是 Linux 或者类 Unix 系统中最为实用的工具之一 ...
- linux crontab命令参数及用法详解--linux自动化定时任务cron
声明:本文转自Linux 安全网,在此基础上加上自己的体会! crontab 命令 如果发现您的系统里没有这个命令,在ubuntu server 中用的是 sudo apt-get install c ...
- (转载)Linux定时任务cron配置
(转载)http://blog.csdn.net/jbgtwang/article/details/7995801 实现linux定时任务有:cron.anacron.at等,这里主要介绍cron服务 ...
- Linux下的定时任务 - Cron服务
最近搞咕自己的笔记系统,虽然现在是个人的使用,对于数据库的数据还是比较少,但是安全还是一个我必须注意的东西. (特别是前段时间中了比特币的病毒之后,更是让我关注了我的主机的安全的问题.) 今天的随记是 ...
- linux定时任务cron配置
实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...
- 定时任务 cron命令
一名linux新手,因为项目需要现在在学习linux操作系统. 因项目需要做一个定时任务,每个小时访问某一个url一次,通过参考很多大神的博客学会了crontab命令的使用方法 crontab -u ...
- linux定时任务cron配置[转]
实现linux定时任务有:cron.anacron.at等,这里主要介绍cron服务. 名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表. 软件包安装: 要使 ...
- linux定时任务cron配置说明
实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...
随机推荐
- 阿里云服务器centOS安装Docker
环境准备 1.需要有Linux的基础 2.centOS 7 环境查看 # 系统内核是 3.10 以上的 [root@iz2zeaet7s13lfkc8r3e2kz ~]# uname -r -.el7 ...
- 脚本学习一(echo、echo off、@、start)
1.echo表示显示此命令后的字符 脚本: 输出结果: 2.echo off表示在此语句后所有运行的命令都不显示命令行本身 脚本: 输出结果: 3.@与echo off相象,但它是加在每个命令行的最前 ...
- 通过一个vue+elementUI的小实例来讲解一下它们是如何使用的
需求:点击一个按钮,弹出一个模态框,这个模态框有两个tab,tab中是各种报警条件,这些报警条件是从数据库中动态取出的,数据库中数据变更后,这个界面也要变更,我们可以查看和编辑这些报警条件.底部“确定 ...
- 资源在windows编程中的应用----菜单
资源在Windows编程中的应用 资源 加速键.位图.光标.对话框.菜单.字符串.工具条 1.菜单的创建 菜单由以下组成部分: (1)窗口主菜单条 (2)下拉式菜单框 (3)菜单项热键标识 (4)菜单 ...
- 动态ip服务器 动态ip服务器的连接方式
动态IP服务器指的是在需要的时候才进行随机IP地址分配的服务器.所谓动态就是指当你每一次上网时,电信会随机分配一个IP地址,服务器作为我们设为的大脑,拥有自己独立的账户及密码,通过远程连接动态IP服务 ...
- 【Hadoop】Hadoop的安装,本地模式、伪分布模式的配置
Download hadoop-2.7.7.tar.gz 下载稳定版本的hadoop-2.7.7.tar.gz(我用的2.6.0,但是官网只能下载2.7.7的了) Required Software ...
- (Java实现) 洛谷 P1042 乒乓球
题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中1111分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位,他 ...
- Java实现 蓝桥杯VIP 算法训练 入学考试
问题描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:" ...
- Java实现选号码
选号码 Description CF打算换个手机号码,但是他去营业厅选号码的时候却把移动的客服小姐烦得不行,因为他太挑三捡四啦. 对于一个手机号的后六位数字(前面五位他就无所谓了)CF有很严格的要求, ...
- Java实现 蓝桥杯VIP 算法提高 师座操作系统
算法提高 师座操作系统 时间限制:1.0s 内存限制:256.0MB 问题描述 师座这天在程序设计课上学了指针和结构体以后,觉得自己可以轻松的写出操作系统,为了打败大微软帝国,他给这个系统起了个响亮的 ...