php调用linux命令函数

1、exec() 函数
<?php

$command = "ls -al /etc";
exec($command, $array);
var_dump($array);

$result = system($command);
$result = shell_exec($command);

var_dump($result);
?>


2、system函数 有返回值
3、shell_exec() 函数 和exec有点一样
4、passthru() 函数没有返回值 和system一起记忆
5、popen()函数
首先执行命令返回一个资源句柄,然后我们用while循环用fgets函数每次读出4096个字节最后输出

<?php
$test = "ls /tmp/test";
$fp = popen($test,"r");  //popen打一个进程通道     
while (!feof($fp)) {      //从通道里面取得东西
       $out = fgets($fp, 4096);
       echo  $out;         //打印出来
}
pclose($fp);
?>


6、proc_open()函数
第一个参数是要执行的命令
第二个参数是标准输入标准输出,是一个数组
第三个参数存储函数执行的结果

<?php
$test = "ls /tmp/test";     
$arrayarray =   array(
    array("pipe","r"),   //标准输入
    array("pipe","w"),   //标准输出内容
    array("pipe","w")    //标准输出错误
);
$fp = proc_open($test,$arrayarray,$pipes);   //打开一个进程通道
echo stream_get_contents($pipes[1]);    //为什么是$pipes[1],因为1是输出内容
proc_close($fp);

同步shell命令

#!/usr/bin/expect -f
set password ****
spawn rsync -auzvP /home/htdocs/shopphp/img/pimgs root@10.0.16.103:/home/htdocs/shopphp/img
expect "(yes/no)?" {
 send "yes\r"
 expect "password:"
 send "$password\r"
} "password:" {send "$password\r"}
#expect "root@10.0.16.103's password:"
#send "$password\r"
send "exit\r"
expect eof



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值