Securecrt что это за программа
SecureCRT для Windows
Программа умеет эмулировать VT100, VT102, VT220, ANSI, SCO ANSI и Linux консоль (с поддержкой цвета) и позволяет проводить неограниченное количество сессий (c возможностью присвоения им имен). Поддерживается работа через HTTP proxy и файрволы, ZModem и XModem, использование скриптов (VBScript и JScript), ведение лог-файлов, автоматические логины и NTLM аутентификация для соединения с Microsoft Telnet Server.
Кроме этого, в SecureCRT реализована поддержка работы с шифрами Blowfish, DES, 3DES и RC4, OpenSSH, идентификация паролей и RSA, перенаправление TCP/IP соединений (Port forwarding), а также имеется возможность работы с ключами на Smart card носителях.
Putty – бесплатный Telnet/SSH клиент. Это клиентская программа для протоколов SSH и Telnet, SCP и SFTP, утилита для генерации RSA и DSA ключей, и многое другое.
Отзывы о программе SecureCRT
как же забодал этот Яндек про SecureCRT 8.5.3 [25-03-2019]
arty про SecureCRT 6.0.1 [11-06-2009]
плохая прога, не хочет запускаться сразу после установки.
типа срок уже прошел
2 | 2 | Ответить
hovart про SecureCRT 5.2 [12-05-2007]
oleg про SecureCRT [11-03-2005]
Max в ответ oleg про SecureCRT 7.3.1 [20-12-2014]
Кряки и кейгены тут не выкладывают
4 | 4 | Ответить
Scriptkiller про SecureCRT [10-05-2004]
Лучше день потерять, а потом телепортироваться куда хочешь и сколько хочешь
Кто я и что я делаю
Я являюсь джуниором в провайдинговой компании, в мои обязанности входит helpdesc второй линии и много рутинных задач вроде прокидывания Vlan от порта до порта через всю сеть, либо подачи других услуг на конечный порт абонента, настройка различных железок уровня агрегации и дистрибьюции для выставления на сеть. Но какими бы ни были рутинными задачи по организации новых каналов или настройки железок — самая неудобная и отвлекающая рутина, это контакты с хэлпдеском, которые всегда сводятся к просмотру состояния порта, присутствия на нем мака, и нужных Vlan, кол-ва ошибок и истории UP/Down из логов оборудования в редких случаях.
Как все начиналось
Чем больше времени проходило с момента моего трудоустройства, тем быстрее решались мной рутинные задачи и тем больше они мне надоедали. И в определнный момент я решил попробовать упростить себе жизнь и скинуть рутину алгоритмам. В результате, где-то за пол года неспешной работы у меня получилось несколько скриптов, которыми я и хотел бы с вами поделиться. Кроме того, я поискал по хабру и Stack Overflow и пришел к выводу что нигде подобная тема еще не поднималась. С учетом того, сколько профита ежедневно мне приносят мои наработки (экономия времени от минуты до 15-ти за заявку от хэлпдеска) это мне показалось очень странным.
Чем я хочу поделиться
В этом посте речь пойдет о самом последнем моем творении т.к. он написан максимально грамотно и с прицелом на легкое допиливание, его легко понять и изменить под свои нужды. Дело в том, что я, не являясь программистом, писал все исключительно по принципу «лишь бы работало» и только со временем по мере написания я научился (или еще только начинаю «научаться») писать программы хотя бы чуть-чуть правильно.
Описание работы:
Таким образом отпадает потребность вспоминать что находится за десятком открытых вкладок, ведь там теперь не просто IP адрес, а еще и имя устройства.
Список и типы оборудования, с которым работает скрипт: | ZTE | HP | QTECH | H3C | Quidway-EA | Quidway-EI |
Про обновления
Так как моим творением пользуются еще и коллеги, а я часто его дописываю или улучшаю, то я еще написал небольшой модуль обновления, который должен лежать в доступном сетевом расположении рядом с новой версией этого скрипта. Путь до модуля обновления прописывается в самой шапке скрипта в переменной UpdateEngine. Этот же путь является путем к новой версии.
Обновление происходит, если в поле IP адреса ввести команду Update. Если ввести Upload то произойдет отгрузка новой версии с локального компьютера на сервер.
Почти конец
В процессе написания я столкнулся с несколькими неочевидными трудностями, так что если у вас будут какие-либо вопросы — задавайте.
Далее собственно код обоих скриптов. Пожалуйста используйте, изменяйте под свои нужды. Возможно для кого-то мой опыт послужит начальным импульсом к автоматизации собственной рутины. Кто-то увидит примеры использования VBScript в SecureCRT, кто-то поднимет ЧСВ, заметив сырость в коде. В любом случае, я уверен, что тема будет полезна многим.
Редактирование скрипта советую производить в Notepad++ т.к. в нем использованно такое форматирование, которое позволяет Notepad++ сворачивать отдельные модули (скрывать строки) так, чтобы облегчить навигацию по коду. Не нужные на данный момент модули можно свернуть до двух строк — начало и конец.
Я не претендую на звание программиста года, так что за сырости и медвежьи ходы (неизящные решения) прошу не пинать, но буду рад подсказкам на будущее.
Код актуален для SecureCRT ver 7.0.1
Почти 300 строк первого скрипта:
Напоследок
У меня есть еще один очень полезный скриптик для оборудования GPON MA5680T. Кто сталкивался, тот знает насколько сложно добавлять услуги или разбираться в текущей конфигурации оконечного терминала, т.н. «понки». Я написал скриптик который позволяет добавлять услуги, выводить список улуг или разбирать понку из конфигурации GPONa. Итоговая табличка, формируемая скриптом выглядит так
Автоматизация ввода в SecureCRT с помощью скриптов
У сетевых инженеров часто возникает задача, выполнить copy/past определенных фрагментов из блокнота в консоль. Копировать приходиться обычно несколько параметров: Username/Password и что-либо еще. Ускорить этот процесс позволяет использование скриптов. НО задачи написание скрипта и выполнение скрипта суммарно должны занять меньше времени, чем настройка вручную, иначе скрипты бесполезны.
Для чего нужна эта статья. Эта статья из цикла Fast Start и направлена на экономию времени сетевым инженерам, при настройке оборудования (одной задачи) на нескольких устройствах. Используется ПО SecureCRT и встроенный функционал выполнение скриптов.
Введение
В программу SecureCRT из коробки встроен механизм выполнения скриптов. Для чего нужны скрипты в терминале:
Создание простейших скриптов.
Простейшие скрипты используют всего две команды Send и WaitForString. Этого функционала хватит на 90% (и более) выполняемых задач.
Скрипты могут работать на языке Python, JS, VBS (Visual Basic), Perl и т. д.
Python
Обычно файл с расширением «*.py»
Обычно файл с расширением «*.vbs»
Создание скрипта с помощью записи скрипта.
Позволяет автоматизировать процесс написания скрипта. Вы запускаете запись скрипта. SecureCRT записывает команды и последующий ответ оборудования и выводит Вам готовый скрипт.
а. Запустить запись скрипта:
Меню SecureCRT => Script => Start Recording Script
б. Выполнить действия с консолью (выполнить действия по настройке в CLI).
в. Закончить запись скрипта:
Меню SecureCRT => Script => Stop Recording Script…
Сохранить файл со скриптом.
Пример выполненных команд и сохраненного скрипта:
Запуск скриптов на SecureCRT.
После создания/редактирования скрипта, возникает закономерный вопрос: Как применить скрипт?
Существует несколько способов:
Запуск вручную из меню Script
Автоматический запуск после подключения (logon script)
Настройки автоматического скрипта логирования настраиваются для сохраненной сессии: Connection => Logon Actions => Logon script
Автоматический logon без использования скрипта
Существует возможность автоматического ввода имени пользователя пароля без написания скрипта, используя только встроенный функционал SecureCRT. В настройках соединения «Connection» => Logon Actions => Automate logon – необходимо заполнить несколько связок – которые подразумевают собой пары: «Ожидаемый текст» + «Посылаемые символы на этот текст» таких пар может быть много. (Пример: 1-я пара ожидание ввода имени пользователя, вторая ожидание ввода пароля, третья ожидание приглашения в привилегированный режим, четвертая пароль от привилегированного режима.)
Пример автоматического logon на Cisco ASA:
Запуск вручную с помощью кнопки в SecureCRT (кнопку еще предстоит создать и добавить в SecureCRT)
В SecureCRT можно задать скрипт – кнопке. Кнопка добавляется на специально созданную для этой цели панель.
а. Добавляем панель в интерфейс: Меню SecureCRT => View => Button Bar
б. Добавляем кнопку на панель и добавляем скрипт. – Правой кнопкой мышки щелкаем на панель Button Bar и в контекстном меню выбираем пункт «New button. ».
в. В диалоговом окне «Map Button» в поле «Action» Выбираем действие (function) «Run Script».
Указываем подпись к кнопке. Цвет для иконки кнопки. Заканчиваем настройки нажатием Ok.
Панель с кнопками очень полезный функционал.
1. Есть возможность при Logon к определенной сессии указывать какую панель по умолчанию открывать к этой вкладке.
2. Есть возможность для стандартных действий с оборудованием задать заранее заданные действия: показать show version, show running-config, сохранить конфигурацию.
К данным кнопкам не привязан ни какой скрипт. Только строка с действиями:
Настройка – чтобы при переключении на сессию открывалась необходимая панель с кнопками производиться в настройках сессии:
Для заказчика имеет смысл настроить индивидуальные скрипты для Login и переход на панель с частыми командами для вендора.
При нажатии на кнопку Go Cisco – панель переключается на Cisco Button Bar.
Примеры использования простых и продвинутых скриптов. (Практика из реальной жизни.)
Запрос данных у пользователя с помощью диалогового окна
У меня в скрипте запросов данных было 2. Это Hostname и 4-й октет IP адреса. Для выполнения этого действия – я загуглил как это сделать и нашел на официальном сайте SecureCRT (vandyke). – функционал называется prompt.
Эта часть скрипта запрашивала Hostname и цифры из последнего октета. Т. к. оборудования было 15 шт. И данные были представлены в таблице, то я копировал из таблицы значения и вставлял в диалоговые окна. Дальше скрипт работал самостоятельно.
FTP копирование на сетевое оборудование.
Данный скрипт запускал у меня командное окно (shell) и копировал данные по FTP. По завершению закрывал сессию. Использовать блокнот для этого невозможно, т. к. копирование идет очень долго и данные в буфере FTP не будут столько храниться:
Ввод username/password с помощью скрипта
У одного заказчика доступ к сетевому оборудованию напрямую был закрыт. Зайти на оборудование можно было сначала подключившись к Шлюзу по умолчанию, а с него потом на оборудование подключенное к нему. Для подключения использовался ssh клиент встроенный в IOS/ПО оборудования. Соответственно имя пользователя и пароль запрашивались в консоли. С помощью скрипта ниже, имя пользователя и пароль вводились автоматически:
Примечание: Скрипта было 2. Один для учетной записи администратора, второй для учетной записи eSIGHT.
Скрипт с возможностью напрямую дописывать данные во время выполнения скрипта.
Задачей было добавить на всем сетевом оборудовании статический маршрут. Но шлюз в интернет на каждом оборудовании был свой (и он отличался от шлюза по умолчанию). Следующий скрипт выводил таблицу маршрутизации, вводил в режим конфигурирования недописывал до конца команду (IP адрес шлюза в интернет) – эту часть дописывал я. После того как я нажимал Enter, скрипт продолжал выполнение команды.
В данном скрипте в строчке: crt.Screen.Send(«ip route 10.10.10.8 255.255.255.252 „) не дописан IP адрес шлюза и отсутствует символ перевода каретки. Скрипт ждет появления следующей строчки с символами «(config)#» Данные символы появлялись после ввода мной ip адреса и enter.
Заключение:
При написании скрипта и выполнении, должно непременно выполняться правило: Время написания скрипта и выполнения скрипта ни когда не должно быть больше, времени теоретически затраченного на выполнения этой же работы вручную (copy/paste из блокнота, написание и отладка playbook для ansible, написание и отладка скрипта python). Т. е. использование скрипта должно экономить время, а не тратить время на одноразовую автоматизацию процессов (Т. е. когда скрипт уникальный и повторения больше не будет). Но если скрипт уникальный и автоматизация со скриптом и написание/отладка скрипта занимает времени меньше чем выполнение любым другим способом (ansible, command window), то скрипт — лучшее решение.
Отладка скрипта. Скрипт растет постепенно, отладка происходит на обкате на первом, втором, третьем устройстве и к четвертому скрипт скорее всего будет полностью рабочим.
Запуск скрипта (с вводом username+password) с помощью мышки обычно происходит быстрее, чем копирование из блокнота Username и Password. Но не безопасно с точки зрения безопасности.
Другой (реальный) пример когда использование скрипта: Прямого доступа на сетевое оборудование у Вас нет. Но есть необходимость донастроить все сетевое оборудование (завести в систему мониторинга, донастроить дополнительный Username/password/snmpv3username/password). Есть доступ когда вы заходите на Core коммутатор, с него открываете SSH на другое оборудование. Почему нельзя использовать средства Ansible. — Потому что мы упираемся в ограничение по количеству допустимых одновременных сессий на сетевом оборудовании (line vty 0 4, user-interface vty 0 4) (другой вопрос как в Ansible заводить разное оборудование с одним и тем же SSH первым хопом).
Скрипт уменьшает время при длительных операциях – например копирование файлов по FTP. После окончания копирования скрипт сразу начинает работать. Человеку потребуется увидеть окончание копирования, потом осознать окончание копирования, потом ввести соответствующие команды. Скрипт это делает объективно быстрее.
Скрипты применимы там, где невозможно использовать средства массовой доставки данных: Консоль. Или когда часть данных для оборудования уникальна: hostname, management ip address. Или когда писать программу и отладку к ней сложнее, чем дописать данные полученные с оборудования во время работы скрипта. — Пример со скриптом по прописыванию маршрута, когда на каждом оборудование IP адрес интернет провайдера свой. (Мои коллеги писали такие скрипты — когда DMVPN spoke было за 3 сотни. Необходимо было изменить настройки DMVPN).
Пример из практики: Задание первоначальных настроек на новом коммутаторе через консольные порты:
А. Вставил консольный кабель в устройство.
Б. Запустил скрипт
В. Дождался выполнения скрипта
Г. Переткнул консольный кабель в следующее устройство.
Д. Если свитч не последний, перейти к пункту Б.
Итого по итогам работы скрипта:
Использованные источники.
Приложение 1: Примеры скриптов.
Пример длинного скрипта, с двумя запросами: Hostname и IP адресом. Создавался для преднастройки оборудования через консоль (9600 бод). А также для подготовки подключения оборудования к сети.
Такие скрипты обычно не нужны, но количество оборудования – 15 шт. Позволило ускорить настройку. Дальше настраивать оборудование было быстрее с помощью SecureCRT Command window.
Настройка учетной записи для ssh.
Другой пример. Настройка также через консоль.
Платное ПО: от 99$ (самая маленькая цена только на SecureCRT на один год)
Официальный сайт
1 раз покупается лицензия на ПО, с поддержкой (для обновления), потом ПО используется с этой лицензией неограниченное время.
Работает на операционных системах Mac OS X и Windows.
Есть поддержка скриптов (эта статья)
Есть Command Window
Serial/Telnet/SSH1/SSH2/Shell Операционной системы
Руководство пользователя системы
Пользователям без опыта работы в области параллельных вычислений будет полезно ознакомиться с данным руководством, в котором более подробно описана система работы на одном из первых в России кластерах. (Примечание администратора сайта)
ИПМ им. М.В. Келдыша РАН.
Отдел ИВСиЛС, сектор эксплуатации МВС.
А.В. Баранов
А.О. Лацис
C.В. Сажин
М.Ю. Храмцов
1. Общие понятия
Построение системы МВС-1000/16 с точки зрения пользователя выглядит следующим образом. Система состоит из следующих важных компонент: многопроцессорного вычислителя, управляющей ЭВМ (сервера доступа) и файлового сервера. Вычислитель состоит из вычислительных модулей – узлов, каждый из которых уникально именован в системе. Для примеров далее будет считаться, что сетевое имя сервера доступа – alpha, сетевое имя сервера – mary, имена узлов – от alpha1 до alphaN.
Задача пользователя выполняется на одном или нескольких процессорах вычислителя. Задачи могут запускаться и завершаться независимо друг от друга. Вычислитель делится между задачами динамически с точностью до узла. В то же время, отдельный узел не делится между задачами: если одна задача получила некоторый узел, другая задача воспользоваться им не сможет до завершения первой. При запуске задачи на счет она получает набор узлов с произвольными именами из числа свободных. При этом другие узлы задаче не доступны.
На файловом сервере каждый пользователь имеет свой домашний каталог /home/имя_пользователя. Сервер служит для подготовки и хранения исходных текстов программ пользователей, данных для пользовательских задач, результатов расчетов, для компиляции и подготовки самих задач.
Управляющая ЭВМ служит для доступа пользователей, а также для запуска (завершения, управления) на многопроцессорном вычислителе пользовательских задач. На управляющей ЭВМ ведется очередь задач к вычислителю. Заметим, что возможно объединение функций файлового сервера и управляющей ЭВМ на одной рабочей станции.
Старт (завершение, получение информации) задачи инициируется запуском на сервере доступа пользователем команд системы запуска (см. ниже).
2. Порядок работы пользователя
Для работы на МВС-1000/16 зарегистрированный в системе пользователь должен:
2. Зайти с использованием этого протокола на сервер доступа alpha.
Пользователю доступна оболочка Midnight Commander (напоминающая Norton), которую можно вызвать, выполнив команду:
mc –c –a
3. Установка и настройка программного обеспечения, требуемого для установления удаленного соединения со сервером доступа и пересылки на него файлов
Данный раздел предназначен для помощи вновь подключаемым к системе МВС-1000/16 пользователям Internet. Раздел содержит сведения по установке программного обеспечения, требуемого для организации связи со шлюзом.
1. Установка программы SecureCRT.
Программа SecureCRT является Windows-клиентом, реализующим протокол SSH. Данный протокол позволяет пользователям общаться с удаленной системой в режиме эмуляции терминала, при котором все передаваемые и принимаемые пользователем данные передаются в зашифрованном виде. Такое использование программы SecureCRT позволяет безопасно передавать данные на удаленную систему по незащищенным каналам передачи данных.
В стандартную поставку этой операционной системы Unix входит программа ssh, и пользователи Unix могут пропустить следующее описание установки программы SecureCRT для Windows. Процесс установки следующий:
2. Запустите программу установки scrt302.exe. Используйте все настройки, предлагаемые по умолчанию.
2. Настройка параметров программы SecureCRT.
Установленная программа является демонстрационной, и может использоваться в течение 30 дней после установки. Для того, чтобы снять данное ограничение:
1. Запустите из скопированного Вами каталога SecureCRT30/crack программу damn_scrt302.exe.
2. Введите любое имя пользователя и организации и сгенерируйте серийный номер и ключ.
3. Запустите SecureCRT. Выберите Help, затем Enter License Data.
4. Скопируйте в появившуюся форму те данные, которые Вам выдала damn_scrt302.exe.
После этого все ограничения на использование программы SecureCRT будут сняты. Помните, что Институт не несет ответственности за использование нелицензионного программного обеспечения.
Теперь, когда программа SecureCRT успешно установлена на Вашу машину, ее необходимо правильно сконфигурировать. Для этого:
1. Запустите программу SecureCRT.
2. После запуска программы выберите File, затем Connect.
3. Нажмите Alt+N – этим Вы создадите новую сессию.
4. В появившемся окне опций (Session Options), в поле Name наберите имя Вашей сессии (любое, можно на русском). В поле Protocol выберите ssh1. В поле Hostname введите Интернет-имя сервера доступа, в поле Username имя, под которым вы зарегистрированы на сервере доступа. Нажмите клавишу OK.
5. После этого созданная Вами сессия появится в списке для соединений. Выберите ее, а затем нажмите Connect.
6. При установлении соединения программа попросит Вас ввести пароль.
7. Если имя и пароль введены правильно, программа установит соединение и на экране будет виден терминал удаленного сервера, с которым Вы установили соединение.
Замечание. При первом соединении, с каждым новым сервером, программ программа будет сообщать Вам о получении нового неизвестного для нее ключа. Для того чтобы запомнить этот ключ нажмите Accept&Save.
3. Использование программы ssh для пользователей UNIX
При использовании, в качестве рабочей операционной системы, UNIX Вы можете использовать, при установлении соединения с удаленным сервером института, программу ssh. Для этого введите в командной строке:
ssh –l имя пользователя alpha.kiam.ru.
4. Копирование файлов
Для копирования файлов пользователь может воспользоваться ftp-клиентом, который доступен на сервере доступа. Копирование файлов возможно через промежуточный ftp-сервер. При этом сервер доступа может выступать только в роли ftp-клиента (не может быть сервером).
Отметим, что в составе оболочки Midnight Commander имеется встроенный удобный ftp-клиент. Порядок пользования следующий.
1. Выберите либо правую, либо левую панель меню, далее – вкладку FTP Link.
2. Наберите обращение к Вашему ftp-серверу в виде:
3. Введите пароль на Вашем ftp-сервере.
Копирование файлов возможно непосредственно с Вашей ЭВМ на сервер доступа по протоколу Z-modem с помощью программы SecureCRT. Для передачи файлов с Вашей ЭВМ на сервер доступа необходимо:
1. Соединиться с сервером с помощью SecureCRT.
2. На сервере перейти в каталог, куда будут передаваться файлы.
3. На сервере выполнить команду
rz –y –O
По этой команде SecureCRT выдаст диалоговое окно, в котором Вам предложат выбрать файлы для передачи на сервер доступа. Выберите нужные файлы и передайте их.
Для передачи файлов с сервера доступа на Вашу ЭВМ необходимо:
1. Соединиться с сервером с помощью SecureCRT.
2. В программе SecureCRT выберите Options, далее Session Options, далее File Transfer. В поле Download выберите каталог, куда будете принимать файлы, затем нажмите OK.
3. Выберите каталог, из которого будете передавать файлы.
4. На сервере наберите команду
sz –y –O
5. Система запуска задач
Задачей называется параллельная прикладная программа, предназначенная для выполнения на нескольких процессорах системы МВС-1000/16.
Задача пользователя выполняется на МВС-1000/16 определенное время (по умолчанию – 5 часов) и определенное количество раз (по умолчанию – 1). Пользователь имеет возможность самостоятельно специфицировать эти параметры. По истечении специфицированного времени задача будет снята со счета.
Каждая запущенная задача получает уникальное имя, состоящее из символьного имени задачи и ее номера, что позволяет запускать одну и ту же задачу одновременно в нескольких экземплярах. Для каждого экземпляра система создаст собственный каталог стандартного вывода.
Каждая запущенная задача контролируется специальным процессом управляющей ЭВМ – менеджером задачи. Стандартный вывод этого процесса также сохраняется в каталоге стандартного вывода.
Для автоматизации процесса запуска задачи и служит система запуска задач.
6. Пользовательский конфигурационный файл системы запуска
# Далее идет содержимое секции
# Следующая срока определяет имя каталога
# для временных файлов
# (где системе можно мусорить)
# Если имя не задано или задано неправильно
# система будет использовать каталог /tmp
# Следующая срока определяет имя управляющей ЭВМ
# Следующая срока определяет имя редактора
# В некоторых случаях, оговоренных ниже,
# система вызывает редактор для правки файлов
7. Основные принципы построения очередей
ВНИМАНИЕ! Данный раздел содержит информацию об организации системы очередей для МВС-1000/16. Просьба к пользователям внимательно ознакомиться с его содержанием и соблюдать правила постановки в очередь задач. Нарушение указанных правил может привести к тому, что Ваша задача будет вечно стоять в очереди и НИКОГДА не запустится.
Все задачи пользователей делятся на три категории – отладочные, пакетные и фоновые.
Отладочные задачи – это короткие по времени задачи, которые запускаются исключительно в целях отладки.
Пакетные задачи – это средние по времени задачи, которые производят реальные расчеты и выполняются, не прерываясь.
Фоновые задачи – задачи с большим временем счета, которые могут прерываться системой. Для фоновой задачи пользователь должен явно указать квант – минимальное время счета фоновой задачи, в течение которого задачу прерывать нельзя.
Планирование очередей в каждый момент времени производится в соответствии с параметрами текущего режима планирования. Режим планирования определяется следующими параметрами:
— дата и время включения режима;
— максимальное время, отведенное для отладочных задач;
— максимальное время, отведенное для пакетных задач;
— максимальное число процессоров, которые в сумме могут занимать все пакетные задачи;
— шкала приоритетов пользователей.
Рассмотрим каждый параметр подробнее.
Дата и время включения определяют время, начиная с которого параметры режима вступают в силу. Параметры режима действуют вплоть до включения следующего режима.
Максимальное время, отведенное для отладочных задач, определяет время счета отладочной задачи. Если пользователь хочет сообщить системе, что его задача отладочная, то он должен указать для задачи время счета, не превышающее значение максимального времени для отладочных задач. При превышении данного значения задача автоматически будет считаться пакетной.
Максимальное время, отведенное для пакетных задач, определяет время счета для пакетной задачи. ВНИМАНИЕ! Пакетные задачи, время которых превышает максимальное отведенное для пакетных задач, не будут включены в счет в текущем режиме. ЕСЛИ ВЫ ХОТИТЕ СЧИТАТЬ ДОЛГО, ДЕЛАЙТЕ ЗАДАЧУ ФОНОВОЙ!
Максимальное число процессоров для пакетных задач. Все пакетные задачи в сумме не могут занимать процессоров больше, чем значение данного параметра. Данный параметр введен для дневных режимов, чтобы обеспечить постоянное наличие свободных процессоров для отладочных задач.
Шкала приоритетов пользователей. Задачи планируются системой согласно приоритетам пользователей, т.е. задача пользователя с высоким приоритетом может посчитаться раньше, чем задача пользователя с низким приоритетом. Приоритет пользователя определяется по указанной шкале и напрямую зависит от суммарного времени счета пользователя за текущие сутки. Например, если шкала имеет следующий вид:
то это означает, что наивысшим приоритетом будут обладать задачи пользователей, которые за текущие сутки считали менее 120 минут, чуть меньшим приоритетом – тех, кто считал менее 300 минут, еще меньшим – тех, кто считал менее 600 минут и т.д. Низшим приоритетом будут обладать задачи пользователей, считавших более 1200 минут. ВНИМАНИЕ! При вычислении приоритета задачи учитывается заказываемое пользователем ее время счета.
Планирование фоновых задач осуществляется следующим образом. Пользователь должен указать квант для фоновой задачи. Система гарантирует, что если фоновая задача была выбрана на счет, то ей будет дано для счета время, не меньшее указанного кванта. По истечении кванта задача может быть снята системой со счета и перепланирована. ВНИМАНИЕ! Организацию контрольных точек и повторного старта должен обеспечить сам пользователь. Это означает, что при повторном старте фоновой задачи система не восстанавливает состояние вычислений данной задачи.
Если указанный пользователем квант не превышает максимального времени для отладочных задач, то его фоновая задача может быть включена в решение наравне с прочими отладочными задачами. Однако, при появлении в системе первой отладочной задачи, фоновая задача, по истечении кванта, будет снята в выполнения и перепланирована.
Если указанный пользователем квант не превышает максимального времени для пакетных задач, то фоновая задача планируется, как пакетная. Она уже не сможет занимать процессоры, «зарезервированные» для отладочных задач. При превышении квантом максимального времени для пакетных задач фоновая задача не сможет войти в счет в текущем режиме.
8. Подготовка и запуск программ.
Список коммуникационных сред (библиотек, трансляторов и т. п.), доступных пользователям МВС-1000/16, является открытым. Как минимум, предоставляется возможность использовать следующие средства: MPI (реализация MPICH), MPI (реализация LAM), библиотека TCP Router.
Для трансляции программ на языке С, использующих MPI, служит команда:
mpicc –с
В качестве параметров этой команды могут использоваться те же ключи, что и в команде запуска стандартного компилятора С и имена исходных файлов подлежащих трансляции.
Для трансляции программ на языке Фортран, использующих MPI, служит команда:
mpif77 –с
В качестве параметров этой команды могут использоваться те же ключи, что и в команде запуска стандартного компилятора Фортрана и имена исходных файлов подлежащих трансляции.
Если главная программа исполняемого модуля написана на С, подготовка исполняемого модуля из объектных производится с помощью команды
mpicc –o
В качестве параметров этой команды могут использоваться ключи редактора связей и имена объектных файлов и библиотек.
Если главная программа исполняемого модуля написана на Фортране, подготовка исполняемого модуля из объектных производится с помощью команды
mpif77 –o
В качестве параметров этой команды могут использоваться ключи редактора связей и имена объектных файлов и библиотек. При этом имя исполняемого модуля должно совпадать именем программы, указанным в операторе PROGRAM.
Двум поддерживаемым вариантам MPI (MPICH и LAM) соответствуют различные варианты описанных команд. По умолчанию берутся варианты, готовящие программу с использованием MPICH. Если надо подготовить программу для LAM, следует явно указывать путь к соответствующим командам:
/usr/bin/mpicc …, /usr/bin/mpif77 …
Для подготовки программы с использованием коммуникационной библиотеки TCP Router специальных команд не предусмотрено – требуется только при изготовлении исполняемого файла указать библиотеки router и pthread, например:
cc –o myprog myprog.c –lrouter –lpthread
Запуск на исполнение программы с использованием MPICH производится с помощью команды:
mpirun [параметры_mpirun. ] [параметры_программы. ] [-s ] [-host ]
Параметры команды mpirun слелующие:
интерактивная подсказка по параметрам команды mpirun.
Число процессоров, требуемое программе.
-maxtime
Максимальное время счета. От этого времени зависит положение задачи в очереди. После истечения этого времени задача принудительно заканчивается.
-repeat
После окончания работы программы задача может быть запущена еще раз. С помощью этого параметра задается число запусков задачи для повторного счета.
-quantum
Этот параметр указывает, что задача является фоновой, и задает размер кванта для фоновой задачи.
-stdiodir
Этот параметр задает имя директории в которую будут записываться протокол запуска задачи, файл стандартного вывода и имена модулей, на которых запускалась задача.
Ключи –s и –host описаны в п.0.
Для запуска программы с использованием LAM служит команда lamrun с теми же параметрами, что и mpirun.
Запускать программу следует СТРОГО для того варианта MPI, для которого она была подготовлена.
Для запуска программы с использованием TCP Router служит команда routerrun с теми же параметрами, что у mpirun и lamrun. Некоторые особенности запуска программ для Router изложены подробнее в конце настоящего документа.
9. Формат файла-паспорта задачи и запуск задачи через него
# Далее идет содержимое секции
# Следующая срока определяет имя задачи
task_name = testmod
# Следующая срока определяет имя каталога
host_directory = /usr/people/lacis/testmod/work
# Следующая срока определяет необходимое число
# процессоров для выполнения задачи
# Если указывается значение any, то число процессоров
# должно быть определено при старте задачи
cpu_count = any
# Секция не обязательная
# Время (по максимуму), необходимое для выполнения задачи,
# указывается в минутах
limit = 240
# количество повторов задачи
repeat_times = 2
# квант для фоновых задач
quant = 20
# Далее идет содержимое секции
# Здесь помещается текст командного файла,
# который будет выполнен на нулевом по счету узле,
# среди выделенных для задачи
mrunf
При запуске система проверяет корректность данных паспорта. При обнаружении ошибок выдается сообщение пользователю, а запуск останавливается.
Если пользователь задал в паспорте значение any для числа процессоров или номера консольного вывода, то система попросит пользователя явно указать значения этих параметров перед запуском задачи.
Удачно запущенная задача получает определенный номер, который добавляется к имени задачи. Это позволяет пользователю запускать одновременно запускать несколько экземпляров задачи с одним и тем же именем – система присвоит каждому экземпляру задачи уникальный номер. По завершении задачи ее номер «освобождается» и будет использован повторно.
При удачном старте система выдаст пользователю следующую информацию:
— имена свободных узлов в системе на момент запуска задачи;
— имена выделенных под задачу узлов;
— сведения о принятых системой установках по умолчанию.
Завершает выдачу сообщение об удачном старте задачи, причем в сообщении указывается присвоенный задаче номер, например:
Task “test.1” started successfully
Может случиться так, что задача не будет запущена сразу, а поставлена в очередь. В этом случае реакция системы будет следующей:
Task “test.1” was queued
10. Получение информации о запущенных задачах
Информация о запущенных пользователем задачах можно получить с помощью команды:
mps [имя_задачи.номер_задачи]
При отсутствии параметра на экран будет выдан список всех запущенных пользователем и работающих или находящихся в очереди на момент выдачи команды задач. Если задача находится в очереди, это будет отмечено словом queued рядом с именем задачи.
Параметром для команды служит имя задачи и – через точку – ее номер. При задании параметра система выдаст информацию о задаче – время старта (и завершения, если задача уже завершилась), имена узлов, на которых выполняется задача, номер процесса-менеджера задачи.
11. Завершение запущенной задачи
Завершить запущенную задачу можно командой:
mkill [имя_задачи.номер_задачи]
Параметром для команды служит имя задачи и – через точку – ее номер. Данная команда допускает задание в качестве параметра маски Unix-формата с использованием символов-джокеров. По этой команде будут завершены все задачи, имена которых удовлетворят заданной маске. Завершить все свои задачи можно командой:
mkill ‘*’
При отсутствии параметра пользователю будет выдан список всех запущенных задач и предложено ввести номер (по списку) той задачи, которую нужно завершить. Перед завершением задачи в этом случае будет задан вопрос о полном завершении задачи. Полное завершение задачи означает ее завершение без возможности повторов. В противном случае завершится только текущая итерация, и, если счетчик повторов не обнулился, задача будет запущена вновь. Это же замечание относится к команде mkill с заданным параметром – команда производит завершение лишь текущей итерации.
Безусловное полное завершение задачи происходит по команде
mterm [имя_задачи.номер_задачи]
Значение параметра данной команды аналогично mkill, только mterm вызывает полное завершение всех задач, имена которых удовлетворят заданной маске. Вызов mterm без параметров аналогичен вызову mkill без параметров.
12. Просмотр стандартного вывода задачи
Стандартный вывод (печать на экран) любого из процессов задачи можно просмотреть с помощью команды:
mout [имя_задачи.номер_задачи [что_выдавать]]
При отсутствии параметров будет предложен выбор из списка запущенных задач. При отсутствии параметра что_выдавать будет предложен вопрос. В качестве ответа можно задать либо out, что означает выдачу стандартного вывода, либо log. В случае задания log на экран будет выведен стандартный вывод специального системного процесса-менеджера задачи.
Если Вы задали параметры команде mout, то она выдаст вам запрошенную информацию, даже если задача уже завершилась на момент вызова команды.
Прервать выдачу команды mout можно нажатием клавиш Ctrl-C. Снятие вывода НЕ означает снятие задачи – задача продолжит счет.
При запуске задачи система создаст в указанном в паспорте каталоге стандартного вывода подкаталог, имя которого будет совпадать с именем запущенной задачи (включая номер через точку). В этом подкаталоге и будут непосредственно размещен файл стандартного вывода задачи. Файл стандартного вывода имеет имя output. Файл стандартного вывода процесса-менеджера имеет имя manager.log. Система сама не уничтожает эти файлы и подкаталог, зато перезаписывает их, если задача будет запущена повторно с этим же номером. После завершения задачи данные файлы полностью доступны пользователю.
При работе программ с использованием Router в файл output попадает стандартный вывод только от нулевого процесса – соответственно, только его можно просмотреть командой mout. Для стандартных выводов первого, второго и последующих процессов в том же каталоге образуются файлы output1, output2, …, соответственно. Они доступны только для ручного просмотра.
13. Получение информации о свободных процессорах
Сколько на данный момент времени в системе имеется свободных процессоров можно узнать с помощью команды:
Mfree
14. Команды работы с очередями
Постановка в очередь задачи осуществляется командами запуска задачи (mrunf или mpirun). По команде mps можно посмотреть все запущенные задачи, при этом стоящие в очереди задачи будут помечены атрибутом queued. По команде mqdel задача удаляется из очереди:
mqdel
Просмотр очереди осуществляется по команде mqinfo. Данная команда не имеет параметров, примерная информация, выдаваемая ею, выглядит следующим образом (для пользователя с именем ant):
Queue state at Wed Mar 22 12:40:07 2000
tnet.2 : ant 0* 10 1200/15
10 Mon Mar 22 13:16:09 2000
tnet.7 : ant 1* 10 15/15
10 ВНИМАНИЕ! Команда mqinfo выдает информацию о режимах и о задачах только того пользователя, который вызвал mqinfo. Информация о задачах других пользователей недоступна.
Информация о режимах начинается с ‘—‘ и содержит:
— дата и время включения режима;
— после total – общее число планируемых процессоров;
— после debug – количество процессоров, отведенное под отладочные задачи/максимальное время (в минутах) для отладочных задач;
— после packet – максимальное время (в минутах) для пакетных задач;
— после priority scale – шкала приоритетов.
—22.03.00 07:30: total–32 debug-16/15, packet–300, priority scale-(180 0 0 0 0)
Информация о считающихся задачах содержит:
— количество оставшихся повторов счета;
— количество процессоров, занимаемых задачей;
— остаток заказа общего времени счета в минутах;
— заказ кванта счета в минутах;
— количество минут до предполагаемого завершения задачи;
— предполагаемое время завершения.
Следующий пример демонстрирует считающуюся задачу img1.3 пользователя guest. Задача занимает 15 процессоров, считается последний раз (более повторов не будет), оставшееся время счета – 150 минут, задача фоновая с квантом 15 минут, будет перезапущена системой через 15 минут 2 августа 1999 года в 18 часов 3 минуты.
img1.3 : guest 0* 15 150/15 15 Mon Aug 2 18:03:16 1999
Информация о стоящих в очереди задачах отличается от информации о считающихся
задачах тем, что вместо количества минут до завершения выдается количество минут до предполагаемого старта, а вместо времени завершения — время постановки в очередь.
img1.2 : ant 1* 16 300/300
Данная команда определяет, находится ли в очереди задача с данным именем, о чем печатает сообщение пользователю.
15. Ключи выбора управляющей ЭВМ и логической подсистемы
Система запуска способна обслуживать одновременно несколько управляющих ЭВМ с несколькими вычислителями, подключенными к каждой из них. Кроме этого, система может быть поделена на несколько логических подсистем, каждая из которых также будет уникально именована. Причем с точки зрения системы запуска каждый отдельный вычислитель также будет представлять логическую подсистему.
Выбор управляющей ЭВМ задается либо в пользовательском конфигурационном файле, либо с помощью ключа –host в любой из команд системы запуска, например:
mrun tnet –host beta
запустить задачу tnet на вычислителе, подключенном к управляющей ЭВМ с именем beta
mfree –host cascade
выдать, сколько свободных процессоров на вычислителе, подключенном к управляющей ЭВМ с именем cascade.
Если к одной управляющей ЭВМ подключено несколько многопроцессорных вычислителей, то каждый такой вычислитель трактуется как отдельная система, имя которой указывается в качестве параметра с ключом –s:
Данная опция применима ко всем командам, ВНИМАНИЕ! При формировании имени запущенной задачи имя системы будет добавлено в начало! Например, следующий запуск
mrun tnet –s tms
приведет к тому, что будет запущена задача с именем tms.tnet.1. Будьте внимательны!
По умолчанию будет использована система, имя которой прописано в качестве значения параметра default_system секции [General] пользовательского конфигурационного файла
# Далее – имя управляющей ЭВМ
# Далее – имя системы на этой управляющей ЭВМ
О существующих системах и их именах справляйтесь у системного администратора. В ближайшее время планируется разработать команду, которая будет показывать существующую многопроцессорную конфигурацию, включая имена всех управляющих ЭВМ и систем, им принадлежащих.
16. Коды возврата команд системы запуска
mpirun (mrunf) – возвращает номер запущенной (поставленной в очередь) задачи, либо значение меньше 0, если авария.
mqtest – возвращает 1, если задача стоит в очереди, 0 – если задача запущена или завершена, меньше 0 – если такой задачи нет или авария.
17. Некоторые особенности запуска для TCP Router.
При использовании Router не полностью автоматизировано управление ресурсами, необходимыми для запуска.
В некоторых, довольно редких случаях это может приводить к отказам при попытке запуска программы командой routerrun, причем в файле output появится диагностика, содержащая слова “router.conf”. Если с Вами такое случилось, прочитайте все изложенное ниже, в противном случае – не читайте.
При запуске командой routerrun параллельной программы в ее текущей директории создается служебный файл с фиксированным именем “router.conf”, содержимое которого специфично для данного конкретного запуска. Пока на всех процессорах не отработает обращение к функции rf_create(), данный файл не должен ни модифицироваться, ни удаляться. Следовательно, некоторое время после запуска программы командой routerrun запуск той же командой программ из той же текущей директории невозможен. С другой стороны, время, в течение которого запуск невозможен, точному определению не поддается: теоретически ничто не мешает прикладному программисту написать программу, в которой все или некоторые процессы вызывают rf_create(), скажем, через полчаса или час после начала работы, хотя обычно речь идет все-таки о секундах.
В результате возможно появление двух проблем:
1). Вы запускаете программу из той же текущей директории сразу после запуска предыдущей, когда предыдущий файл router.conf еще существует. В этом случае запуск не произойдет, причем в файле output появится соответствующая диагностика. Требуется подождать, пока router.conf исчезнет (его автоматически удалит последний сработавший rf_create() предыдущей программы), и повторить запуск.
2). При выполнении предыдущей программы произошла авария до того, как во всех процессах проработало обращение к rf_create(). В этом случае предыдущий router.conf удалить будет некому, и Вам придется сделать это вручную, чтобы запуск из этой директории снова стал возможен.
Рекомендации по преодолению указанных трудностей:
1). Всегда начинайте Вашу программу с вызова rf_create() или ее Фортранного эквивалента. До этого вызова не выполняйте никаких рискованных или непредсказуемых по продолжительности действий, как то: обработка параметров командной строки, операции деления и умножения, файловый ввод/вывод.
2). Избегайте одновременного исполнения программ с одной и той же текущей директорией. На практике это совсем не трудно, поскольку подавляющее большинство реальных расчетных программ открывают на запись в текущей директории файлы с фиксированными именами, что делает одновременное выполнение нескольких таких программ бессмысленным.