Как сделать чтобы программа работала на сервере

Добавил пользователь Валентин П.
Обновлено: 04.10.2024

Psexec будет очень полезна для решения задач связанных с удаленным администрированием. Она позволяет удаленно выполнять команды командной строки Windows и незаметно устанавливать программы на любой компьютер в сети со своего компьютера. Эта утилита входит в состав набора инструментов командной строки PsTools.

Установка и запуск PsExec.

Утилита PsExec не требует установки. Достаточно загрузить ее в папку на любой диск и выполнять запуск из этой директории. В моем случае программа будет находиться в директории c:\pstools.

Для того, чтобы psexec беспрепятственно запустился на удаленном компьютере с Windows версии 7 и позднее, на этих самых удаленных компьютерах, должны быть включены общие административные ресурсы \C$ \D$ \IPC$ \Admin$.

Для включения административных ресурсов нужно добавить в реестр удаленного компьютера запись:

На Windows 10 административные ресурсы включены по-умолчанию.

Узнать включены ли административные ресурсы можно с помощью команды net share.

просмотр общих ресурсов командой net share

Запуск PsExec выполняется через командную строку Windows, так как утилита является консольной.

Для работы с утилитой запускаем командную строку CMD и переходим в папку с программой psexec.

Примеры использования PsExec.

Общий синтаксис запуска программы PsExec выглядит так:

Рассмотрим несколько примеров для понимания работы утилиты PsExec.

1. Узнаем конфигурацию сетевого интерфейса компьютера в сети.

Запускаем программу psexec с указанием ip-адреса удаленного компьютера и командой, которую нужно выполнить.

В этом примере запуск выполняется для компьютера, находящегося в домене и cmd работает от имени пользователя, состоящего в группе "Администраторы домена". Поэтому в параметрах запуска psexec не указаны логин и пароль администратора удаленного компьютера.

просмотр сетевых настроек удаленного компьютера с помощью psexec

Для выполнения PsExec на компьютере от имени локального администратора удаленного компьютера необходимо запустить утилиту с параметрами: -u (имя пользователя) -p (пароль пользователя).

2. Запускаем исполняемый файл со своего компьютера на удаленный.

Параметр -c используется, чтобы скопировать файл из локальной операционной системы в удаленную и запустить его там на исполнение.

запуск скрипта на удаленном компьютере с помощью psexec

Если запустить 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С

1С

1С

На этом подготовительная работа для перехода на удалённый формат закончилась. Выбираем подходящее решение для организации дистанционной работы.

Самый простой и радикальный способ для организации эффективной удалённой работы. Подойдёт в том случае, если у вас один пользователь программы 1С - например, бухгалтер работает на своём рабочем компьютере, где и лежит база. Это сработает для любого варианта 1С.

Для использования этого сервиса ваш рабочий компьютер с программой 1С должен быть всегда включён и не входить в режим сна. Если произошло отключение электричества, то он должен сам включиться. Это можно настроить, но, к сожалению, без сисадмина тут не обойтись.

1С

Его обычно отключают, чтобы никто не подключался к компьютеру извне, но при переходе на удалённый режим это хороший вариант. Это та же технология, что и удалённый рабочий стол. Можно оставить ваш рабочий компьютер в офисе включённым и подключаться к нему извне с вашего домашнего компьютера. Так можно работать со всеми вариантами 1С. Плюс этого способа – чуть проще с авторизацией, поэтому не нужно держать компьютер авторизованным на работе.

Но есть два существенных недостатка. Нужен сисадмин, самостоятельно я не рекомендую настраивать удалённый помощник. Подключение через Windows очень рискованно, его с большой долей вероятности могут взломать и зашифровать ваш компьютер. Поэтому обязательно нужно настроить VPN.

Вам понадобится внешний IP-адрес. Почти всегда провайдеры берут за него небольшую плату – до 300 рублей. При таком подключении ЭЦП оставляют на рабочем компьютере и используют её удалённо.

Этот способ условно бесплатный, если не считать внешний IP-адрес, но понадобится сисадмин, который поможет вам настроить безопасное подключение.

1С

1С

В предыдущей статье мы рассказали, как создать простого бота на Node.js, однако он работал только на локальном компьютере. Эта статья о том, как загрузить бота на сервер, запустить его и проверить, что всё работает.

Шаг 1. Выбрать хостинг

Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):

  • Google Cloud
  • Oracle Cloud
  • Amazon Web Services

Преимущество платных VPS в более высоких лимитах или их отсутствии, а также в гарантии стабильной работы сервера. Вместе с этим вы получаете активную поддержку и всегда можете рассчитывать на помощь хостинг-провайдера, если возникнут проблемы.

  1. Прогнозируемая нагрузка — зависит от сложности вашего бота и количества запросов к нему.
  2. Количество оперативной памяти — это зависит от многих факторов, как, например, уровень оптимизации кода и общий масштаб вашего проекта.

Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — Cloud-0. В будущем, если возникнет необходимость, можно перейти на более дорогой тариф.

Шаг 2. Заказать хостинг

Заказ VPS сервера

После заказа и оплаты дождёмся настройки сервера:

Настройка сервера

Реквизиты доступа к серверу

Шаг 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 уже указан по умолчанию:

Базовые настройки PuTTY

Окно с запросом логина

Вводим 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С для параллельной работы с разными версиями платформы 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.

  1. 3.Как перенести БД с платформы на платформу, без потери журнала регистрации?

После того как вы установите (смотри пункт 1.) новую версию сервера, у Вас появится желание перевести одну или все БД с текущей версии платформы (сервера) на ту, что вы только что установили.

Сделать это просто: открываем свойства БД на текущем сервере



Кроме того, открываем новый сервер:


Создаем новую БД и копируем в нее все параметры из текущей, единственное, пароль для пользователя у Вас должен быть


По окончании с текущего сервера БД удаляем


Далее заходим в папку, где ранее располагались файлы БД до переноса. Узнать это место просто:

Читайте также: