crontab命令

今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。

Linux 下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。

下面看一下具体的用法:首先查看一下/etc/crontab文件:$ cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly前四行是有关设置cron任务运行的环境变量。

SHELL变量的值指定系统使用的SHELL 环境(该样例为bash shell),PATH变量定义了执行命令的路径。

Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。

如果MAILTO变量定义为空字符串(MAILTO=""),电子邮件不会被发送。

执行命令或脚本时HOME变量可用来设置基目录。

文件/etc/crontab中每行任务的描述格式如下:minute hour day month dayofweek commandminute - 从0到59的整数hour - 从0到23的整数day - 从1到31的整数 (必须是指定月份的有效日期)month - 从1到12的整数 (或如Jan或Feb简写的月份)dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示) command - 需要执行的命令(可用as ls /proc >> /tmp/proc或执行自定义脚本的命令)root表示以root用户身份来运行run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本对于以上各语句,星号(*)表示所有可用的值。

例如*在指代month时表示每月执行(需要符合其他限制条件)该命令。

整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4指定数值由逗号分开。

如:3,4,6,8表示这四个指定整数。

符号“/”指定步进设置。

“/”表示步进值。

如0-59/2定义每两分钟执行一次。

步进值也可用星号表示。

如*/3用来运行每三个月份运行指定任务。

以“#”开头的为注释行,不会被执行。

如果一个cron任务需要定期而不是按小时,天,周,月来执行,则需要添加/etc/cron.d 目录。

这个目录下的所有文件和文件/etc/crontab语法相同,查看样例:# record the memory usage of the system every monday# at 3:30AM in the file /tmp/meminfo30 3 * * mon cat /proc/meminfo >> /tmp/meminfo# run custom scrīpt the first day of every month at 4:10AM10 4 1 * * /root/scrīpts/backup.sh除了root用户之外的用户可以执行crontab配置计划任务。

所有用户定义的crontab 存储在目录/var/spool/cron下,任务会以创建者的身份被执行。

要以特定用户创建一个crontab,先以该用户登录,执行命令crontab -e,系统会启动在VISUAL或者EDITOR中指定的的编辑软件编辑crontab。

文件内容与/etc/crontab格式相同。

示例如下:0 3 * * * /home/dbbackup/db1backup.sh backup0 4 * * * /home/dbbackup/db2backup.sh backup表示每天3点执行/home/dbbackup/db1backup.sh backup,4点执行/home/dbbackup/db2backup.sh backup,如果是每五分钟执行一次可改为:*/5 * * * * /home/dbbackup/db2backup.sh backup当更改的crontab需要保存时,文件会保存在成如下文件/var/spool/cron/username。

文件名会根据用户名而不同。

cron服务会每分钟检查一次/etc/crontab、/etc/cron.d/、/var/spool/cron文件下的变更。

如果发现变化,就会下载到存储器中。

因此,即使crontab文件改变了,程序也不需要重新启动。

推荐自定义的任务使用crontab -e命令添加,退出后用/etc/init.d/crond restart命令重启crond进程,官方文件说不用重启进程,但我遇到不重启无法运行任务的情况。

开始不知道/etc/crontab文件中的run-parts是什么意思,直接把命令按照/etc/crontab的格式加上总是无法运行,后来才知道run-parts是指后面跟着的是文件夹。

下面再附一篇介绍:********************************************************************* ***************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现在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/28 * * * echo "Have a good dream:)" >> /tmp/test.txt每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点-----------------0 11 4 * 1-3 command line1月1日早上4点-----------------0 4 1 1 * command line每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。

cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。

因此此文件修改后不需要重新启动cron服务。

2.编辑/etc/crontab 文件配置croncron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。

用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。

此文件的文件格式是:SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号HOME=/ //使用者运行的路径,这里是根目录# run-parts01 * * * * 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"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

合集下载

crontab用法编辑命令

crontab用法编辑命令

crontab用法编辑命令
以下是 8 条关于 crontab 用法编辑命令的内容:
1. 嘿,你知道吗?crontab 里设置每分钟执行一次任务就像让一个小机器人每分钟都去检查一样。

比如“ command”,这就好像给这个小机
器人下达了每分钟都要去行动的指令。

2. 哇塞,要是想每天特定的时间执行任务呢?那可以用“0 9 command”呀,就像是设定好了闹钟,每天 9 点就会准时启动!
3. 诶,想每周特定的一天执行任务也不难哦!“ Sun command”,这
就如同专门在周日这一天安排了个特别任务呢。

4. 呀,要是每月特定的一天要做事咋办呢?可以这样“ 15 command”,这不就像是每月 15 号有个特别的约定嘛。

5. 嘿!想每小时的特定分钟执行?简单呀,“15 command”,就好比每小时到了 15 分钟这个点,就会有事情发生呢。

6. 哇哦,想隔一段时间执行一次任务也能做到哦!比如“/5 command”,这不就和每过 5 分钟就有个小动作一样嘛。

7. 哈哈,想在特定的几个月执行任务呢?“ Jan,Mar command”,那就是专门在 1 月和 3 月搞事情呀。

8. 哎呀呀,设置 crontab 命令真的超有趣也超有用的呀!就像掌握了一个
神奇的时间魔法,让任务按照你的想法精确地运行!
我的观点结论就是:学会 crontab 用法编辑命令真的太牛了,能让我们轻松掌控任务的执行时间!。

crontab的用法

crontab的用法

crontab的用法
crontab命令可以从输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。

通常,crontab储存的指令被守护进程激活,crond为其守护进程,crond在后台运行,每一分钟检查一次是否有预
定的作业需要执行。

通过crontab命令,我们可以在固定的间隔时间
执行指定的系统指令或者shell script脚步等。

时间间隔的单位可以
是分钟、小时、日、月、周的组合。

以下是crontab命令的一些常见用法:
1. 添加计划任务:
crontab -e
2. 选择编辑工具:
nano、vim、emacs等
3. 在最后一行添加任务命令:
command
这里的命令可以是系统指令或者shell script脚步等。

4. 保存退出后,可以在终端中输入以下命令查看添加的任务:
crontab -l
5. 如果需要删除任务,可以使用以下命令:
crontab -r
6. 指定crontab的目录:
css
crontab -c dir。

crontab计划任务执行命令或者脚本

crontab计划任务执行命令或者脚本

crontab计划任务执⾏命令或者脚本
设置cron有两种⽅法:
1、当启动linux时,它运⾏为⼀个后台进程。

它每分钟检查⼀次相应的配置⽂件来了解是否有事件需要得到运⾏。

2、有两组cron配置⽂件。

⼀组由⼀个全局配置⽂件(/etc/crontab)来控制,另⼀组基于个别⽤户使⽤crontab命令所创建的配置⽂件。

使⽤crontab命令
crontab -u //指定某个⽤户的cron服务
crontab -l //列出某个⽤户的cron服务的详细内容
crontab -r //删除某个⽤户的cron服务
crontab -e //编辑某个⽤户的cron服务
crontab -e这个命令,哪个⽤户使⽤了它,那么系统就会⽤那个⽤户⾝份执⾏相关的命令或者脚本。

所以像*/5 * * * * /sbin/service iptables stop 这样写可以,但*/5 * * * * root /sbin/service iptables stop 却不⾏...,因为会把root当成命令来看,可⽤tail /var/log/cron中的⽇志对⽐⼀下
指定cron的⽤户执⾏⾝份的话,是在/etc/crontab中,⽽不是⽤crontab -e编辑令命令
相关:
/var/spool/cron/ 该⽬录下存放所有⽤户的cron服务
/var/log/cron 记录cron运⾏的⽇志信息。

从https:///mingzheng114/article/details/90749261记录补充。

高级技巧使用crontab进行任务调度与周期执行

高级技巧使用crontab进行任务调度与周期执行

高级技巧使用crontab进行任务调度与周期执行在计算机系统中,任务调度和周期执行对于实现定时任务和自动化操作至关重要。

而crontab是一种在Linux和Unix系统中常用的任务调度工具,它允许用户按照特定的时间间隔来执行命令或脚本。

本文将介绍一些高级技巧,以帮助您更好地使用crontab进行任务调度和周期执行。

一、定时任务调度1. 使用crontab命令进行任务调度Crontab命令允许用户创建、修改和删除crontab表达式,从而实现任务调度。

通过以下命令,您可以编辑当前用户的crontab表:```crontab -e```在打开的编辑器中,您可以按照以下格式添加任务:```* * * * * command_to_be_executed```其中,*代表通配符,分别表示分钟、小时、日期、月份和星期几。

您可以使用具体数值或通配符来设置执行时间。

例如,如果您想每天上午9点执行一次任务,可以这样配置:```0 9 * * * command_to_be_executed```执行时间支持多种设定方式,您可以根据需要选择适合的设定。

2. 编写shell脚本在crontab中执行的命令通常是一个shell脚本。

编写脚本可以使任务执行更加灵活,且便于管理。

您可以使用任何文本编辑器编写脚本文件,以.sh为后缀保存。

例如,创建一个名为my_script.sh的脚本文件,内容如下:```#!/bin/bash# 执行命令或操作command_to_be_executed```注意,在脚本文件的开头添加了`#!/bin/bash`说明文件采用Bash Shell进行解释。

然后,将脚本文件保存到指定的位置,并在crontab中指定该脚本的执行。

3. 使用环境变量和输出重定向在crontab中执行的任务通常没有终端的环境变量,可能会导致一些命令无法正常执行或输出结果无法保存。

为了解决这个问题,您可以在脚本中添加环境变量的设置,并使用输出重定向保存命令的输出结果。

crontab命令详解含启动重启停止

crontab命令详解含启动重启停止

crontab命令详解含启动重启停⽌linux 系统则是由 cron (crond) 这个系统服务来控制的。

Linux 系统上⾯原本就有⾮常多的计划性⼯作,因此这个系统服务是默认启动的。

另外, 由于使⽤者⾃⼰也可以设置计划任务,所以, Linux 系统也提供了使⽤者控制计划任务的命令 :crontab 命令。

⼀、crond简介crond 是linux下⽤来周期性的执⾏某种任务或等待处理某些事件的⼀个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务⼯具,并且会⾃动启动crond进程,crond进程每分钟会定期检查是否有要执⾏的任务,如果有要执⾏的任务,则⾃动执⾏该任务。

Linux下的任务调度分为两类,系统任务调度和⽤户任务调度。

系统任务调度:系统周期性所要执⾏的⼯作,⽐如写缓存数据到硬盘、⽇志清理等。

在/etc⽬录下有⼀个crontab⽂件,这个就是系统任务调度的配置⽂件。

/etc/crontab⽂件包括下⾯⼏⾏:[root@localhost ~]# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=””HOME=/# run-parts51 * * * * root run-parts /etc/cron.hourly24 7 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly[root@localhost ~]#前四⾏是⽤来配置crond任务运⾏的环境变量,第⼀⾏SHELL变量指定了系统要使⽤哪个shell,这⾥是bash,第⼆⾏PATH变量指定了系统执⾏命令的路径,第三⾏MAILTO变量指定了crond的任务执⾏信息将通过电⼦邮件发送给root⽤户,如果MAILTO变量的值为空,则表⽰不发送任务执⾏信息给⽤户,第四⾏的HOME变量指定了在执⾏命令或者脚本时使⽤的主⽬录。

Linux之crontab命令及日志

Linux之crontab命令及日志

Linux之crontab命令及⽇志前提你得先安装crontab:[root@xtrabackup ~]# yum install crontabs启动服务:[root@xtrabackup ~]# /sbin/service crond startRedirecting to /bin/systemctl start crond.service查看服务是否启动:[root@xtrabackup ~]# service crond statusRedirecting to /bin/systemctl status crond.service● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)Active: active (running) since Thu 2020-05-28 09:54:34 CST; 1 weeks 1 days agoMain PID: 1334 (crond)Tasks: 1Memory: 752.0KCGroup: /system.slice/crond.service└─1334 /usr/sbin/crond -nMay 28 09:54:34 xtrabackup systemd[1]: Started Command Scheduler.May 28 09:54:34 xtrabackup crond[1334]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 71% if used.) May 28 09:54:34 xtrabackup crond[1334]: (CRON) INFO (running with inotify support)crontab⽤于执⾏定时任务,格式如⽹上的图:*表⽰每分钟,每⼩时,每天,每⽉,每星期,后⾯加上对应的命令即可如: * * * * * /etc/init.d/network restart 表⽰每分钟重启⼀次network;30 19 * * * /data/shell/shell.sh 表⽰每天19:30执⾏此脚本每隔多少分钟可以在星号后⾯接/表⽰:如:1.每⼀⼩时重启network 命令:**/1 * * * /etc/init.d/network restart2.晚上11点到早上8点之间,每隔⼀⼩时重启network命令:*23-8/1 * * * /etc/init.d/network restart如果想编辑命令:输⼊crontab -e然后像vi ⼀样编辑就⾏了。

suse crontab用法

suse crontab用法一、Crontab详解Crontab是Linux系统中自带的一个定时任务工具,用户可以通过编辑定时任务表文件来设置命令和脚本的执行周期,每个用户都有自己的定时任务表。

每当系统启动之后,Crontab就会自动读取所有用户的定时任务表,然后按照用户所设置的时间周期执行相应的命令。

二、Crontab的使用2.1 Crontab命令行选项下面是Crontab命令的一些常用选项:• -u user:指定要操作的用户的名称• -e:编辑该用户的定时任务表• -l:列出该用户的定时任务表• -r:删除该用户的定时任务表2.2 Crontab命令格式Crontab命令的格式如下:```minute hour day month weekday command```每个字段含义如下:• minute:表示分钟,取值范围是0-59• hour:表示小时,取值范围是0-23• day:表示月中的某一天,取值范围是1-31• mo nth:表示月份,取值范围是1-12• weekday:表示星期几,取值范围是0-7(其中0和7都表示周日)• command:需要执行的命令或脚本2.3 编辑定时任务表使用Crontab编辑定时任务表的命令是:```crontab -e``````export EDITOR=<editor>```2.4 添加定时任务```0 10 * * * /bin/bash /home/user/script.sh```这个命令表示在每天的10点整执行脚本“script.sh”。

这些字段的意义如下:• 0:表示0分,也就是每小时的第0分钟(即整点)• 10:表示10点• *:表示每一天都执行• *:表示每个月都执行• *:表示每个星期都执行2.5 查看定时任务要查看某个用户的定时任务表中的内容,请使用以下命令:```crontab -l``````crontab -u <user> -l```<user>是指其他用户的名称。

cronta -e用法

Crontab是一种在Unix-like操作系统中用于设置周期性被执行的任务的工具。

通过使用Crontab,用户可以指定在特定的时间或日期自动执行某个程序或脚本。

要使用Crontab,首先需要打开终端,然后输入以下命令之一:
1.crontab -e:编辑当前用户的Crontab文件。

2.crontab -l:列出当前用户的Crontab文件内容。

3.crontab -r:删除当前用户的Crontab文件。

其中,crontab -e命令用于编辑Crontab文件。

当使用该命令时,系统会打开一个文本编辑器(通常是vi或nano),让用户输入要自动执行的命令或脚本,以及执行的时间和日期。

每个Crontab条目都由五个字段组成,分别表示分钟、小时、日期、月份和星期。

例如,如果要每天中午12点执行一个脚本,可以这样写:
0 12 * * * /path/to/script.sh
保存并关闭编辑器后,Crontab会自动将新的设置应用到系统中。

用户可以通过crontab -l命令查看当前设置的Crontab文件内容。

需要注意的是,为了使Crontab能够正常工作,需要确保要执行的程序或脚本具有可执行权限,并且所在的目录在系统的PATH环境变量中。

crontab 实例

crontab 实例
摘要:
1.crontab 简介
2.crontab 实例
3.crontab 的使用注意事项
正文:
1.crontab 简介
crontab 是一个用于定时执行任务的Linux 命令。

该命令可以让用户在特定时间或者时间间隔内执行特定的任务,非常适合用于执行周期性的任务,例如定时备份文件、定时清理日志等。

2.crontab 实例
下面是一个crontab 的实例,该实例将会在每天早上7 点和晚上11 点执行相应的任务。

```
0 7 * * * /usr/bin/ls
0 23 * * * /usr/bin/ls
```
上述实例中,每行代表一个任务,分别表示在每天的早上7 点和晚上11 点执行/usr/bin/ls 命令,该命令用于列出当前目录下的所有文件和文件夹。

3.crontab 的使用注意事项
在使用crontab 时,需要注意以下几点:
- 时间字段不能有空格,否则会导致任务无法执行。

- 时间字段中的数字表示小时、分钟、秒,每个字段之间用空格隔开。

- 如果任务需要执行多个命令,需要用分号隔开。

- 如果任务需要定期执行,需要用星号(*) 表示时间间隔。

- 务必确保要执行的任务的文件路径和命令正确无误,否则会导致任务无法执行。

crontab命令简介+详解

简介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这三个环境变量。

下面是一个例子文件:#MIN HOUR DAY MONTH DAYOFWEEK COMMAND#每天早上6点106* * * date#每两个小时0*/2* * * date#晚上11点到早上8点之间每两个小时,早上部点0 23-7/2,8* * * date#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点0 11 4* mon-wed date#1月份日早上4点0 4 1 jan* date范例lark:~>crontab-1 列出用户目前的crontab.#MIN HOUR DAY MONTH DAYOFWEEK COMMAND10 6* * * date0*/2* * * date0 23-7/2,8 * * * date详解:crontab 命令的用途就是:提交、编辑、列出或除去cron 作业。

语法crontab [ -e [UserName] | -l [UserName] | -r [UserName] | -v [UserName] | File ]描述这个crontab 命令提交、编辑、列出或除去cron 作业。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档