我有用于备份的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中无效!