写shell脚本调用php文件

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
djl8877
帖子: 19
注册时间: 2011-12-19 9:00

写shell脚本调用php文件

#1

帖子 djl8877 » 2012-02-23 14:48

我在cron中设定了定时运行某一个shell脚本。问题就是怎么在shell脚本上调用某一个php文件呢??不过要求又高了一点,就是用shell脚本又是到了运行的时候了,就去判断上一次运行的php文件的进程是否还存在??上一次运行php文件结束了的话就开始这一次的运行,那就是上一次运行的进程已经结束了,如果还没有结束的话,这一次的运行任务就不再运行了。请问这个shell脚本要如何去写呢??
头像
lotutu
帖子: 730
注册时间: 2010-12-23 16:29
来自: 北京

Re: 写shell脚本调用php文件

#2

帖子 lotutu » 2012-02-24 20:19

互斥的问题用上锁来解决会比较容易想
至于怎么运行php脚本,这个命令行上怎么运行脚本中就怎么写呗
djl8877
帖子: 19
注册时间: 2011-12-19 9:00

Re: 写shell脚本调用php文件

#3

帖子 djl8877 » 2012-02-25 10:55

老兄,能详细点吗??我是新手,多关照一下吧
头像
lotutu
帖子: 730
注册时间: 2010-12-23 16:29
来自: 北京

Re: 写shell脚本调用php文件

#4

帖子 lotutu » 2012-02-25 11:07

假如你的php脚本是 a.php 吧,那么你给它加上可执行权限后直接在shell 脚本里面写上 /path/to/a.php 就可以执行它,或者 写 php /path/to/a.php

互斥访问在你的脚本是用来修改文件信息或者别的什么信息的时候比较有用。假设你的脚本是用来修改文件 foo , 那么你可以通过给这个文件上锁的
方式来避免上一次任务没有结束的时候下一次任务冒然插入进来修改。这样就达到了上一次的任务没有结束的时候这一次的任务无效的效果。

加锁的方法我不怎么了解,不过也有替代方法,比如这样
开始时 -》 检测bar文件是否存在,如果存在退出。否则继续
创建 bar 文件。
执行要执行的操作
删除 bar文件
djl8877
帖子: 19
注册时间: 2011-12-19 9:00

Re: 写shell脚本调用php文件

#5

帖子 djl8877 » 2012-04-12 9:03

我是这样做的
#!/bin/sh
count=`ps -fe |grep "xxxxx.php" | grep -v "grep" | wc -l`
echo $count
if [ $count -eq 0 ]
then
/usr/bin/php /path/xxxx.php
else
exit
if
用ps命令判断那个php进程是否还存在,存在就不运行
头像
lotutu
帖子: 730
注册时间: 2010-12-23 16:29
来自: 北京

Re: 写shell脚本调用php文件

#6

帖子 lotutu » 2012-04-12 15:49

嗯,那样也不错
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 写shell脚本调用php文件

#7

帖子 eexpress » 2012-04-12 15:54

到/tmp下touch一个文件就是。那就是锁了嘛。
● 鸣学
lookme9999
帖子: 14
注册时间: 2009-09-28 15:59

Re: 写shell脚本调用php文件

#8

帖子 lookme9999 » 2012-04-12 22:51

:em03 :em03 学习中……
回复