linux的cron
⑴ linux系统的cron服务重启对系统是否有影响
系统服务是一种应用程序类型,它在后台运行。服务应用程序通常可以在本地和通过网络为用户提供一些功能,Linux系统服务中的cron就有这样的功能。
cron进程介绍:
cron进程为Linux用户提供一种可以计划在一定时间间隔后自动执行任务的功能。cron通常还会负责at队列中作业的启动。
该进程从crontab文件中得到信息,对于每个用户都会有一个独立的crontab文件。
运行crontab -l命令,就可以查看已排列的命令列表。
如果要更改cron信息,必须创建一个crontab文件。crontab有固定的格式,有效行包括六个区域,即:
分钟(0-59),小时(0-23),日(1-31),月(1-12),星期(0-7,0和7都代表周日),命令(要运行的任务)
每个区域都可能带一个星号,表示整个区间,每个区域也可以使用x-y的形式包含一个范围,也可能包含一个用逗号隔开的列表。
⑵ 关于linux-ubuntu下cron使用。
Cron是Linux系统中最有用的工具之一,cron作业是在指定时间到来时被调度执行的作业。
最常见的自动化系统管理和自动维护工作,比如每天发出的按计划完成了备份的通知,或者是按计划定时清理/tmp/目录的通知。还有很多Web应用程序也需要执行定时作业。
本文讲述了Cron的工作机制,你可以用cron实现调度作业作业。Cron本身是一个守护进程,在后台运行,通过配置文件“crontab”来根据时间调度指定的作业执行。
一、启动Cron服务
基本上所有的Linux发行版在默认情况下都预安装了cron工具。即使未预装cron,也很简单,执行命令手动安装它:
root@Ubuntu-14:~# apt-get install cron
接着检查cron服务的状态,默认情况它应该运行于后台。如果它未启动,那么可以手动启动此服务。
root@ubuntu-14:~# service cron start
root@ubuntu-14:~# service cron status
cron start/running, process 1027
二、使用Cron帮助
如果cron工作正常,那么你可以使用man命令查看其手册描述的详细用法。
root@ubuntu-14:~# man crontab
上面的命令显示了crontab手册描述的使用方法。如果要查看怎样使用cron作业指定的信息,可以这样:
root@ubuntu-14:~# man 5 crontab
这里写图片描述
要退出帮助命令手册的显示,按下q键或h键。
这里写图片描述
三、Crontab命令的用法
下面讲述怎样使用crontab命令实现定时调度作业。
1、对Cron作业进行列表
使用以下命令列出当前用户计划的cron作业。
root@ubuntu-14:~# crontab –l
会列出当前用户的所有cron作业,如果想查看其它用户的cron作业,可以使用如下命令:
root@ubuntu-14:~# crontab –l –u username
这会列出指定用户的cron作业。
2、编辑Cron作业
要添加一个新cron作业,或者是编辑现有的cron作业,可以使用如下命令:
root@ubuntu-14:~# crontab -e
3、移除Cron作业
使用下面的命令移除已经计划的cron作业。
root@ubuntu-14:~# crontab –r
使用下面的命令移除所有已计划的cron作业,且无需再次确认。
root@ubuntu-14:~# crontab –ir
4、命令参数
-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计划任务
除了通过配置文件来处理计划cron作业之外,还有别的方法可以做到。如果你查看/etc目录,你会发现有这样的目录:cron.daily、cron.hourly、cron.monthly等等。因此,把cron脚本放入这些目录中,那么系统会根据这些目录名定时执行这些作业脚本的。
1、Cron配置类型
Cron有两种配置文件类型,用于调度自动化任务。
1)系统级Crontab
这些cron作业被系统服务和关键作业所使用,且需要root级的权限才能执行。可以在/etc/crontab文件中查看系统级的cron作业。
这里写图片描述
2)用户级Crontab
用户级的cron作业是针对每个用户单独分开的。因此每个用户都可以使用crontab命令创建自己的cron作业,还可以使用以下命令编辑或查看自己的cron作业。
root@ubuntu-14:~# crontab –e
这里写图片描述
选择编辑器后,你可以配置新cron作业了。
五、用Crontab调度作业
可以使用指定的语法调度cron作业,而且还有速记缩写命令,使的管理cron作业很简单。
Crontab语法如下:
* * * * * command to be executed
- - - - - -
| | | | | |
| | | | | --- 预执行的命令
| | | | ----- 表示星期0~7(其中星期天可以用0或7表示)
| | | ------- 表示月份1~12
| | --------- 表示日期1~31
| ----------- 表示小时1~23(0表示0点)
------------- 表示分钟1~59 每分钟用*或者 */1表示
六、新Cron作业配置实例
现在你已经熟悉了crontab命令、语法及cron作业的类型,现在可以创建一些作业计划进行测试。可以使用crontab –e 命令添加。
1、每分钟运行的计划作业
下面的例子,创建一个cron作业,它每分钟输出文本“test cron job to execute every minute”并把文本发送到[email protected]邮箱。
首先用crontab命令编辑
root@ubuntu-14:~# crontab –e
写入以下的脚本
SHELL=/bin/bash
HOME=/
MAILTO=”[email protected]”
#This is a comment
* * * * * echo 'test cron job to execute every minute'
:wq! 保存并退出
这里写图片描述
一旦保存了此cron脚本文件,就可以把它添加到计划的作业中。
2、在指定时间调度Cron job作业
假如想调度某个cron作业,让它在“每个星期四的下午7:00”运行,那么crontab脚本应该这样:
00 19 * * 4 sh /root/test.sh
再把它添加到调度作业中。
root@ubuntu-14:~# crontab -e
crontab: installing new crontab
⑶ linux下cron怎么设置
使用crontab -e 然后 0 4 1 jan* 0 /sbin/shutdown -h now 或者 0 4 1 jan* 0 /sbin/poweroff 然后保存,退出 很多Linux视频教程,不断更新中,敬请关注我的论坛,linux兄弟连论坛, http://www.linuxbrother.com 我的qq: 15251276,不明白的加我 crontab-操作每个用户的守护程序和该执行的时间表。 作者 Matthew Dillon . 部分参数说明 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 每分钟执行 */1 * * * * program program代表你要执行的程序 #每两个小时 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 COMMAND 10 6* * * date 0*/2* * * date 0 23-7/2,8 * * * date lark:~>
⑷ linux如何实现cron调度
cron 守护进程是一个由实用程序和配置文件组成的小型子系统,在几乎所有类 UNIX 系统上都可以找到某种风格的 cron。cron 的组件包括守护进程本身
⑸ linux中的cron和crond是什么东西 有什么关系
linux中有一个命令可以定期来执行系统任务。这就是crond服务。下面介绍下crontab命令的用法。
linux任务调度的工作主要分为以下两类:
编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次 /var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用 crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:
文件 含义
/etc/cron.deny 该文件中所列的用户不允许使用crontab命令
/etc/cron.allow 该文件中所列的用户允许使用crontab命令
/var/spool/cron/ 是所有用户的crontab文件
crontab命令的格式为:crontab –l|-r|-e|-i [username],其参数含义如表一:
参数名称 含义 示例
-l 显示用户的crontab文件的内容 crontab –l
-i 删除用户的crontab文件前给提示 crontab -ri
-r 从crontab目录中删除用户的crontab文件 crontab -r
-e 编辑用户的Crontab文件 crontab -e
用户所建立的crontab文件存于/var/spool/cron中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
格式如下:* * * * *
其时间段的含义如表二:
段 含义 范围
第一段 代表分钟 0—59
第二段 代表小时 0—23
第三段 代表日期 1—31
第四段 代表月份 1—12
第五段 代表星期几,0代表星期日 0—6
例:如果用户的Crontab文件的内容是:29 19 * * * echo its dinner time,则系统每天的19:29显示‘its dinner time’
示例(创建一个cron全过程,每分钟都会在test.txt里输入当前时间):
1、以普通用户登录Linux系统(我用的是CentOS4.1)
2、$crontab –e
说明:系统默认的编辑器是VIM,如果不是请加上以下shell:
$EDITOR=vi
$export EDITOR
3、输入”*/1 * * * * date >> $HOME/test.txt”,save and exit VIM
4、$su root
5、$cd /etc/init.d
6、./crond restart
下面看看看几个具体的例子:
● 0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache
● 50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务
● 50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务
● 0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘
● 1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件
● 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
● 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令
● 晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
7、编辑cron的配置文件/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"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
8、如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM
10 4 1 * * /root/scripts/backup.sh
⑹ 关于Linux cron使用
(get info with man crontab)
bash# crontab -e -u root
Some examples:
# MIN HOUR DAY MONTH DAYOFWEEK COMMAND
# run `date` at 6:10 am every day
10 6 * * * date
# run every two hours at the top of the hour
0 */2 * * * date
# run every two hours between 11 pm and 7 am, and again at 8 am
0 23-7/2,8 * * * date
# run at 4:00 am on January 1st
0 4 1 jan * date
# run every day at 11 am, appending all output to a file
0 11 * * * date >> /var/log/date-output 2>&1
⑺ 怎么配置linux的cron计划
在终端:
输入crontab
0
0
1
*
*
/sbin/shutdown
-h
now
"FOR
MAINTANCE"
按ctrl+d保存退出
接着运行:
service
portmap
restart
重新启动RPC服务,默认是启动的。
service
crond
restart
重新启动crond服务,必须的!让你上面的配置生效!