как из PHP запустить скрипт bash ?
Модератор: immortal
-
- Сообщения: 331
- Зарегистрирован: Пн апр 06, 2015 9:51 am
- Благодарил (а): 37 раз
- Поблагодарили: 22 раза
как из PHP запустить скрипт bash ?
скрипт лежит в var\www\ok.sh
как его запустить из под PHP?
сам написал -сам и ответил
shell_exec("cd /var/www && ./ok.sh");
как его запустить из под PHP?
сам написал -сам и ответил
shell_exec("cd /var/www && ./ok.sh");
-
- Сообщения: 160
- Зарегистрирован: Ср окт 07, 2015 9:36 am
- Благодарил (а): 51 раз
- Поблагодарили: 27 раз
Re: как из PHP запустить скрипт bash ?
Подскажите - почему скрипт не запускается?
Создал сценарий FullBackup:
Запускаю его - реакции ноль. Запускаю в консоли МЖД - ошибка:
Хотя напрямую в shell всё отлично запускается. Права доступа и на запуск скрипта - есть.
Создал сценарий FullBackup:
Код: Выделить всё
echo shell_exec('sudo /var/www/scripts/FullBackup.sh');
"Parse error: syntax error, unexpected '/' in /var/www/modules/inc_panel_ajax.php(17) : eval()'d code on line 1"
СпойлерПоказать
СпойлерПоказать
Код: Выделить всё
pi@raspberrypi /var/backups $ cd /var/www/scripts/
pi@raspberrypi /var/www/scripts $ ls -l
total 180
........
-rwxrwxrwx 1 pi pi 1529 Nov 26 23:24 FullBackup.sh
........
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: как из PHP запустить скрипт bash ?
А зачем у Вас "echo" стоит перед "shell_exec"? Так не должно быть. Просто укажите "shell_exec('sudo /var/www/scripts/FullBackup.sh');"Ko/|xo3HUk писал(а):Подскажите - почему скрипт не запускается?
Попробуйте такПоказать
- За это сообщение автора savenko_egor поблагодарили (всего 2):
- Ko/|xo3HUk (Сб ноя 28, 2015 11:43 am) • mirsum (Вт дек 01, 2015 10:21 pm)
- Рейтинг: 2.33%
- Amarok
- Сообщения: 1427
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: как из PHP запустить скрипт bash ?
а без sudo вообще никак?(
Моя Алиска живёт на Proxmox в Debian 12
-
- Сообщения: 160
- Зарегистрирован: Ср окт 07, 2015 9:36 am
- Благодарил (а): 51 раз
- Поблагодарили: 27 раз
Re: как из PHP запустить скрипт bash ?
Попробовал без "echo", но с "sudo" - не работает ни "Запуск по ссылке: http://192.168.1.69:80/objects/?script=FullBackup", ни "Через командную строку: /var/www\obj.bat script:FullBackup".
Убрал и "echo" и "sudo" - заработало только через "Запуск по ссылке: http://192.168.1.69:80/objects/?script=FullBackup". "Через командную строку: /var/www\obj.bat script:FullBackup" - никак не хочет.
Ну да ладно, хватит и запуска по ссылке!
Ещё вопрос - запуск скрипта "Через командную строку" - это должно выполняться через консоль МЖД?
Потому как ни через консоль, ни через putty строка "/var/www\obj.bat script:FullBackup" не работает.
И ещё вопрос - как-то можно проинформировать - корректно ли завершился скрипт? Например, если присутствуют слова "Operation not permitted" в выводе этого скрипта? Может можно вывести весь вывод скрипта на страницу или произвести проверку в скрипте на отсутствие ключевых слов и сообщить об этом? (например: "echo "Выполнение скрипта завершено!";")
СпойлерПоказать
СпойлерПоказать
Ещё вопрос - запуск скрипта "Через командную строку" - это должно выполняться через консоль МЖД?
СпойлерПоказать
И ещё вопрос - как-то можно проинформировать - корректно ли завершился скрипт? Например, если присутствуют слова "Operation not permitted" в выводе этого скрипта? Может можно вывести весь вывод скрипта на страницу или произвести проверку в скрипте на отсутствие ключевых слов и сообщить об этом? (например: "echo "Выполнение скрипта завершено!";")
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: как из PHP запустить скрипт bash ?
На сколько я знаю, батники в Linux не работают. Так как замена батникам на Linux - это BASH. Так-что Вы не запустите данную команду на Вашем сервере.
Информировать только выводом. И для того что бы это вывод Вам потом увидеть, делайте его в файл и считывайте потом это файл.
И зачем в МЖД консоль, я сам так и не понял. Да и не особо стремился понять))
Информировать только выводом. И для того что бы это вывод Вам потом увидеть, делайте его в файл и считывайте потом это файл.
И зачем в МЖД консоль, я сам так и не понял. Да и не особо стремился понять))
- За это сообщение автора savenko_egor поблагодарил:
- Ko/|xo3HUk (Сб ноя 28, 2015 3:26 pm)
- Рейтинг: 1.16%
-
- Сообщения: 160
- Зарегистрирован: Ср окт 07, 2015 9:36 am
- Благодарил (а): 51 раз
- Поблагодарили: 27 раз
Re: как из PHP запустить скрипт bash ?
А я чего-то даже внимания не обратил что расширение *.bat стоит
Да, посмотрел этот батник - и вправду - на линуксе не заработает
И ещё печально что sudo в скриптах не работает
Причём в putty пишу sudo - без проблем работает, даже пароль не спрашивает. А от какого юзера скрипты выполняются в МЖД? (в putty - от "pi").

Да, посмотрел этот батник - и вправду - на линуксе не заработает

Код: Выделить всё
@echo off
set MIBDIRS=C:\_majordomo\server\php\Extras\mibs
c:
cd /d \_majordomo\htdocs\objects
..\..\server\php\php.exe index.php %1 %2 %3 %4 %5 %6 %7 %8 %9>>log.txt

Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
- TimonDK
- Сообщения: 27
- Зарегистрирован: Вт июл 14, 2015 9:00 pm
- Откуда: Саратов
- Благодарил (а): 10 раз
- Поблагодарили: 7 раз
- Контактная информация:
Re: как из PHP запустить скрипт bash ?
Посмотри описание sudoers.Ko/|xo3HUk писал(а): И ещё печально что sudo в скриптах не работаетПричём в putty пишу sudo - без проблем работает, даже пароль не спрашивает. А от какого юзера скрипты выполняются в МЖД? (в putty - от "pi").
Надо пользователя добавить в группу sudo (если не добавлен)
sudo gpasswd -a vasili_pupkin sudo
А потом в sudoers указать, что у пользователя пароль не спрашивать
vasili_pupkin ALL =(ALL) NOPASSWD: ALL
Отправлено с моего ZP998 через Tapatalk
- За это сообщение автора TimonDK поблагодарили (всего 2):
- Amarok (Вс ноя 29, 2015 11:41 am) • Ko/|xo3HUk (Вс ноя 29, 2015 4:28 pm)
- Рейтинг: 2.33%
-
- Сообщения: 160
- Зарегистрирован: Ср окт 07, 2015 9:36 am
- Благодарил (а): 51 раз
- Поблагодарили: 27 раз
Re: как из PHP запустить скрипт bash ?
Да, спасибо. Давным-давно пользовался этим, начинаю забывать уже
Меня смутило что в консоли putty - sudo работает без проблем, а в скриптах - нет. Значит для юзера "pi" это прописано уже, а скрипты от имени другого юзера запускаются.
P.S. посмотрел /etc/sudoers:
- так и есть - для "pi" - всё разрешено, а скрипты видимо от "www-data" запускаются.

P.S. посмотрел /etc/sudoers:
СпойлерПоказать
Код: Выделить всё
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
# restart cycles of MajorDoMo
www-data ALL=(root) NOPASSWD: /var/www/restart.sh
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)