linux的定时任务--crontab

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

你也可以将这个服务在系统启动的时候自动启动:

在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start

1.直接用crontab命令编辑

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容

crontab -r //删除没个用户的cron服务

crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l

再例如,root想删除fred的cron设置:crontab -u fred -r

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:

分钟 (0-59)

小時(0-23)

日期(1-31)

月份(1-12)

星期(0-6) //0代表星期天

除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

每天早上6点

-----------------

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

每两个小时

-----------------

0 */2 * * * echo "Have a break now." >> /tmp/test.txt

晚上11点到早上8点之间每两个小时,早上八点

-----------------

0 23-7/28 * * * echo "Have a good dream:)" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

-----------------

0 11 4 * 1-3 command line

1月1日早上4点

-----------------

0 4 1 1 * command line

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

2.编辑/etc/crontab 文件配置cron

cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/      //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

时间: 2024-08-18 15:51:23

linux的定时任务--crontab的相关文章

linux的定时任务crontab

每隔一分钟执行以下语句: #打印当前时间: date "+%Y-%m-%d %T" 保存为/usr/test/test.sh 查看系统中当前用户有多少个定时任务: crontab -l 编辑当前用户的定时任务: crontab -e 每隔一分钟执行一次: */1 * * * * sh /usr/test/test.sh >> /usr/test/test.log * * * * * cmd 第一个:分钟(00-59) 第二个:小时(00-23) 第三个:日期(01-31)

linux设置定时任务crontab

linux设置定时任务crontab 前段时间参照一个博友的git设置了mongoDB的定时备份,后来发现并未成功,今天重新配置了一下,把crontab的两种设置方式都尝试了,而且测试可以正常工作. 测试机器 ubuntu14.04 1.(推荐方式)用户级别的定时任务设置 使用如下命令 crontab -e 添加一条测试脚本: #*/1 * * * * sh ~/Desktop/myshare/cronjob.sh#每隔一分钟执行桌面文件夹中的这个脚本 然后,更新crontab service

第十七天-linux系统定时任务crontab入门讲解

首先先了解下程序和进程的区别: 程序概念: 程序是为了解决一个信息处理任务而预先编制的工作执行方案,是由一串cpu能够执行的基本指令组成的序列,每一条指令规定了计算机进行什么操作(比如加.减.乘.除.判断等)及操作需要的有关数据.例如,从存储器读入一个数送到运算器就是一条指令,从存储器读出一个数并和运算器中原有的数相加也是一条指令.简单的说:我们使用的命令就是程序,QQ程序,听歌的MP3软件,linux系统也是程序. 基本特征:一堆代码,一个文件,一个命令,程序是静态的,放在电脑里还没有被运行.

Linux中定时任务crontab

linux中crontab是一个用于很方便定时任务的工具.比如说定时跑脚本处理等等.crontab文件包含送交cron守护进程的一系列作业和指令.每个用户可以拥有自己的crontab文件:同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改. crontab命令: 1.参数: -e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI -r [UserName]: 删除目前的时程表 -

【Linux】定时任务-crontab

目录 1.1 定时任务crond介绍 1.2 Linux系统的定时任务 1.2.2 Linux系统下的定时任务软件的种类 1.3 定时任务crond使用说明 1.3.1 指令语法 1.3.2 指令说明 1.3.3 使用者权限及定时任务文件 1.3.4 指令选项说明含义表 1.3.5 定时任务指令的使用格式 1.3.6 crontab语法格式中时间段的含义如下表 1.3.7 crontab语法格式中特殊符号含义如下表 1.3.8 图片说明crontab使用方法 1.3.9 用户定时任务实例 1.4

Linux下定时任务Crontab的使用

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行   入门 # crontab –e 这样可以已编辑模式打开个人的crontab配置文件,然后加入一下这行:0 0 * * * /home/linrui/XXXXXXXX.sh 这将会在每天凌晨运行 指定的.sh文件 Cron 各项的描述 以下是 crontab 文件的格式: {minute} {hour} {day-of-month} {month} {day-of-

Linux系统设置定时任务(crontab)

使用crontab -e进行编辑,然后进行例行任务的编辑,之后保存退出即可. 具体的格式说明如下: 每一行的格式为:分   时   日   月   周   命令 第1列表示分钟1~59   每分钟用*或者*/1表示 第2列表示小时1~23   (0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6 (0表示星期天) 第6列要运行的命令 值得注意的是,在crontab中,无论是命令还是文件的路径都要写全,否则不认. 比如要每天6点执行一个/home/run/test

如何让linux定时任务crontab按秒执行

如何让linux定时任务crontab按秒执行? linux定时任务crontab最小执行时间单位为分钟 如果想以秒为单位执行,应该如何设置呢? 思路 正常情况是在crontab中直接定义要执行的任务,现在我们在中间添加一个脚本文件 自定义一个脚本文件,循环执行要执行的任务,循环中使用sleep来控制间隔秒数 在crontab中添加一个任务,设置为每分钟都执行这个脚本 就是用crontab控制分钟,用脚本内的循环来控制秒 示例 (1) 定义目标任务 用php写了一个测试任务,向文件中写一个时间信

linux应用之crontab定时任务的设置

实现Linux定时任务有:cron.anacron.at等,这里主要介绍cron服务. 名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表. 软件包安装: 要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作用如下: vixie-cron软件包是cron的主程序.crontabs软件包是用来安装.卸装.或列举用来驱动 cron 守护进程的表格的程序. 查看是否安装了cron软件包: rpm -qa|grep vixi