linux中crontab命令实例详解
linux中crontab命令实例详解
由于Cron 是Linux的内置服务,但它不⾃动起来,可以⽤以下的⽅法启动、关闭这个服务:service cron start //启动服务
service cron stop //关闭服务
service cron restart //重启服务
service cron reload //重新载⼊配置
你也可以将这个服务在系统启动的时候⾃动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:service cron start
现在Cron这个服务已经在进程⾥⾯了,我们就可以⽤这个服务了,Cron服务提供以下⼏种接⼝供⼤家使⽤: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/2,8 * * * 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服务。
使⽤VIM作为 Crontab的编缉器:export EDITOR=vim
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"这个参数了,如果去掉这个参数的话,后⾯就可以写要运⾏的某个脚本名,⽽不是⽂件夹名了
名称 : at
使⽤权限 : 所有使⽤者
使⽤⽅式 : at -V [-q queue] [-f file] [-mldbv] TIME说明 : at 可以让使⽤者指定在 TIME 这个特定时刻执⾏某个程式或指令,TIME 的格式是 HH:MM其中的 HH 为⼩时,MM 为分钟,甚⾄你也
可以指定 am, pm, midnight, noon, teatime(就是下午 4 点锺)等⼝语词。
如果想要指定超过⼀天内的时间,则可以⽤ MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分钟,DD 是第⼏⽇,YY 是指年份。另外,使
⽤者甚⾄也可以使⽤像是 now + 时间间隔来弹性指定时间,其中的时间间隔可以是 minutes, hours, days, weeks
另外,使⽤者也可指定 today 或 tomorrow 来表⽰今天或明天。当指定了时间并按下 enter 之后,at 会进⼊交谈模式并要求输⼊指令或程
式,当你输⼊完后按下 ctrl+D 即可完成所有动作,⾄于执⾏的结果将会寄回你的帐号中。
把计 :-V : 印出版本编号
-q : 使⽤指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使⽤者可以同时使⽤多个 queue,⽽ queue 的编号为 a, b, c... z
以及 A, B, ... Z 共 52 个-m : 即使程式/指令执⾏完成后没有输出结果, 也要寄封信给使⽤者
-f file : 读⼊预先写好的命令档。使⽤者不⼀定要使⽤交谈模式来输⼊,可以先将所有的指定先写⼊档案后再⼀次读⼊
-l : 列出所有的指定 (使⽤者也可以直接使⽤ atq ⽽不⽤ at -l)
-d : 删除指定 (使⽤者也可以直接使⽤ atrm ⽽不⽤ at -d)
-v : 列出所有已经完成但尚未删除的指定
例⼦ :
三天后的下午 5 点锺执⾏ /bin/ls :at 5pm + 3 days /bin/ls
三个星期后的下午 5 点锺执⾏ /bin/ls :at 5pm + 2 weeks /bin/ls
明天的 17:20 执⾏ /bin/date :at 17:20 tomorrow /bin/date
1999 年的最后⼀天的最后⼀分钟印出 the end of world !
at 23:59 12/31/1999 echo the end of world !
Linux之crontab命令
Linux之crontab命令
简介
通过crontab 命令,我们可以在固定的间隔时间执⾏指定的系统指令或 shell 脚本。时间间隔的单位可以
是分钟、⼩时、⽇、⽉、周及以上的任意组合。这个命令⾮常适合周期性的⽇志分析或数据备份等⼯作。
命令格式
参数详解
-u user:⽤来设定某个⽤户的crontab服务;
file:file是命令⽂件的名字,表⽰将file做为crontab的任务列表⽂件并载⼊crontab。如果在命令⾏中没有指定这个⽂件,crontab命令将接受标准输⼊(键盘)上键⼊的命令,并将它
们载⼊crontab。-e:编辑某个⽤户的crontab⽂件内容。如果不指定⽤户,则表⽰编辑当前⽤户的crontab⽂件。
-l:显⽰某个⽤户的crontab⽂件内容,如果不指定⽤户,则表⽰显⽰当前⽤户的crontab⽂件内容。
-r:从/var/spool/cron⽬录中删除某个⽤户的crontab⽂件,如果不指定⽤户,则默认删除当前⽤户的crontab⽂件。
-i:在删除⽤户的crontab⽂件时给确认提⽰。
crontab⽂件格式
实际运⽤
创建⼀个新的 crontab ⽂件,向cron进程提交⼀个crontab⽂件之前,⾸先要设置环境变量EDITOR。
cron进程根据它来确定使⽤哪个编辑器编辑crontab⽂件。99%的UNIX和LINUX⽤户都使⽤vi,如果你
也是这样,那么就编辑$HOME⽬录下的. profile⽂件,在其中加⼊这样⼀⾏
然后保存并退出。创建⼀个名为cron的⽂件,其中加上⽤户名,例如, testcron。在该⽂件中加⼊
如下的内容,保存并退出。注意前⾯5个域⽤空格分隔。
在上⾯的例⼦中,系统将每隔1 5分钟向控制台输出⼀次当前时间。如果系统崩溃或挂起,从最后
所显⽰的时间就可以⼀眼看出系统是什么时间停⽌⼯作的。在有些系统中,⽤tty1来表⽰控制台,可以
根据实际情况对上⾯的例⼦进⾏相应的修改。为了提交你刚刚创建的crontab⽂件,可以把这个新创建的⽂件作为cron命令的参数 。
linux的crontab用法 -回复
linux的crontab用法 -回复
Linux的crontab用法
在Linux操作系统中,crontab是一个非常有用的工具,它允许用户在预定的时间自动执行一些任务。无论是执行系统维护任务,还是运行用户特定的脚本,crontab都能满足你的需求。本文将一步一步地介绍Linux中crontab的用法,以帮助读者更好地使用和管理crontab。
什么是crontab?
Crontab是一个定义在Unix和类Unix系统中的命令,用于安排在某个时间自动执行的任务。它是基于时间的任务调度程序。你可以使用crontab将一个任务指定为在特定的日期、时间和间隔上自动运行,而不需要手动操作。
如何编辑crontab文件?
要编辑crontab文件,你可以使用命令行上的任何文本编辑器。最常用的命令是“crontab -e”,它将打开一个新的文件或已存在的文件进行编辑。
例:
crontab -e
这将打开一个空白的文件(如果文件还不存在)或一个包含预先定义的任务的文件。在文件中,你可以按照下面的格式添加和编辑任务.
* * * * * command
这个格式定义了任务的时间规则和要执行的命令。每个字段代表不同的时间单位,以及在那个时间单位上的执行间隔。
- 分钟 (0 - 59)
- 小时 (0 - 23)
- 天 (1 - 31)
- 月 (1 - 12)
- 星期几 (0 - 7,星期日为0和7)
例如,如果你想每小时运行一个命令,你可以这样写:
0 * * * * command
使用星号代表所有可能的值,你还可以指定范围和逗号分隔的值。例如,如果你想在周一到周五的上午8点运行一个命令,你可以这样写:
0 8 * * 1-5 command
在添加任务之后,请务必保存并退出文件。crontab将自动加载新的任务,并在指定的日期和时间下运行它。
如何查看和删除crontab任务?
要查看当前用户的所有crontab任务,你可以使用命令“crontab -l”。
Linux命令crontab的理解和使用方法
Linux命令crontab的理解和使⽤⽅法
1.crontab格式介绍
crontab file [-u user]-⽤指定的⽂件替代⽬前的crontab。 crontab-[-u user]-⽤标准输⼊替代⽬前的crontab.
crontab-1[user]-列出⽤户⽬前的crontab.
crontab-e[user]-编辑⽤户⽬前的crontab.
crontab-d[user]-删除⽤户⽬前的crontab.
crontab-c dir- 指定crontab的⽬录。
crontab⽂件的格式:M H D m d cmd.
M: 分钟(0-59)。
H:⼩时(0-23)。
D:天(1-31)。
m: ⽉(1-12)。
d: ⼀星期内的天(0~6,0为星期天)。
cmd要运⾏的程序,程序被送⼊sh执⾏,这个shell只有USER,HOME,SHELL这三个环境变量
说明 : crontab 是⽤来让使⽤者在固定时间或固定间隔执⾏程序之⽤,换句话说,也就是类似使⽤者的时程表。-u user 是指设定指定
user 的时程表,这个前提是你必须要有其权限(⽐如说是 root)才能够指定他⼈的时程表。如果不使⽤ -u user 的话,就是表⽰设
定⾃⼰的时程表。
参数 : crontab -e : 执⾏⽂字编辑器来设定时程表,内定的⽂字编辑器是 VI,如果你想⽤别的⽂字编辑器,则请先设定 VISUAL 环境变数
来指定使⽤那个⽂字编辑器(⽐如说 setenv VISUAL joe) crontab -r : 删除⽬前的时程表
crontab -l : 列出⽬前的时程表
crontab file [-u user]-⽤指定的⽂件替代⽬前的crontab。
2.crontab命令的使⽤
1)0 20 * * * $HOME/.profile;/work/user/guoch/start.sh
每天的晚上8点 执⾏上⾯路径的脚本
crontab命令详解
crontab命令详解
linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上⾯原本就有⾮常多的计划性⼯作,因此这个系统服务是默认启动的。另外, 由于使⽤者⾃⼰
也可以设置计划任务,所以, Linux 系统也提供了使⽤者控制计划任务的命令 :crontab 命令。
⼀、crond简介
crond 是linux下⽤来周期性的执⾏某种任务或等待处理某些事件的⼀个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务
⼯具,并且会⾃动启动crond进程,
crond进程每分钟会定期检查是否有要执⾏的任务,如果有要执⾏的任务,则⾃动执⾏该任务。
在LINUX中,周期执⾏的任务⼀般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取⼀个或多个配置⽂件,这些配置⽂件中包含了命令⾏及其调⽤时
间。
cron的配置⽂件称为“crontab”,是“cron table”的简写。
⼆、使⽤crontab命令与添加调度
Usage:
crontab [options] file
crontab [options]
crontab -n [hostname]
Options:
-u define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-n set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-x enable debugging
-u user:⽤来设定某个⽤户的crontab服务,例如,“-u ixdba”表⽰设定ixdba⽤户的crontab服务,此参数⼀般有root⽤户来运⾏。
qnap crontab用法
qnap crontab用法
Crontab是一个非常方便的Linux命令,它可以让用户定时执行某些命令或脚本,以达到自动化的目的。Qnap Crontab是可以在QNAP NAS上自动执行一些任务的功能。在这篇文章中,我们将会介绍Qnap Crontab的用法,重点是介绍中括号的使用方法。
一、基本介绍
1.Crontab的使用场景:一些特定的定时任务需要在规定的时间点自动执行,比如备份数据,统计日志等。
2.Crontab的基本语法
* * * * * command to be executed
- - - - -
+ day of the week (0 - 6) (Sunday=0)
+- month (1 - 12)
+ day of the month (1 - 31)
+ hour (0 - 23)
+- min (0 - 59)
以上是Crontab的语法格式,其中五个`*`表示了时间的设置,具体含义如下:
- 第一列代表分钟,范围是0-59;
- 第二列代表小时,范围是0-23;
- 第三列代表一个月中的某日,范围是1-31;
- 第四列代表月份,范围是1-12;
- 第五列代表星期,范围是0-6。
执行的命令或脚本需要写在最后一列上。
3.常见的符号
在Crontab使用过程中,常见的符号有以下几个:
- ``:表示所有的值,即通配符;
- `-`:表示范围,如3-6表示3、4、5、6;
- `,`:表示指定多个值,如4,6,8,表示4、6、8;
- `/`:表示增量,如3/5,表示从3开始,每5个步长,即3、8、13、18……;
- `*`:表示不设置,如第五列中的`*`表示不关注星期几。
linux crontab用法
linux crontab用法
Linux的Cron是一个非常强大的工具,它可以定期执行指定的任务。它的使用可以帮助用户在Linux系统上定时安排执行各种任务,如备份文件、定时更新软件等。
Crontab命令可以用来管理和编辑用户的Cron任务。通过Crontab命令可以安排Cron任务,并且可以使用其他命令查看、修改或删除正在运行的Cron任务。
在Linux中,要使用Crontab命令,需要使用root权限。首先,你需要使用命令sudo su来切换到root用户并输入你的root密码。接着,你可以使用下面的命令来创建一个Cron任务:
crontab -e。
这会自动打开编辑器,来编辑你的Cron任务。一旦你编辑好了你的Cron任务,保存并退出编辑器,你的任务就会自动添加到你的Cron表中。
你可以使用以下命令来查看你的Cron表:
crontab -l。
如果你想要删除一个Cron任务,你可以使用下面的命令来删除:
crontab -r。
最后,你可以使用下面的命令来停止和启动Cron服务:
systemctl stop cron。
systemctl start cron。 Cron服务可以帮助你在Linux系统上计划执行脚本。通过使用Crontab命令,你可以轻松地管理和编辑你的Cron任务。
在Linux中使用crontab命令设置定时任务
在Linux中使用crontab命令设置定时任务
在Linux操作系统中,我们可以使用crontab命令来设置定时任务。Crontab是Linux下的一个定时执行工具,能够在指定的时间自动执行特定的任务,非常方便实用。本文将介绍如何在Linux中使用crontab命令来设置定时任务。
1. 查看已有的定时任务
在开始设置定时任务之前,我们可以先查看系统中已有的定时任务,以便了解当前的任务状态。可以通过运行以下命令来查看:
```
crontab -l
```
该命令将列出当前用户的所有定时任务。如果当前用户没有设置任何定时任务,则不会有任何输出。
2. 编辑定时任务
要编辑已有的定时任务或新增一个定时任务,可以使用以下命令:
```
crontab -e
``` 该命令将会打开一个文本编辑器,其中已经包含了当前用户的所有定时任务。每一行对应一个定时任务,通过编辑、新增和删除这些任务来实现定时任务的管理。
3. 设置定时任务的格式
每个定时任务都有一个固定的格式,该格式由五个字段组成,分别表示分钟、小时、日期、月份和星期几。这些字段以空格或制表符分隔,如下所示:
```
* * * * * command
```
- 第一个字段表示分钟,取值范围为0-59,可以使用通配符“*”表示每分钟执行。
- 第二个字段表示小时,取值范围为0-23,使用通配符“*”表示每小时执行。
- 第三个字段表示日期,取值范围为1-31,使用通配符“*”表示每天执行。
- 第四个字段表示月份,取值范围为1-12,使用通配符“*”表示每月执行。
- 第五个字段表示星期几,取值范围为0-7(0和7都表示星期日),使用通配符“*”表示每周执行。 在以上五个字段之后,还需跟上要执行的命令或脚本路径。
下面是一些定时任务的示例:
- 每天凌晨三点清理/tmp目录下的临时文件:
```
0 3 * * * rm -rf /tmp/*
linux shell中crontab用法
在Linux Shell中,crontab是一个用于设置周期性被执行的任务的工具。以下是crontab的基本用法:
打开crontab编辑器:
crontab -e
这将打开一个文本编辑器(通常是vi或nano,具体取决于系统配置),您可以在其中添加、编辑或删除计划任务。
添加计划任务:
在编辑器中,每行代表一个计划任务。每个任务由六个字段组成,用空格分隔。这些字段分别是:
分钟 小时 日 月 周 命令
* 分钟:指定任务在每小时的第几分钟执行,有效范围是0-59。
* 小时:指定任务在每天的第几个小时执行,有效范围是0-23。
* 日:指定任务在每月的第几天执行,有效范围是1-31。
* 月:指定任务在哪个月份执行,有效范围是1-12。
* 周:指定任务在每周的第几天执行,有效范围是0-7,其中0和7都表示周日。
* 命令:要执行的命令或脚本。例如,要在每天的上午8点执行一个名为"my_script.sh"的脚本,可以添加以下行:
bash
0 8 * * * /path/to/my_script.sh
保存并退出编辑器。
一旦您编辑完计划任务并保存更改,crontab将自动加载新的任务配置。
查看当前用户的计划任务:
crontab -l
这将显示当前用户的所有计划任务。
删除当前用户的计划任务:
crontab -r
这将删除当前用户的所有计划任务。
请注意,crontab中的每个字段都支持特定的特殊字符和语法,例如"*"表示匹配任何值,","用于指定多个值,"-"表示范围,"/"表示步长等。您可以使用这些特殊字符和语法来创建更复杂的计划任务。
linux周期性执行指令crontab
A、 crontab简介
我们应用crontab命令实现周期性执行指令的目标。
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
B、 crontab命名
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
-e (edit user's crontab) 执行文字编辑器来设定时程表,内定的文字编辑器是vi
-l (list user's crontab) 列出目前的时程表
-r (delete user's crontab) 删除目前的时程表
C、crontab文件
crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。
crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。
C.1、时程表的格式
f1 f2 f3 f4 f5 program
其中f1是表示分钟,f2表示小时,f3表示一个月份中的第几日,f4表示月份,f5表示一个星期中的第几天。program表示要执行的程式。
当f1为*时表示每分钟都要执行program,f2为*时表示每小时都要执行程式…
当f1为a-b时表示从第a分钟到第b分钟这段时间内要执行,f2为a-b时表示从第a到第b小时都要执行,其余类推
当f1为*/n时表示每n分钟个时间间隔执行一次,f2为*/n表示每n小时个时间间隔执行一次,其余类推
Linux下crontab命令的用法:sudocrontab-l
Linux下crontab命令的⽤法:sudocrontab-l
cron 是linux系统下⼀个⾃动执⾏指定任务的程序.
cron服务是linux的内置服务,但它不会开机⾃动启动。可以⽤以下命令启动和停⽌服务:
Linux代码
1. /sbin/service crond start 2. /sbin/service crond stop 3. /sbin/service crond restart 4. /sbin/service crond reload 以上1-4⾏分别为启动、停⽌、重启服务和重新加载配置。要把cron设为在开机的时候⾃动启动,在 /etc/rc.d/rc.local 脚本中加⼊ /sbin/service crond start 即可。查看,删除,修改cron把命令⾏保存在crontab(cron table)⽂件⾥,这个⽂件通常在 /etc ⽬录下。每个系统⽤户都可以有⾃⼰的crontab(在 /var/spool/cron/ 下)。 file 使⽤file⽂件的内容作为某个⽤户的cron服务配置,内容会复制到cron服务的配置⽂件中
-u 设定某个⽤户的cron服务配置,⼀般root ⽤户在执⾏这个命令的时候需要此参数
-l 列出某个⽤户cron服务配置
-r 删除某个⽤户的cron服务配置
-e 编辑某个⽤户的cron服务配置,当指定crontab 不存在时新建,将使⽤vi打开配置⽂件进⾏编辑保存后退出,⽂件语法见后
crontab –v 显⽰上⼀次编辑的时间(只在某些操作系统上可⽤)
例如:sudo crontab -l
语法
每⾏表⽰⼀个指令,即表⽰⼀项计划任务;每⾏由空格分隔的六个部分组成,前5部分表⽰定时任务的执⾏时间,剩余部分为定时任务要执⾏的命令,格式如下:分 ⼩时 ⽇ ⽉ 星期 命令Minute Hour Day Month DayOfWeek commandMinute 每个⼩时的第⼏分钟执⾏该任务,0-59
