问题描述
最近的工作,需要做一个给预约的用户在预约到期的前两个小时进行消息的推送,所有就想到用服务器定时器任务做了,纯小白,mark一下最简单的流程。
1、环境配置
web容器:Apache
php版本:5.5.3x
python版本:2.6
服务器:centos6.5
2、编写shell脚本
写个简单循环好了:
#! /bin/sh
A='hello world'
echo 'A is :'
echo $A
for loop in 1 2 3 4 5 6 7 8 9 10
do
echo "loop is : $loop"
done
命令为hi.sh。存放的路径为/var/www/html/myshell
第一行是sh脚本的执行器的位置。$符号是shell脚本中,用于取得变量的。loop那边就是循环了。
3、开始CRONTAB任务
1.先检查服务器上是否有crontab服务,在命令行下面写services 然后tab就可以看到现在的任务了,如果没有的话,就根据自己的服务器的系统去安装好了。注意版本的对应。这是centos安装的命令:
[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs
2.下面是有关crontab的一些说明
1>vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自动启动:
chkconfig –level 35 crond on
2>crontab使用
crontab的格式什么的我就不多说了,自己可以百度一下。我主要记录一下最简单的使用方式吧。
先查看crontab任务,显示没有任务
创建任务和查看,此处的参数格式一定要写对,并且执行的脚本文件要写绝对路径。
删除任务
tips:
写完定时任务,记得重启crond服务:service crond restart
3>查看crontab任务的运行状态,我们可以vim /var/log/cron
这里存放的是crontab的日志文件
footer
在应该是最简(ruo)单(zhi)的方法了吧,然后我想执行一个服务器上的php文件,就让.sh文件去请求就好了。我是这么想的,不过我觉得如果用Python来写,应该会更棒吧。有机会去尝试一下。