在
Linux
下执行
php
脚本时通常是可以使用以下命令:
#/usr/local/php/bin/php test.php
为简化输入可把此php执行程序
到系统命令目录下:
#cp /usr/local/php/bin/php /usr/sbin/
验证:输入以下命令,如正确获取
php
版本,说明操作成功。
#php -v
这样,以后再执行PHP脚本时可直接采用以下输入方式即可。
#php a.php
‘贰’ 如何使用Linux的Crontab定时执行PHP脚本的方法
一、在Crontab中使用PHP执行脚本
就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。
每一小时执行myscript.php如下:
复制代码 代码如下:
# crontab -e
00 * * * * /usr/local/bin/php /home/john/myscript.php
/usr/local/bin/php为PHP程序的路径。
二、在Crontab中使用URL执行脚本
如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。
下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-mp选项来把URL的输出转换来标准输出。
复制代码 代码如下:
00 * * * * lynx -mp
下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。
复制代码 代码如下:
*/5 * * * * /usr/bin/curl -o temp.txt
下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。
复制代码 代码如下:
*/10 * * * * /usr/bin/wget -q -O temp.txt
‘叁’ 如何通过Linux命令行使用和运行PHP脚本
1.用php -q 文件名.php 方式把php程序当shell程序来用,
2.用php -s把自己的php程序显示有语法高亮色彩的html源文件。这样是不是很省心?
3.利用php的odbc功能可以在shell命令中对数据库进行操作。
#0 6 * * * /usr/local/bin/php /home/web/do/index.php
4.查看扩展库
/usr/local/php/bin/php -m
5.检查php.ini配置是否正确
/usr/local/php/bin/php -v
6.让php运行指定文件
php my_script.php
php -f my_script.php
7.在命令行直接运行 PHP 代码。
php -r ‘print_r(get_defined_constants());’
php -r ‘phpinfo();’
8.用该参数,您可以指定一个放置 php.ini 文件的目录,或者直接指定一个自定义的 INI 文件
php -c /custom/directory/custom-file.ini my_script.php
9.显示除去了注释和空格的源代码。
php -w a.php
10.php -i
该命令行参数会调用 phpinfo() 函数,并打印出结果。
‘肆’ linux下php脚本怎么执行
在 Linux 下执行 php 脚本时通常是可以使用以下命令:
#/usr/local/php/bin/php test.php
为简化输入可把此php执行程序 到系统命令目录下:
#cp /usr/local/php/bin/php /usr/sbin/
验证:输入以下命令,如正确获取 php 版本,说明操作成功。
#php -v
这样,以后再执行PHP脚本时可直接采用以下输入方式即可。
#php a.php
‘伍’ linux定时执行php脚本
#!/usr/bin/php-q
<?php
define('ROOT',dirname(__FILE__)."/");
$content="<br/>";
file_put_contents(ROOT.'1.html',$content,FILE_APPEND);
?>
‘陆’ 如何使用Linux的Crontab执行PHP脚本
Linux中crontab是实现定时执行的指令,利用这个指令我们就可以定时执行某一个php文件,从而实现用PHP做Linux自动执行脚本。
如何用PHP作Linux自动执行脚本?
在安装PHP的时候,会产生一个可执行文件,文件名为php.将它 到 /usr/local/bin 下.在终端方式执行php程序:
php -q onlinnum.php
PHP 原本是应用在网页应用的﹐因此它会送出 HTML 的HEADER﹐但是在此我们是要将 PHP 用作 Shell Script﹐"-q" 就是表示不要送 出 HEADER 的意思.你可以试试看不加上 -q 的显示结果。此时你已经可以在终端方式下执行PHP 代码了。 linux命令:cron daemon
这是一个系统中常驻的服务,功能在于执行例行性的工作,如每天一次或每月一 次检查磁盘。cron daemon 会在每分钟检查一次排定的工作表(crontab),看看是否有要执行的指令,所有的输出会以mail寄给用户。
设置 crontab
命令:crontab -e
该命令呼叫vi编辑器来编辑执行的清单。例如
0 0 1,15 * * fsck /home
1 * * * * /home/myhome/printhello
每一行代表一项排定的工作,在指令前为排定的时间,总共有5个栏位,以空格间隔,由左到右依序如下:
--------------------------
分钟 从00到 99
点钟 从0到 24
日 从01到31
月 从01到12
星期 从01到07,代表星期一到星期日
*号表示"每" ,如每天执行,就在第三栏填*号
--------------------------
所以上例的两项工作是:
每月1号和15号检查/home 磁盘
每小时的第一分执行 /home/myhome/printhello 这个文件
查看crontab:crontab -l
删除crontab:crontab -r
我们就知道该怎么利用PHP和crontab命令作Linux自动执行脚本了。
还需要注意什么问题?
如果php中有使用数据库,如oracle等,执行脚本中还需export Oracle的环境设置。因为cron下的脚本执行的用户都是在没登陆状态下执行的,少了很多系统里设置的环境变量的值,在连接数据库的时候会出问题。
‘柒’ 如何用php作Linux自动执行脚本
嵌入式
linux
如何以root身份自动登录
并开机自动执行脚本文件
下面操作步骤记录如下:
要设置自启动程序需要解决两个问题:1、系统自动登录;2、自动执行脚本,
1)系统自动登录
(1)修改/etc/inittab
在inittab中,有如下配置
1:2345:respawn:/sbin/agetty
tty1
9600
2:2345:respawn:/sbin/agetty
tty2
9600
3:2345:respawn:/sbin/agetty
tty3
9600
4:2345:respawn:/sbin/agetty
tty4
9600
5:2345:respawn:/sbin/agetty
tty5
9600
6:2345:respawn:/sbin/agetty
tty6
9600
表示系统可以有六个控制台,可以用alt+(f1~f6)来切换。而/sbin/agetty就是一个登陆验证程序,执行它,会提示用户输入用户名和密码,然后启动一个指定的shell(在passwd文件中指定的)。
所以,我们只需将其修改为不执行agettty,而是执行自己编写的一个脚本,就可以跳过用户名和密码的输入。修改如下:
1:2345:respawn:/root/logintest
tty1
9600
这里我在/root/下放了一个测试脚本,这样系统启动时就会执行那个脚本,脚本内容:
#!/bin/sh
/bin/login
-f
root
脚本其实就是执行了一个root用户的登陆而已。
2)自动执行程序
方法有两种,一种是将要执行的代码放到1)中的/root/logintest的后面;
另一种是将要执行的代码放到/etc/profile文件的后面即可。
‘捌’ linux如何用shell运行一个php脚本
在 Linux 下执行 php 脚本时通常是使用以下命令(视php安装路径而定):
/usr/local/php/bin/phptest.php
另外,为简化输入可把此php执行程序 到系统命令目录下:
cp/usr/local/php/bin/php/usr/sbin/
验证:输入以下命令,如正确获取 php 版本,说明操作成功。
php-v
参考:
http://www.360doc.com/content/10/1124/15/4330887_72030254.shtml
‘玖’ linux下如何定时访问本机上的某个php脚本文件
自己编写crontab设定计划任务就是了, 那个服务就是做这些定时的,自动化的工作用的。要写什么脚本的,一个命令搞定。
给你个手册页自己看吧。
补充回答:
运行这个命令:
crontab -e
此命令将打开一个文本编辑器以添加新任务。
* 20 * * * rm -rf /root/febhost/dat/* /root/febhost/log/*
用对应的文本编辑器命令保存退出(vi编辑器是按esc后打:wq)
如果你对这种方式不熟悉,也可以直接改/etc/crontab,我看到你是要删除root文件夹内的目录,假设你有root权限(因为/etc/crontab所有者是root,并且只有以root身份执行删除命令才能删除root home内的文件),用以下命令打开此文件:
vi /etc/crontab
将光标移动至最后一行,按o键新开一行输入以下内容:
* 20 * * * root rm -rf /root/febhost/dat/* /root/febhost/log/*
给你解释下此行的含义吧,前五个以4个空格分隔开的值依次表示:分、时、日、月、周,如果取所有值就是打*号,如果你想周期性的运行一个任务,crontab也接受范围指定,比如说一天中的早8点到晚6点每隔一小时(就是每两小时,将会在8,10,12,14,16,18执行)执行你这个删除命令这样写:
* 8-18/2 * * * root rm -rf /root/febhost/dat/* /root/febhost/log/*
第一个字段是分钟,取值范围:0-59
第二个字段是小时。取值范围:0-23
第三个字段是一个月中的第几天,取值范围:1-31
第四个字段是一年中的第几个月,取值范围:1-12
最后一个字段是一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天。
下一个字段是执行该命令的用户身份,这里是root用户,最后一个字段就是定时运行的命令。
‘拾’ Linux怎么直接执行PHP脚本文件
首先脚本需要有执行权限chmod u+x file.sh
执行脚本有三种方法:
1. ./file.sh
特点:开启bash子进程来执行,也就是开启额外的进程来进行,不影响原进程的变量、配置等
2. bash file.sh
特点:和./file.sh相同
3. source file.sh 或者 . file.sh
特点:在原bash进程中执行脚本。
第三种方法主要用于在脚本中切换用户su、切换目录cd等命令。
source 和 . 命令是相同的。
你可以搜索 source
补充,如何查看脚本运行是否开启了bash子进程
vim file.sh
写入
#!/bin/bash
#echo $$命令会输出bash进程ID
echo $$
保存并赋予可执行权限chmod u+x file.sh
在你的shell中输入,echo $$ 屏幕输出4176
./file.sh 屏幕输出3600
bash file.sh 屏幕输出3984
source file.sh 屏幕输出4176 和 你直接在shell中输出的一样,说明是在同一个bash进程