php 用shell_php 执行shell shell_exec - CSDN
精华内容
参与话题
  • 今天发现在使用定时器的时候,执行一个shell脚本,打印日志正常,然后在系统中不能查到当前Shell脚本执行的结果。 因为使用的是Web程序,对于Shell调用这块也是新手。以前没有遇到过这种问题,只能靠猜了。 判断 ...

    问题

    今天发现在使用定时器的时候,执行一个shell脚本,打印日志正常,然后在系统中不能查到当前Shell脚本执行的结果。

    因为使用的是Web程序,对于Shell调用这块也是新手。以前没有遇到过这种问题,只能靠猜了。

    判断

    1、Shell脚本问题。

    验证方式:进入系统控制台,然后直接调用脚本,验证脚本正常。排除脚本本身问题。

    2、判断应该问题来自于权限

    验证方式:进入控制台,查看执行日志author.log。果然上面提示账号权限有问题。

    ls 查看Shell脚本信息,发现Web程序的用户和Shell脚本的权限用户不是同一个账号。将其修改为同一个账号,,再次启动程序问题解决。


    结论:

    类似问题基本上都是由以上两个方面引起的。有异常的时候多看下日志,基本上的问题都会打印出来的。


    展开全文
  • PHP执行shell_exec方法失败

    万次阅读 2020-05-06 11:56:28
    多半原因在php.ini文件中未打开方法权限 在php.ini开启即可

    多半原因在php.ini文件中未打开方法权限
    在php.ini开启即可

    展开全文
  • php中判断shell_exec执行结果

    万次阅读 2016-05-05 13:58:43
     不过shell_exec执行成功无输出 和 执行失败 返回的都是null 在记录错误日志的时候区分就成问题了。  在php手册的评论中找到了区分的方法,在此记录一下。   $shell = "wget -O despath sourcepath && echo

       在做第三方登录的时候,注册时头像下载比较耗时,所以改为了异步 shell_exec 执行wget 

       不过shell_exec执行成功无输出  和  执行失败 返回的都是null 在记录错误日志的时候区分就成问题了。


       在php手册的评论中找到了区分的方法,在此记录一下。

       

    $shell = "wget -O despath sourcepath &&  echo 'success' ";
    $shellExec = shell_exec($shell);
    var_dump($shellExec);

      这样 当前面的执行成功的时候 会执行echo 执行结果就是success 而不是空了 

      执行失败不再继续执行echo  执行结果仍旧是null 

      这样就区分除了执行结果,记录对应日志就OK了。

      补充一下,大概是这样的。。。

     

     $shellExec = shell_exec("cd ../");
     var_dump($shellExec);//NULL
      
     $shellExec = shell_exec("cd ../ && echo 'suc'");
     var_dump($shellExec);//string(4) "suc "
    

    展开全文
  • exec 与shell_exec的区别

    万次阅读 2016-11-01 14:41:29
    手册 shell_exec函数运行在shell脚本环境,没有返回值 shell_exec (PHP 4, PHP 5, PHP 7) shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。 说明 string shell_exec ( ...

    手册 shell_exec函数运行在shell脚本环境,没有返回值

    shell_exec

    (PHP 4, PHP 5, PHP 7)

    shell_exec 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。

    说明

    string shell_exec ( string $cmd )

    本函数同 执行操作符

    参数

    cmd

    要执行的命令。

    返回值

    命令执行的输出。 如果执行过程中发生错误或者进程不产生输出,则返回 NULL

    Note:

    当进程执行过程中发生错误,或者进程不产生输出的情况下,都会返回 NULL, 所以,使用本函数无法通过返回值检测进程是否成功执行。 如果需要检查进程执行的退出码,请使用 exec() 函数。

    范例

    Example #1 shell_exec() 例程

    <?php
    $output 
    shell_exec('ls -lart');
    echo 
    "<pre>$output</pre>";


    exec

    (PHP 4, PHP 5, PHP 7)

    exec 执行一个外部程序

    说明

    string exec ( string $command [, array &$output [, int &$return_var ]] )

    exec() 执行 command 参数所指定的命令。

    参数

    command

    要执行的命令。

    output

    如果提供了 output 参数, 那么会用命令执行的输出填充此数组, 每行输出填充数组中的一个元素。 数组中的数据不包含行尾的空白字符,例如 \n 字符。 请注意,如果数组中已经包含了部分元素,exec() 函数会在数组末尾追加内容。如果你不想在数组末尾进行追加, 请在传入 exec() 函数之前 对数组使用 unset() 函数进行重置。

    return_var

    如果同时提供 output return_var 参数, 命令执行后的返回状态会被写入到此变量。

    返回值

    命令执行结果的最后一行内容。 如果你需要获取未经处理的全部输出数据, 请使用 passthru() 函数。

    如果想要获取命令的输出内容, 请确保使用 output 参数。

    范例

    Example #1 exec() 例程

    <?php
    // 输出运行中的 php/httpd 进程的创建者用户名
    // (在可以执行 "whoami" 命令的系统上)
    echo exec('whoami');
    ?>

    展开全文
  • sqlmap的--os-shell玩法

    千次阅读 2018-12-25 11:56:27
    首先找到注入点 证明存在注入漏洞 然后使用命令 sqlmap.py -r D:\1.txt -p ...这里不是dba所以不能使用--os-shell命令 如果是的话 例如 python sqlmap.py -u http://192.168.0.166/php/newsshow.php?cid=4 -...
  • shell 脚本中,通常会使用相对路径来做处理,但有时候,我们也许需要用到绝对路径。 在shell怎么获取一个文件或目录的绝对路径呢? 也许你会立马想到realpath(如果你写过php的话),那么shell支持这个命令吗?看...
  • 什么是Shell

    千次阅读 2018-08-10 21:41:23
    Shell 是一个 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。...
  • [shell]shell简介

    万次阅读 2018-07-11 12:02:21
    一、简介 Shell 是一个 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核...
  • linux下使用shell发送http请求

    万次阅读 2017-11-23 10:29:42
    本文主要介绍如何在linux下使用shell发送http请求。一、curl1. get请求curl命令默认下就是使用get方式发送http请求。curl www.baidu.com2. post请求使用-d参数,形式如下:curl -d "param1=value1¶m2=value2" ...
  • 【sql注入教程】mysql注入直接getshell

    万次阅读 2016-08-31 11:25:05
    Mysql注入直接getshell的条件相对来说比较苛刻点把 1:要知道网站绝对路径,可以通过报错,phpinfo界面,404界面等一些方式知道 2:gpc没有开启,开启了单引号被转义了,语句就不能正常执行了 3:要有file权限...
  • shell脚本每隔几秒执行

    万次阅读 2019-05-31 17:36:04
    whiletrue do cmd(shell 命令) sleep x(x为秒数) done
  • PHP Shell_exec所遇到的坑

    千次阅读 2017-08-07 15:23:37
    因为需要在项目中使用shell_exec执行python脚本,在测试下shell_exec("test.py")能够正常无误运行,但是加个目录shell_exec("python/test.py")则失效了,PHP框架,原因一开始想到是PHP的目录限制,但是苦试无果...
  • 解决PHP调用exec或shell_exec的问题

    千次阅读 2018-11-26 14:03:45
    最近在做一个项目需要用到PHP调用python,在服务器执行命令是可以的,但是当放在项目代码中,在web中执行命令就不行了,调试了一天,终于可以了! 环境:centos7+nginx+mysql+php7.1 首先要解决的就是权限问题和...
  • 当我们在一个 shell 里运行一个脚本程序时,该 shell 就会 fork 出一个新进程,从而启动了另一个命令解释器(由脚本中第一行的 #!/bin/xxx 指定,如 bash shell)来解释运行我们这个脚本。也就是说,这个新进程是一...
  • windows+PHP+shell_exec()无法执行的原因

    万次阅读 2018-01-23 11:33:34
    今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时,总是无法生成PDF文件,使用var_dump()打印返回值,结果是null。可是检查代码并没有什么问题啊?执行程序的目录是 D:\Program Files\wkhtmltopdf\bin\...
  • shell sed 删除文本中指定的某一行

    千次阅读 2012-04-17 19:43:43
    sed -i "5d" /var/spool/cron/root 往某一行插入 sed -i '625a\extension=php_screw.so' /etc/php.ini
  • Shell在线工具--在线写shell

    千次阅读 2018-08-19 14:52:47
    http://www.runoob.com/try/runcode.php?filename=helloworld&amp;type=bash
  • shell脚本定时执行php程序

    千次阅读 2019-03-05 11:18:30
    其实很简单的,在做开发的过程中可能会遇到一些情况需要定时得去跑一些程序,这时呢我们就可以用到这crontab这个定时器来帮助我们完成这些任务。 首先写好你需要执行的php...好,显示插入成功,证明这个shell是...
  • PHP调用shell命令

    千次阅读 2019-05-09 17:16:12
    因为想用php调用python脚本,于是想到可以利用php调用shell命令的方法实现。 php版本:php7.0 三种方法 1.system system — 执行外部程序,并且显示输出 函数使用方法 system ( string $command [, int &$...
  • Shell运维脚本学习整理

    千次阅读 多人点赞 2018-09-15 21:49:41
    运维常用命令 LINUX运维常用命令详解一 LINUX运维常用命令详解二 LINUX运维常用命令详解三 Linux三剑客之grep命令详解 Shell文本处理三剑客之sed Shell...Shell基础知识及字符处理 Shell表达式与运算符 shell脚...
1 2 3 4 5 ... 20
收藏数 115,327
精华内容 46,130
关键字:

php 用shell