Как сделать чтобы программа работала на сервере
Psexec будет очень полезна для решения задач связанных с удаленным администрированием. Она позволяет удаленно выполнять команды командной строки Windows и незаметно устанавливать программы на любой компьютер в сети со своего компьютера. Эта утилита входит в состав набора инструментов командной строки PsTools.
Установка и запуск PsExec.
Утилита PsExec не требует установки. Достаточно загрузить ее в папку на любой диск и выполнять запуск из этой директории. В моем случае программа будет находиться в директории c:\pstools.
Для того, чтобы psexec беспрепятственно запустился на удаленном компьютере с Windows версии 7 и позднее, на этих самых удаленных компьютерах, должны быть включены общие административные ресурсы \C$ \D$ \IPC$ \Admin$.
Для включения административных ресурсов нужно добавить в реестр удаленного компьютера запись:
На Windows 10 административные ресурсы включены по-умолчанию.
Узнать включены ли административные ресурсы можно с помощью команды net share.
Запуск PsExec выполняется через командную строку Windows, так как утилита является консольной.
Для работы с утилитой запускаем командную строку CMD и переходим в папку с программой psexec.
Примеры использования PsExec.
Общий синтаксис запуска программы PsExec выглядит так:
Рассмотрим несколько примеров для понимания работы утилиты PsExec.
1. Узнаем конфигурацию сетевого интерфейса компьютера в сети.
Запускаем программу psexec с указанием ip-адреса удаленного компьютера и командой, которую нужно выполнить.
В этом примере запуск выполняется для компьютера, находящегося в домене и cmd работает от имени пользователя, состоящего в группе "Администраторы домена". Поэтому в параметрах запуска psexec не указаны логин и пароль администратора удаленного компьютера.
Для выполнения PsExec на компьютере от имени локального администратора удаленного компьютера необходимо запустить утилиту с параметрами: -u (имя пользователя) -p (пароль пользователя).
2. Запускаем исполняемый файл со своего компьютера на удаленный.
Параметр -c используется, чтобы скопировать файл из локальной операционной системы в удаленную и запустить его там на исполнение.
Если запустить psexec без параметра -с, то указанная директория с запускаемым файлом будет запрашиваться на удаленной системе.
С параметром -с может применяться -f и -v, которые используются для того чтобы перезаписать копируемый файл, если он уже существует. Это может понадобиться, если были внесены изменения в файл и его нужно повторно запустить в удаленной системе.
3. Запуск PsExec на нескольких компьютерах.
Запуск psexec на двух или трех удаленных компьютерах можно выполнить путем перечисления их имен или ip-адресов.
Когда целевых компьютеров десятки, то перечислять их каждый раз через запятую неудобно. В этом случае можно воспользоватся параметром @ и указать текстовый файл, в котором будет задан список ip адресов компьютеров.
4. Подключение к командной строке Windows удаленного компьютера.
После запуска cmd поменялось окно приветствия - это означает, что в терминал загрузилась среда исполнения команд удаленного компьютера.
Сейчас мы можем полноценно работать с командной строкой удаленного компьютера. Для примера, наберем команду ipconfig, которая нам покажет конфигурацию сетевого интерфейса. Для выхода из удаленной консоли и возврата в свою среду используем команду exit.
Список всех параметров запуска Psexec.
@файл
Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.
-c
Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.
-d
Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.
-e
Указанный профиль учетной записи не загружается.
-f
Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.
-i
Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.
-n
Позволяет задать задержку подключения к удаленным компьютерам (в секундах).
-p
Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
-s
Удаленный процесс запускается из системной учетной записи.
-u
Позволяет указать необязательное имя пользователя для входа в удаленную систему.
-v
Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.
-w
Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).
-x
Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).
Системы 1С делятся на следующие категории:
Теперь чуть подробнее про каждую из этих систем.
Управляемые формы – это самый современный вариант 1С. Его визуально можно узнать по интерфейсу – всё жёлтое и красивое.
На этом подготовительная работа для перехода на удалённый формат закончилась. Выбираем подходящее решение для организации дистанционной работы.
Самый простой и радикальный способ для организации эффективной удалённой работы. Подойдёт в том случае, если у вас один пользователь программы 1С - например, бухгалтер работает на своём рабочем компьютере, где и лежит база. Это сработает для любого варианта 1С.
Для использования этого сервиса ваш рабочий компьютер с программой 1С должен быть всегда включён и не входить в режим сна. Если произошло отключение электричества, то он должен сам включиться. Это можно настроить, но, к сожалению, без сисадмина тут не обойтись.
Его обычно отключают, чтобы никто не подключался к компьютеру извне, но при переходе на удалённый режим это хороший вариант. Это та же технология, что и удалённый рабочий стол. Можно оставить ваш рабочий компьютер в офисе включённым и подключаться к нему извне с вашего домашнего компьютера. Так можно работать со всеми вариантами 1С. Плюс этого способа – чуть проще с авторизацией, поэтому не нужно держать компьютер авторизованным на работе.
Но есть два существенных недостатка. Нужен сисадмин, самостоятельно я не рекомендую настраивать удалённый помощник. Подключение через Windows очень рискованно, его с большой долей вероятности могут взломать и зашифровать ваш компьютер. Поэтому обязательно нужно настроить VPN.
Вам понадобится внешний IP-адрес. Почти всегда провайдеры берут за него небольшую плату – до 300 рублей. При таком подключении ЭЦП оставляют на рабочем компьютере и используют её удалённо.
Этот способ условно бесплатный, если не считать внешний IP-адрес, но понадобится сисадмин, который поможет вам настроить безопасное подключение.
В предыдущей статье мы рассказали, как создать простого бота на Node.js, однако он работал только на локальном компьютере. Эта статья о том, как загрузить бота на сервер, запустить его и проверить, что всё работает.
Шаг 1. Выбрать хостинг
Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):
- Google Cloud
- Oracle Cloud
- Amazon Web Services
Преимущество платных VPS в более высоких лимитах или их отсутствии, а также в гарантии стабильной работы сервера. Вместе с этим вы получаете активную поддержку и всегда можете рассчитывать на помощь хостинг-провайдера, если возникнут проблемы.
- Прогнозируемая нагрузка — зависит от сложности вашего бота и количества запросов к нему.
- Количество оперативной памяти — это зависит от многих факторов, как, например, уровень оптимизации кода и общий масштаб вашего проекта.
Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — Cloud-0. В будущем, если возникнет необходимость, можно перейти на более дорогой тариф.
Шаг 2. Заказать хостинг
После заказа и оплаты дождёмся настройки сервера:
Шаг 3. Загрузить бота
Приступим к загрузке бота на сервер. Это можно сделать разными способами — с помощью FTP, SFTP, панели управления или, к примеру, rsync. Мы выберем самый быстрый вариант — SFTP, так как для него нужна только возможность подключения к серверу по SSH, которая обычно присутствует на всех VPS сразу после заказа.
Мы подключимся к серверу с помощью FileZilla. Укажем IP-адрес сервера, а также логин root и пароль в настройках клиента:
При первом подключении появится окно с предупреждением:
Переходим на директорию выше ( . ), затем в каталог /opt и создаём папку с произвольным названием (мы выбрали keksbot ):
Переходим в созданную папку и загружаем файлы index.js и package.json :
Шаг 4. Зайти на сервер по SSH
Теперь нужно подключиться к серверу по SSH, чтобы установить Node.js и запустить бота. Для этого необходим SSH-клиент, например Putty, XShell, Bitvise SSH или любой другой. Функциональность программ может немного отличаться, но большой разницы в использовании между ними нет. Мы выбрали PuTTY как самый популярный и бесплатный SSH-клиент для Windows.
Открываем PuTTY, указываем IP-адрес сервера, порт 22 уже указан по умолчанию:
Вводим root , после чего появится запрос пароля, при вводе которого символы не отображаются. Не стоит переживать, это особенность работы Linux — пароль нужно вводить вслепую. Чтобы не делать этого вручную, можно скопировать пароль и нажать правой кнопкой мыши в окне PuTTY. Убедитесь, что вы скопировали пароль без пробелов!
Шаг 5. Установить Node.js
Теперь займёмся установкой. Обратите внимание, что команды для установки Node.js отличаются в зависимости от операционной системы. В наших примерах указаны команды для Ubuntu, Debian и CentOS — мы будем вводить их в консоли SSH-клиента.
Если вы не знаете, какая ОС установлена на сервере, можете проверить это командой:
Вывод будет примерно таким:
Нас интересует поле NAME , в котором указано название дистрибутива.
Помимо Node.js нам понадобится утилита Screen, чтобы бот продолжал работать, когда мы отключимся от сервера. Также нужен менеджер пакетов npm для установки зависимостей.
для Ubuntu/Debian
Подождём завершения установки и проверим, что Node.js работает:
Если в ответе отобразилась версия установленного пакета, то всё прошло успешно.
Теперь перейдём в папку с файлом бота и установим зависимости:
Возможные ошибки при установке, и как их решить
При установке могут появиться ошибки вида:
Обычно это связано с тем, что у пользователя недостаточно прав для установки пакетов на сервере, либо предыдущий процесс установки завершён некорректно.
В первом случае необходимо убедиться, что вы подключились к серверу под именем суперпользователя root — при необходимости зайдите на сервер заново.
Во втором случае для решения проблемы нужно завершить процесс менеджера пакетов и удалить lock -файлы. Чтобы это сделать, запустите команды:
для Ubuntu/Debian
После этого попробуйте заново запустить установку.
Шаг 6. Запустить и проверить бота
Пришло время запустить бота. Для начала запустим утилиту Screen простой командой:
Перейдём в каталог с файлом бота:
После этого можем запустить бота:
Заходим в Telegram, проверяем бота:
Отлично! Всё работает.
Теперь можно отключиться от сервера и закрыть окно PuTTY, бот продолжит работу.
Шаг 7. Обеспечить автоматический перезапуск бота
Большинство современных Linux-систем используют systemd для управления службами, поэтому следующая инструкция подойдёт для последних версий Ubuntu, Debian и CentOS.
Для начала отключим бота командой:
Нам понадобится создать собственную службу, для этого в каталоге /lib/systemd/system создадим файл:
В нашем случае это будет файл /lib/systemd/system/keksbot.service . В файл поместим следующий код:
Текст в некоторых строках необходимо отредактировать относительно вашего проекта. Разберём строки, на которые нужно обратить внимание.
В поле Description указывается описание службы. Вы можете указать в ней краткую информацию о боте.
Команда для запуска бота.
Её следует поменять, если имя скрипта вашего бота отличается от index.js . В таком случае нужно будет указать следующие значения:
Папка со скриптом, который мы запускаем. В нашем случае это /opt/keksbot/ .
Сохраняем файл. В примерах далее мы будем использовать имя службы keksbot — если вы указали другое имя, не забудьте поменять его. Для установки службы воспользуемся командами:
Теперь запустим бота командой:
Готово. Теперь бот будет автоматически запускаться при старте сервера или при возникновении ошибок. Можно проверить это, завершив процесс node:
1. Как запустить более одной службы 1С для параллельной работы с разными версиями платформы 1С: 8.0, 8.1, 8,2 8.3 и т. д.
2. Как перезапустить сервер?
3. Как перенести БД с платформы на платформу, без потери журнала регистрации?
Практические советы по настройке и работе с сервером 1С 8
- 1.Как запустить более одной службы 1С для параллельной работы с разными версиями платформы 1с 8.0, 8.1, 8,2 8.3 и т. д.
При установке 1С на сервере мы делаем следующее:
При установке второй версии для параллельной работы установка аналогичная за исключением пункта:
Далее готовим строку:
Мы используем: sc create
Строка выглядит как:
sc create " " binpath -srvc -agent -regport 1641 -port 1640 -range 1660:1591 -d \" ""
- указываем имя службы. Главное так, чтобы и вы, и те, кому предстоит поддерживать сервер 1С, могли в дальнейшем, легко ее идентифицировать.
" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d \"
Строку службы все как обычно:
Если порт 1540 уже занят (если один сервер в виде службы уже установлен), то ставим следующий или любой, какой понравится, например, вместо:
1541 -port 1540 -range 1560:1591
1641 -port 1640 -range 1660:1691
Вместо указываем строку, где планируем расположить папку с файлами сервера. Рекомендую не хранить эту папку на диске С:\, Разбивайте диск сервера на 2. Под систему и под сервер 1С. Тогда в случае, если файлы журнала регистрации займут все место на диске, Вы без проблем зайдете на сервер и почистите их. Чего нельзя сказать, если вы своими файлами журнала регистрации займете все место на системном диске.
Далее заходим в командную строку от админа:
И выполняем команду:
sc create "Агент сервера 1С:Предприятия 8.Х.Х.ХХХХ" binpath= "\"C:\Program Files\1cv8\8.Х.Х.ХХХХ\bin\ragent.exe\" -srvc -agent -regport 1741 -port 1740 -range 1760:1591 -d \"E:\1C_Bases\srvinfo_8_Х_Х_ХХХХ\""
В итоге получим службу:
Если службы не появилось, нажмите кнопку Обновить.))))
Если передумали, то можно удалить только что созданную службу:
где - имя службы
Далее заходим в службу:
И в этом случае можно почистить кэш (это бывает полезно при разного рода непонятном поведении 1С)
Удалить эти файлы можно только при остановленной службе.
Если Вы остановили службу, а файлы не удаляются, значит, нужно зайти в Task manager и проверить его на наличие зависших:
В случае обнаружения выполнить end task.
- 3.Как перенести БД с платформы на платформу, без потери журнала регистрации?
После того как вы установите (смотри пункт 1.) новую версию сервера, у Вас появится желание перевести одну или все БД с текущей версии платформы (сервера) на ту, что вы только что установили.
Сделать это просто: открываем свойства БД на текущем сервере
Кроме того, открываем новый сервер:
Создаем новую БД и копируем в нее все параметры из текущей, единственное, пароль для пользователя у Вас должен быть
По окончании с текущего сервера БД удаляем
Далее заходим в папку, где ранее располагались файлы БД до переноса. Узнать это место просто:
Читайте также: