hadoop — копирует файлы с одного компьютера на другой, используя переполнение стека

Я установил 2 машины Ubuntu: 192.168.1.104 & 192.168.1.105 установили ssh на обе сгенерированные машины ssh-keygen на 104 машине и добавил ключ к обоим ip-адресам.

Я хочу скопировать файл с одного 192.168.1.104 на 192.168.1.105 через php.
Я пробовал эту команду scp /home/tejas/hadoop/conf/core-site.xml [email protected]:/home/tejas/hadoop/conf/core-site.xml
через скрипт оболочки файл копируется отлично, но когда я запускаю ту же команду через php-скрипт

<?php
$output = shell_exec('scp /home/tejas/hadoop/conf/core-site.xml [email protected]:/home/tejas/hadoop/conf/core-site.xml');
?>

Это не показывает никакой ошибки, но файл не копируется. Также пробовал подобное с exec() а также попробовал rysnc вместо scp rsync -avzh /home/tejas/hadoop/conf/mapred-site.xml [email protected]:/home/tejas/hadoop/conf/mapred-site.xml все еще не повезло.

обе команды отлично работают через скрипт оболочки, но не работают через php

Я проверил, что php не находится в безопасном режиме, и shell_exec () или exec () не отключены в php.ini.

1

Решение

exec() а также shell_exec() выполняется пользователем, запускающим скрипт php (обычно www-data на Ubuntu, но может быть apache или что-то другое). Вероятно, у этого пользователя нет прав на файлы / папки. Одним из решений является создание новой группы пользователей и добавление пользователя (www-data) для этой группы, затем установите правильное право владения / разрешения для файлов / папок для копирования / копирования.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]