<p>今天在测试机上配置crontab时发现它没有安装,所以赶紧安装一个.</p><p>CentOS 版本:5.7</p><p>操作步骤</p><p>1. 确认crontab是否安装:</p><p>执行 crontab 命令如果报 command not found,就表明没有安装</p><p>2. 安装 crontab</p><p>执行 yum install -y vixie-cron</p><p>3. 确认是否安装成功:</p><p>执行 crontab -e</p><p>4. 看是否设置了开机自动启动</p><pre class="brush:bash;toolbar:false">chkconfig--listcrond</pre><p>5. 启动crontab</p><pre class="brush:bash;toolbar:false">servicecrondstart</pre><p>详细记录</p><pre class="brush:bash;toolbar:false">[root@node16eap_designer]#crontab-e
-bash:crontab:commandnotfound
[root@node16eap_designer]#yuminstall-ycrontab
Loadedplugins:fastestmirror
Determiningfastestmirrors
*base:centos.ustc.edu.cn
*extras:centos.ustc.edu.cn
*updates:centos.ustc.edu.cn
base|1.1kB00:00
extras|2.1kB00:00
extras/primary_db|171kB00:00
updates|1.9kB00:00
updates/primary_db|464kB00:01
SettingupInstallProcess
Nopackagecrontabavailable.
Nothingtodo
[root@node16eap_designer]#yuminstall-ycron
Loadedplugins:fastestmirror
Loadingmirrorspeedsfromcachedhostfile
*base:centos.ustc.edu.cn
*extras:centos.ustc.edu.cn
*updates:centos.ustc.edu.cn
SettingupInstallProcess
Nopackagecronavailable.
Nothingtodo
[root@node16eap_designer]#yuminstall-ycrond
Loadedplugins:fastestmirror
Loadingmirrorspeedsfromcachedhostfile
*base:centos.ustc.edu.cn
*extras:centos.ustc.edu.cn
*updates:centos.ustc.edu.cn
SettingupInstallProcess
Nopackagecrondavailable.
Nothingtodo
[root@node16eap_designer]#yuminstall-ycrontab
Loadedplugins:fastestmirror
Loadingmirrorspeedsfromcachedhostfile
*base:centos.ustc.edu.cn
*extras:centos.ustc.edu.cn
*updates:centos.ustc.edu.cn
SettingupInstallProcess
Nopackagecrontabavailable.
Nothingtodo
[root@node16eap_designer]#yuminstall-ycrontabs
Loadedplugins:fastestmirror
Loadingmirrorspeedsfromcachedhostfile
*base:centos.ustc.edu.cn
*extras:centos.ustc.edu.cn
*updates:centos.ustc.edu.cn
SettingupInstallProcess
Packagecrontabs-1.10-8.noarchalreadyinstalledandlatestversion
Nothingtodo
[root@node16eap_designer]#crontab
-bash:crontab:commandnotfound
[root@node16eap_designer]#cd
[root@node16~]#
[root@node16~]#</pre><p>查了一下资料,才知道它不叫cron,crond,crontab,crontabs,它叫vixie-cron</p><pre class="brush:bash;toolbar:false">[root@node16~]#yuminstall-yvixie-cron
Loadedplugins:fastestmirror
Loadingmirrorspeedsfromcachedhostfile
*base:centos.ustc.edu.cn
*extras:centos.ustc.edu.cn
*updates:centos.ustc.edu.cn
SettingupInstallProcess
ResolvingDependencies
-->Runningtransactioncheck
--->Packagevixie-cron.i3864:4.1-77.el5_4.1settobeupdated
-->FinishedDependencyResolution
DependenciesResolved
====================================================================================================================================
PackageArchVersionRepositorySize
====================================================================================================================================
Installing:
vixie-croni3864:4.1-77.el5_4.1base79k
TransactionSummary
====================================================================================================================================
Install1Package(s)
Upgrade0Package(s)
Totaldownloadsize:79k
DownloadingPackages:
vixie-cron-4.1-77.el5_4.1.i386.rpm|79kB00:00
Runningrpm_check_debug
RunningTransactionTest
FinishedTransactionTest
TransactionTestSucceeded
RunningTransaction
Installing:vixie-cron1/1
Installed:
vixie-cron.i3864:4.1-77.el5_4.1
Complete!</pre><pre class="brush:bash;toolbar:false">[root@node16~]#crontab-l
nocrontabforroot
[root@node16~]#
[root@node16~]#chkconfig--listcrontab
在crontab服务中读取信息时出错:没有那个文件或目录
[root@node16~]#chkconfig--listcron
在cron服务中读取信息时出错:没有那个文件或目录
[root@node16~]#chkconfig--list
anacron0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
avahi-daemon0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
avahi-dnsconfd0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
crond0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
gpm0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
haldaemon0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
iscsi0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
iscsid0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
jexec0:启用1:启用2:启用3:启用4:启用5:启用6:启用
kudzu0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
lvm2-monitor0:关闭1:启用2:启用3:启用4:启用5:启用6:关闭
mcstrans0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
messagebus0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
multipathd0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
mysql0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
netconsole0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
netfs0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
netplugd0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
network0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
rawdevices0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
rdisc0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
restorecond0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
sshd0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
syslog0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
tcsd0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
xfs0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
[root@node16~]#chkconfig--listcrond
crond0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
[root@node16~]#servicecrond</pre><p>用法: /etc/init.d/crond {start|stop|status|reload|restart|condrestart}</p><pre class="brush:bash;toolbar:false">[root@node16~]#servicecrondstatus
crond已停
[root@node16~]#
[root@node16~]#
[root@node16~]#servicecrondstart
启动crond:[确定]
[root@node16~]#servicecrondstatus
crond(pid16932)正在运行...
[root@node16~]#</pre><p>完成了上面基础工作后,就来看看怎么使用crontab定时执行PHP脚本:</p><p>(1)我在/root下新建test.php文件,内容如下:</p><pre class="brush:php;toolbar:false"><?php
#!/usr/bin/php-q
echodate('Y-m-dH:i:s')."fromhttp://www.phpddt.com\n";
?></pre><p>说明:你可以用whereis php查找php执行文件位置。</p><p>在命令行输入php -q test.php 测试你写的PHP程序是否可以正常运行</p><p>(2)然后crontab -e编写如下shell:</p><pre class="brush:bash;toolbar:false">*****/usr/bin/php-f/root/test.php>>test.log</pre><p>说明:test.php必须为可执行文件:chmod +x test.php</p><p>测试结果很正常,截图如下:</p><p>当然你可以用使用crontab -e继续添加任务,在/var/spool/cron下你可以看到一个root文件。</p><p>可以看可以用tail -f /var/log/cron观察日志</p><p>也可用ps -aux | grep cron 查看所有的进程</p>