Назад | Перейти на главную страницу

Есть ли способ сделать вывод сценария bash видимым в браузере?

Я сделал скрипт обновления svn для программистов. Скрипт отлично работает с bash. Программисты хотят запустить его из браузера (через свой сайт администратора).

Скрипт очень простой (его единственный пример не совсем такой)


#!/bin/bash
echo "Start update..."

cd /dir/with/site

/usr/bin/svn update
echo "Update ended."

 

В браузере сценарий bash запускается через файл php примерно так:


echo system('/updatesvnscript.sh');

После выполнения в bash я могу видеть весь вывод echos и svn-приложения, скрипт хорошо работает в bash.

Запуск скрипта в браузере через php дает мне вывод только из эха, например Start update... Update ended., но нет вывода из svn. Проблема в том, что сценарий также не обновляет мой сайт, когда я делаю обновление через браузер, поэтому мне нужно найти, в чем проблема.

Поэтому я хочу увидеть вывод svn в браузере, чтобы узнать, не работает ли что-то с svn через браузер.

Сценарий Bash имеет надлежащие права на выполнение его через браузер и имеет право изменять (обновлять) файл в каталоге сайта.

Переключитесь на идентификатор пользователя, под которым работает ваш веб-сервер / php, затем запустите вручную,

cd /dir/with/site
/usr/bin/svn update

и посмотрите, что вы получите.

Или изменить

/usr/bin/svn update

к

/usr/bin/svn update 2>&1

который будет перенаправлять сообщения об ошибках на стандартный вывод, который затем должен отображаться на вашей веб-странице, чтобы помочь с диагностикой.

Subversion использует stderr для отображения вывода пользователю, поэтому я думаю, что это исправит:

echo system('/updatesvnscript.sh 2>&1');