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



定时任务添加示例图


crond服务_其他


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

[root@beita /]# mkdir -p /var/www/html    <==创建环境


[root@beita /]# mkdir /data           <==创建环境


[root@beita /]# touch /var/www/html/file{01..05}


[root@beita /]# ls /var/www/html


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


[root@beita /]# cd /var/www/         <==到打包目录的上一级目录打包


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


[root@beita www]# ls /data


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


[root@beita www]# cd /server/scripts/    《==到指定路径写入脚本


[root@beita scripts]# vim test.sh    <==写脚本


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


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


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


~                                                                        


:wq           <==保存


 

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


[root@beita www]# ls /data


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


 

[root@beita 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


 

[root@beita 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


以下均在脚本中定义PATH
1. 脚本中所有的命令都使用全路径
2. 
定义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