Nano Hash - криптовалюты, майнинг, программирование

как запустить скрипт ant с одной машины, нацеленной на другую машину?

Я сделал следующее, используя Ant. Мне нужно запустить скрипт ant с машины A, в сценарии есть сведения о машине B, такие как имя хоста, имя пользователя, pwd, каталог для загрузки, данные ftp и т. д., и когда скрипт запускается с машины A, он должен загрузить какой-либо файл с использованием ftp. в машине Б.

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

Заранее спасибо.

Вот код:

В maven я определил детали машины B:

<host>MachineB</host>
<host.username>user</host.username>
<host.password>pwd</host.password>

В файле build.xml

<target name="Todownload_file" <mkdir dir="${download_dir}" />

    <ftp action="get" server="download_server_details" userid="user" password="pwd" remotedir="path">
        <fileset dir="${download_dir}">
            <include name="${file_name}"/>
        </fileset>
    </ftp>
</target>

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

17.09.2012

  • Это то, о чем вы спрашиваете? Запуск сценария ant с машины A. Вы хотите, чтобы сценарий загрузил файл с B на A.? Судя по тому, что вы описываете, так и происходит. 18.09.2012
  • Вы используете что-то вроде sshexec? ant.apache.org/manual/Tasks/sshexec.html 18.09.2012
  • опубликуйте соответствующие части вашего ant-скрипта (удалив фактический хост, пользователя и pwd). В частности, та часть, которая передает файл по FTP. 18.09.2012
  • Привет, KM1, на самом деле мне нужно запустить скрипт с машины A, который должен загрузить какой-то файл на машину B. Как и позже, я улучшу код, чтобы он указывал на другую машину и загрузил файл 18.09.2012
  • Привет, Гильберто, я не пробовал с sshexec. Спасибо за ссылку! Попробую 18.09.2012
  • Привет Km1 - Да, я могу опубликовать код. Но, честно говоря, я не связывал детали машины B с деталями загрузки по FTP. вот почему код загружает файл, откуда он был запущен. Любые мысли о том, как связать данные машины с данными ftp›? 18.09.2012
  • Я не понимаю, что происходит, поэтому я голосую за закрытие, поскольку это кажется запутанным, каково ожидаемое поведение. Кроме того, я удалил тег maven, так как maven не упоминается. 18.09.2012
  • Привет Тим, я извиняюсь, если ожидаемое поведение вас смущает. В Simple мне нужно запустить скрипт с машины A, скрипт будет содержать информацию о различных деталях машины и о деталях ftp. Когда скрипт запускается с машины А, он должен загружать файлы на машины другой сети. Надеюсь, это прояснит вас. 18.09.2012
  • Кстати, сценарий может быть от maven или от ant, или от того и другого. 18.09.2012

Ответы:


1

Вы можете использовать задачу sshexec для запуска удаленных команд, и вы можете использовать sep для копирования/передачи файлов с/на машину B. Есть несколько концептуальных способов сделать это.

Первый подход: загрузите файл с удаленного ftp-сайта на компьютер A, затем скопируйте его на компьютер B с помощью задачи scp. Наконец, запустите файл на машине B, используя sshexec.

Второй подход: загрузите файл непосредственно на компьютер B, запустив команды curl или ftp непосредственно на компьютере B с компьютера A через sshexec. Затем запустите еще одну задачу sshexec, чтобы выполнить файл на машине B.

Третий подход: напишите сценарий (workflowscript.sh), который будет работать на машине B (bash для Mac/Linux powershell/VBScript для Windows), и в этот сценарий вы поместите логику для выполнения загрузки другого сценария через ftp или curl или что бы ни. Используйте scp на компьютере A, чтобы скопировать workflowscript.sh на компьютер B, а затем используйте sshexec для его выполнения.

Во всех вышеперечисленных подходах вам нужно знать, что где работает. Машина A просто отправляет файлы или отправляет удаленные команды на машину B, а машина B выполняет всю работу.

17.09.2012
  • спасибо клифф. Мне нравится второй подход. поскольку файл, который я собираюсь загрузить на машине B, является исполняемым файлом, поэтому, как вы сказали, я могу использовать другую задачу sshexec для выполнения файла. 18.09.2012
  • Верно, вы также можете объединить шаги загрузки и выполнения в один вызов sshexec. curl someserver.com/path/file › исполняемый файл; исполняемый файл chmod +x; ./executable Я добавил chmod, чтобы убедиться, что бит exec установлен, и я всегда добавляю ./ перед вызовом исполняемого файла, потому что не все хосты Linux/Unix имеют текущий рабочий каталог. включены в их $PATH. 18.09.2012

  • 2

    Вы можете запустить команду/скрипт на удаленной машине (), используя:

    ssh <remote_user>@<remote_server> "<command_1>; <command_2>; ... <command_n>"
    

    Одной из таких команд может быть «gftp», FTP-клиент командной строки. Чтобы скачать то, что вам нужно.

    17.09.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..