crond服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了crond服务相关的知识,希望对你有一定的参考价值。

crond服务简要说明:

      Crondlinux中用来定期执行命令或指定程序任务的一种服务或软件,一般情况下,我们安装完centos5/6 linux操作系统之后,默认会启动crond任务调度服务,crond服务会定期(默认每分钟执行一次)检查系统中是否要执行的任务工作,如果有,变回根据其预先设定的定时任务规则自动执行该定时任务工作,这个crond定时任务服务就相当于我们平时早起使用的闹钟一样。


crond服务相关的配置文件

/etc/crontab 

系统定时任务配置文

/var/spool/cron/root 

用户定时任务配置文件

/var/log/cron 定时任务日志文件
/var/spool/postfix/maildroppostfix服务邮件目录
/etc/cron.deny

该文件中所列用户不允许使用crontab命令,

/etc/cron.allow该文件中所列用户允许使用crontab命令,优先于/etc/cron.deny(两文件刚好相反)
/server/scripts/用户存放脚本指定目录


添加crontab所涉及到的主要命令

crontab(参数)含义
crontab -l

crontab –l == cat /var/spool/cron/root

crontab -e

crontab –e == vim /server/scripts/root


定时任务添加示例图


技术分享


下面以简单例子来测试添加定时任务,如下:

[[email protected] /]# mkdir -p /var/www/html    <==创建环境

[[email protected] /]# mkdir /data           <==创建环境

[[email protected] /]# touch /var/www/html/file{01..05}

[[email protected] /]# ls /var/www/html

file01  file02  file03  file04  file05       <==创建环境

[[email protected] /]# cd /var/www/         <==到打包目录的上一级目录打包

[[email protected] www]#tar zcf /data/html_$(date +%F-%T)_tar.gz ./html  <==命令测试

[[email protected] www]# ls /data

html_2016-06-01-23:19:07_tar.gz        <==打包成功(命令测试成功

[[email protected] www]# cd /server/scripts/    《==到指定路径写入脚本

[[email protected] scripts]# vim test.sh    <==写脚本

#!/bin/bash       <==规范 表明这是shell脚本

cd /var/www/&&\    <==&&表示两者具有逻辑关系,\表示换行

tar zcf /data/html_$(date +%F)_tar.gz ./html

~                                                                        

:wq           <==保存

 

[[email protected] www]# /bin/sh /server/scripts/test.sh   <==全路径测试该脚本

[[email protected] www]# ls /data

html_2016-06-01-23:19:07_tar.gz   html_2016-06-01-23:20:11_tar.gz  <==测试成功

 

[[email protected] www]# crontab -e   <==将执行成功的脚本复制到定时任务

 

#time sync by beita at 2010-2-1

 */5 * * * * /usr/sbin/ntpdate asia.pool.ntp.org >/dev/null 2>&1

 

# Timing task test 2016-06-01

00 00 * * * /bin/sh /server/scripts/test.sh &/dev/null

~                                                           

:wq

 

[[email protected] www]#crontab -l   <==查看

#time sync by beita at 2010-2-1

 */5 * * * * /usr/sbin/ntpdate asia.pool.ntp.org >/dev/null 2>&1

 

# Timing task test 2016-06-01

00 00 * * * /bin/sh /server/scripts/test.sh &/dev/null



因为环境变量造成定时任务结果输出不全的解决方案

原因:用户的定时任务的环境变量为/usr/bin:/bin

1. 脚本中所有的命令都使用全路径
2. 自[[email protected] scripts]# cat /server/scripts/iptest.sh 
#!/bin/bash
source /etc/profile

IP=$(ifconfig eth0|awk -F ‘[ :]+‘ ‘NR==2{print $4}‘)

echo ${PATH}_${IP}_a1234566 >>/tmp/iptest.txt

定义PATH路径径 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
3. source /etc/profile
添加的环境变量
/usr/local/sbin:/usr/sbin:/sbin:/usr/bin:/bin





本文出自 “行者” 博客,请务必保留此出处http://zhaoyulin.blog.51cto.com/11665101/1785341

以上是关于crond服务的主要内容,如果未能解决你的问题,请参考以下文章

CentOS Crontab(定时任务)

linux 定时任务 crond 服务应用指南

linux CentOS6.3 安装crond定时服务和设置定时任务

crond服务总结

Linux系统定时任务crond那些事

Linux基础-Crond服务