За последние 24 часа нас посетили 17930 программистов и 1719 роботов. Сейчас ищут 917 программистов ...

Запустить скрипт на php из CMD на удаленной машине.

Тема в разделе "Прочие вопросы по PHP", создана пользователем NexXT, 7 дек 2015.

  1. NexXT

    NexXT Новичок

    С нами с:
    7 дек 2015
    Сообщения:
    4
    Симпатии:
    0
    Сабж. Необходимо запустить скрипт на удаленной машине из батника/командной строки на локальной машине, с передачей параметров удаленному скрипту, но так, чтобы не открывалось окно браузера. Есть варианты?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    пхп на удаленной машине установлен?
     
  3. NexXT

    NexXT Новичок

    С нами с:
    7 дек 2015
    Сообщения:
    4
    Симпатии:
    0
    Да. Суть задачи - при входе юзера в домен запускается логон скрипт, который должен передавать параметры на удаленный php сервер. В параметрах передается дата/время/юзернейм/компьютернейм.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    не слишком круто для уровня новичка? показывай как заходишь на удаленный сервер и запускаешь на нем скрипт.
     
  5. NexXT

    NexXT Новичок

    С нами с:
    7 дек 2015
    Сообщения:
    4
    Симпатии:
    0
    При логине в домен любого юзера, у него автоматически запускается bat файл. Дык вот как из этого bat файла передать команду на выполнение пхп скрипта на удаленной машине? + передать этому скрипту параметры. Пробовал через start http:// .... задача выполняется, но при этом открывается браузер. Хотелось бы чтобы он не открывался. Можно прибить процесс браузера после завершения скрипта, но это же корявая реализация.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну вот я бы при таком уровне твоих знаний и остановился бы на хттп-запросе к (веб-)серверу. только вместо браузера бы использовал какой-нибудь соответствующий консольный инструмент для работы с гипертекстовым протоколом - curl, wget и тп - батник отработает и никаких лишних окон не будет. особенно браузерных. это ж надо еще дождаться когда браузер стартанёт...
     
  7. NexXT

    NexXT Новичок

    С нами с:
    7 дек 2015
    Сообщения:
    4
    Симпатии:
    0
    Консольный инструмент такого плана, на сколько я знаю, не входит в состав Windows, а, значит, придется все доменные компьютеры сначала подготовить. Установить необходимый софт.
    Ладно, чую что обычным bat тут не обойтись. Темку закрывать не нужно, может кто что все же подскажет. Пока сделал временным решением из CMD писать в обычный тхт, а тхт уже обрабатывать php по запросу.
    Наверное вопрос не по адресу. Нужно было на форуме про CMD или ему подобным спрашивать =)
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    cygwin - полноценный набор утилит из мира Unix, адаптированный к Windows. в том числе wget, curl многое другое.

    в интернетах все примеры для вебадминов даются под *nix и команды bash. в винде "из коробки" нет полноценной командной строки. поэтому ставь сигвин. с сигвином и доступом по ssh у тебя стирается грань между локальной и удаленной работой.

    вызов чего-либо на машине remote.com будет выглядеть примерно так:
    Код (Text):
    1. ssh nexxt@remote.com 'php /home/site2877/my.php'
    обращение к удаленному серверу по веб из командной строки cmd:
    цмд-шную магию со строкой даты я нагуглил ))) wget ставится из сигвина
    Код (Text):
    1. @echo off
    2. For /F "Delims=." %%I In ('WMIC.exe OS Get LocalDateTime ^| Find "."') Do Set DT=%%I
    3.  
    4. rem в DTS будет строка вида "2015-12-08T10-53"
    5. Set DTS=%DT:~0,4%-%DT:~4,2%-%DT:~6,2%T%DT:~8,2%-%DT:~10,2%
    6.  
    7. rem Передаем имя пользователя и метку времени как GET-параметры
    8. wget -qO- http://remote.com/my.php?user=%USERNAME%&ts=%DTS%
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    wget есть и виндовый же.
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    да, конечно. есть разные варианты.

    [offtopic]
    я выбираю сигвин потому что использую много чего, не только wget. это комплекс, включая стандартную текстовую консоль с башем, крон и ссх.

    микрософт не сумел utf-8 победить в текстовой консоли, никакие chcp не решают проблему, всё равно корявочки вылазят. а в сигвиновском mintty всё ок. или, например, сейчас в symfony и laravel есть консольные утилиты для вспомогательных работ. или phpunit — они могут цветной текст выводить. под виндой нет других вариантов увидеть всё полноценно кроме как из сигвиновской консоли!

    короче говоря, если приходится переключаться то в винду, то в удаленную/виртуальную юниксовую консоль, то самый приятный вариант поставить сигвин. "бесшовная интеграция" )))
    [/offtopic]