PHP exec:预设默认错误(23)-部分传输

时间:2019-02-22 13:26:35

标签: php exec sudo

我有用于备份的Web服务,但是自从迁移到PHP7(?)以来,备份不再起作用。

所有Web服务链接均有效。

我隔离了PHP 7中有问题的代码,但它可能来自其他东西!

<?php
//$outputShell=shell_exec('sudo cat /etc/passwd');
exec('sudo /usr/sbin/dirvish --vault L106',$outputShell, $codeErreur);
//exec('sudo cat /etc/passwd',$outputShell, $codeErreur);
    //
    if ($codeErreur == 0){
      var_dump ("ok",$outputShell,$codeErreur);
    }
    else{
      var_dump ("nook",$outputShell,$codeErreur);
    }

?>

直接通过浏览器执行此代码时,出现以下错误:

  

dirvish错误:分支/ san / pcdsi / L106:默认图像20190221154124   失败的Dirvish L106:默认错误(23)-部分传输expr:   语法错误expr:非整数引数错误:分支   / san / pcdsi / L106:默认图片20190221154136失败

记录日志

  

rsync_error: *执行周期0 rsync:change_dir   “ / mnt / pc-backup / L106 / Users /”失败:没有这样的文件或目录(2)   rsync错误:未传输某些文件/文件(请参阅上一文件)   错误(代码23)在main.c(1668)上[Receiver = 3.1.2] rsync:[Receiver]   写入错误:管道损坏(32) 执行周期1 * rsync:   change_dir“ / mnt / pc-backup / L106 / Users /”失败:没有这样的文件或   目录(2)rsync错误:某些文件/属性未传输(请参阅   先前的错误)(代码23)位于main.c(1668)[Receiver = 3.1.2] rsync:   [接收器]写错误:管道损坏(32)

如果我在根目录中运行/ usr / sbin / dirvish --vault L106命令,则备份将毫无问题!!

此外,我通过cat / etc / passwd测试的注释中的部分有效!

当然,我检查了sudo的权限,并且通过浏览器www-data启动的脚本是sudo,没有密码...在那边没有问题

在旧的PHP 5服务器上,此PHP代码有效!

您有个主意吗?我持有? -系统问题? -PHP问题? -PHP 7平台上的苦恼问题?

简而言之,exec命令('sudo / usr / sbin / dirvish --vault L106', $ outputShell, $ errorCode);在PHP 5中有效,而在PHP 7中无效!

0 个答案:

没有答案