|
Помогите расковырять "свой" http-сервис (Linux, Rust, загрузка документов) | ☑ | ||
---|---|---|---|---|
0
zelenprog
13.12.23
✎
15:31
|
Здравствуйте!
В организации был запущен http-сервис. Сервер на Линуксе, доступ к серверу есть. Этот http-сервис принимает электронные документы от внешней системы и складывает их где-то у себя на сервере. К этому http-сервису подключается база 1С8 с помощью регламентного задания, посылает REST-запрос и получает от этого http-сервиса документы. Этот механизм обмена делали спецы, которые уже не работают. С некоторых пор этот http-сервис возвращает код состояния 502 и не "отдает" документы. Программа, реализующая запрос, предположительно написана на Rust-е. Помогите пожалуйста разобраться как это все работает. Я с веб-технологиями мало знаком. Исходники все есть. Только надо понять какой из этих исходников "отрабатывает" этот запрос. Где это можно найти? Где искать? Что смотреть? |
|||
1
Волшебник
13.12.23
✎
15:31
|
Хороший тамада и конкурсы интересные...
|
|||
2
DGorgoN
13.12.23
✎
15:37
|
Пойти что ли на форум хирургов записаться.. Сегодня прям повальные ветки беловолосых людей. Ищите специалиста кто поможет это расшифровать и переделывайте на 1С и учите запросы - это не сложно и позволяет практически любой разумный сервис организовать без всяких го и раст..
|
|||
3
Valdis2007
13.12.23
✎
15:41
|
(0) листинги исходников в студию!
|
|||
4
PLUT
13.12.23
✎
15:45
|
(0) > возвращает код состояния 502
этож неспроста |
|||
5
Лефмихалыч
13.12.23
✎
15:48
|
502 значит, что:
1. у тебя есть какой-то веб-прокси, который принимает запросы извне и редиректит их по известным ему правилам куда-то еще 2. сервис, который за проксёй должен обрабатывать эти конкретные запросы, сдох и не отвечает проксе на запросы Не поможет тут тебе ни кто. По телефону роды не принимаются. |
|||
6
Волшебник
13.12.23
✎
15:49
|
(3) Нахер нам листинги на Rust? Пусть сами ковыряются в этой "ржавчине"
|
|||
7
Лефмихалыч
13.12.23
✎
15:51
|
да и не поможет листинг исходников сервиса потому, что проблема не в коде, а в чем-то, из-за чего собранный сервис не может подняться: место кончилось где-то или упало то, от чего зависит этот сервис (бд какая-нить или еще какой ресурс).
Тут надо в логи смотреть, но логов автор не найдет, исходя из (0) |
|||
8
DGorgoN
13.12.23
✎
15:52
|
(5) Я думаю там пересадка генномодифицированного сердца от пришельцев с Нибуру вблизи от сверхмассивной черной дыры. Можно полгода потратить на изучение того что посторонний спец нашкодил. Я это по опыту говорю когда свои поделия 2-3 летней давности смотрю.
|
|||
9
PLUT
13.12.23
✎
15:53
|
(0) > Помогите пожалуйста разобраться как это все работает
в одной конторе начальник, если хотел разобраться - как это все работает - выключал неведомую херню и ждал, когда и откуда начнут вопить... ясно понятно. теперь включаем. стало яснее и понятнее |
|||
10
Лефмихалыч
13.12.23
✎
15:53
|
(2) организуй на 1С сервис, способный обработать 150000000 запросов в минуту без всяких го и растов за конечный бюджет
|
|||
11
zelenprog
13.12.23
✎
15:55
|
Нашел вот такой конфиг:
server { listen 80; server_name ххх.ххх.ххх.ххх; access_log /var/log/nginx/ххх.ххх.ххх.ххх.log main; location / { proxy_pass http://127.0.0.1:3369/; proxy_read_timeout 300s; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; } } Также нашел log-файл. Вот что в нем: ---------------- 192.168.1.131 - - [13/Dec/2023:15:41:47 +0300] "GET /api/v1/orders/list/today HTTP/1.1" 502 173 "-" "1C+Enterprise/8.3" "-" ---------------- Видно, что он принял запрос от 1С 8.3. |
|||
12
PLUT
13.12.23
✎
15:55
|
(9) особое веселье - когда учетную запись какого-нибудь админа отключают в AD, а под его учеткой куча магических процессов и служб крутится :)))
|
|||
13
DGorgoN
13.12.23
✎
15:59
|
(10) Ну тут ведь еще размер запроса имеет значение. Но вообще ничего сложного не вижу. Хотя тут конкретно могут быть варианты с брокерами.
|
|||
14
Лефмихалыч
13.12.23
✎
16:00
|
(11) ну, вот, на порту 3369 что-то раньше обрабатывало запросы. Сейчас это что-то не запущено, по этому запросы улетают в барабан
|
|||
15
Лефмихалыч
13.12.23
✎
16:01
|
(13) вообще ничего сложного, просто 1С не осилит такой объем даже идемпотентных запросов.
|
|||
16
PLUT
13.12.23
✎
16:02
|
(0) > Этот механизм обмена делали спецы, которые уже не работают.
возможно абонплата закончилась, нужно баланс спецам пополнить |
|||
17
zelenprog
13.12.23
✎
16:11
|
(14) А можно как-то найти, что обрабатывало запросы на порту 3369?
Еще на этом сервере работает Postgres. Скорее всего, данные хранятся на нем. А http-сервис их просто оттуда получает запросом и отправляет в 1С. |
|||
18
Arbuz
13.12.23
✎
16:22
|
(17) Не может прокся гнать с 80 порта на постгрю напрямую )))
Телепатирую, что на 3369 висел тот самый сервис на раст, что как раз и |
|||
19
Asmody
13.12.23
✎
16:23
|
(17)
$ ss -anp | grep '3369' если линукс постарше, то же самое через netstat |
|||
20
Asmody
13.12.23
✎
16:26
|
но скорее всего, сервис просто грохнулся.
посмотреть список грохнувшихся сервисов вот так: systemctl list-units --type service --state failed |
|||
21
Arbuz
13.12.23
✎
16:26
|
(0) Правильно тут говорят: самый простой (но не самый лучший, возможно) путь — посмотреть структуру базы постгрес и дёргать запросами прямо из 1С.
|
|||
22
Asmody
13.12.23
✎
16:26
|
а так - список всех сервисов
systemctl list-units --type service и ищи среди них что-нибудь адекватное |
|||
23
Asmody
13.12.23
✎
16:27
|
(21) неправильный это путь - дергать 1Ской что не попадя
|
|||
24
zelenprog
13.12.23
✎
16:28
|
(19) >> $ ss -anp | grep '3369'
Ничего не выдает. А как можно найти, что должно быть запущено на этом порту? |
|||
25
Arbuz
13.12.23
✎
16:31
|
(20) А если там нет системди? А всё на апстарте? Ну, или поделие это стартует скриптом из какого-нибудь эрси инит?
(23) Миллионы мух не могут ошибаться )) |
|||
26
Asmody
13.12.23
✎
16:30
|
(24) никак. на нем может быть запущено что угодно.
собственно, остаётся только (20) - искать, кто не запустился, а должен был |
|||
27
Asmody
13.12.23
✎
16:31
|
(25) процентов 80, что там есть systemd.
время упоротых красноглазиков, что сервера на генту держат, потихоньку проходит |
|||
28
Asmody
13.12.23
✎
16:32
|
хуже, если оно в докере стартовало. тогда его долго можно искать. грепать докерфайлы по диску
|
|||
29
Лефмихалыч
13.12.23
✎
16:36
|
docker ps -a
покажет все контейнеры, включая потухшие. Но я думаю, что там нету никакого докера |
|||
30
zelenprog
13.12.23
✎
16:56
|
Для запуска всех этих сервисов есть скрипт start_all_services.sh:
--------------- #!/bin/bash cd /home/sysadmin/Development/ for service in xxx yyy zzz do echo `date` Starting $service... cd $service rm nohup.out nohup ./start_service.sh& cd .. done --------------- Второй скрипт для "конкретного" сервиса: --------------- #!/bin/bash # Скрипт для запуска сервиса RUST_LOG=info cargo run --bin xxx_service --release --------------- |
|||
31
Лефмихалыч
13.12.23
✎
16:57
|
что внутри ./start_service.sh ?
|
|||
32
zelenprog
13.12.23
✎
16:59
|
(31)
#!/bin/bash # Скрипт для запуска сервиса RUST_LOG=info cargo run --bin xxx_service --release |
|||
33
Лефмихалыч
13.12.23
✎
16:59
|
а, ну, запусти start_all_services.sh
оно или поднимется или в консоль тебе ошибок наблюёт - уже будет, что обсуждать |
|||
34
Лефмихалыч
13.12.23
✎
16:59
|
файл xxx_service - это вот и есть бинарная эгзекутабля твоего сервиса
|
|||
35
Лефмихалыч
13.12.23
✎
17:00
|
ты порево какое-то раздаешь на порту 3369 штоля?
|
|||
36
Лефмихалыч
13.12.23
✎
17:02
|
а cargo - это как раз та эбанина, которая сервис запускает
https://rurust.github.io/cargo-docs-ru/guide.html |
|||
37
zelenprog
13.12.23
✎
17:14
|
(33) >> а, ну, запусти start_all_services.sh
Запускали уже много раз. Все равно что-то не срабатывает. (34) >> файл xxx_service - это вот и есть бинарная эгзекутабля твоего сервиса Ага. Только это не бинарная, это файл "xxx_service.sh" вот с таким содержимым: Подробности------------- use log::info; use static_strings::*; use yama::server::start_server; #[tokio::main] async fn main() { init(); info!("{}", START_MSG); start_server().await; } fn init() { env_logger::init(); } mod static_strings { pub const START_MSG: &str = "Запуск сервиса"; } ---------------- |
|||
38
Garykom
13.12.23
✎
17:38
|
(37) "use yama::server::start_server;"
есть исходники? |
|||
39
Лефмихалыч
13.12.23
✎
17:34
|
вот это руками запусти
$ RUST_LOG=debug cargo run --bin xxx_service --release или так $ RUST_LOG=debug && cargo run --bin xxx_service --release |
|||
40
Лефмихалыч
13.12.23
✎
17:40
|
какое-то тупое дрочево (хотя, для сервиса с префиксом ххх_ это, видимо, логично). А что таки мешает обратиться к тем очкодавам, которые экструдировали из себя этот ххх_сервис?
|
|||
41
DGorgoN
13.12.23
✎
17:38
|
(15) Сомневаюсь что у учетной системы можно реально используемых запросов сделать ну разве что у вас не Газпром какой нибудь. Ну и тут понятно что брокеров придется использовать.
|
|||
42
Лефмихалыч
13.12.23
✎
17:39
|
(41) ни о чем разговор
|
|||
43
MyNick
14.12.23
✎
07:32
|
(12) Если под учеткой "админа" крутятся процессы и службы, то это не админ, а обычный рукопоп.
|
|||
44
zelenprog
14.12.23
✎
08:50
|
(40) >> А что таки мешает обратиться к тем очкодавам, которые экструдировали из себя этот ххх_сервис?
Их нету. Уехали. Поначалу отвечали на телефон и электронную почту. Потом перестали отвечать. |
|||
45
Волшебник
14.12.23
✎
09:14
|
(44) Напишите новый сервис
|
|||
46
Garykom
14.12.23
✎
09:15
|
файлик yama.rs где то есть?
|
|||
47
Garykom
14.12.23
✎
09:17
|
(44) И правильно сделали.
А если контора рассталась с ключевыми спецами без приобретения равнозначной замены и передачи всех дел - ССЗБ. |
|||
48
novichok79
14.12.23
✎
09:28
|
(0) хорошая задача, чтобы выучить Rust.
открываете RustRover и вперед. можно вооружиться книжкой Rust в действии, будет хорошая строчка в резюме, если вам зайдет и решите уйти из 1С. в целом код читается, я как-то переписывал rust механизм на golang, в одном пет-проекте. |
|||
49
zelenprog
14.12.23
✎
09:36
|
(39) >>$ RUST_LOG=debug cargo run --bin xxx_service --release
выдает ошибку: error: no override and no default toolchain set |
|||
50
novichok79
14.12.23
✎
09:37
|
(49) вангую что растовский тулчейн проебан или не установлен в контейнере. но это неточно разумеется.
|
|||
51
novichok79
14.12.23
✎
09:38
|
||||
52
novichok79
14.12.23
✎
09:39
|
и да, что же там в yama.rs такое лежит. исходники в студию.
|
|||
53
novichok79
14.12.23
✎
09:40
|
и вообще дрочь какая-то, cargo run именно компилит и запускает бинарь. а почему сразу не скомпилить и выкинуть ненужный никому тулчейн?
|
|||
54
Garykom
14.12.23
✎
09:43
|
(53) чтобы исходники всегда были
и по сути они настройки так меняют чтобы не выносить их например порт 3369 походу захардкожен в яме |
|||
55
novichok79
14.12.23
✎
09:46
|
(54) странная логика. можно исходники просто куда-нибудь положить рядом. есть шанс что их проебут, но если их проебут, плохо все с процессами в команде мечты.
какое-то вырезание гланд через прямую кишку. менять настройки через компиляцию - а почему не env файл хотя бы? я уж не говорю про загрузку из какого-нибудь читаемого yaml файла для нужной среды, но уже CI/CD делать надо. видимо спецы не догадались. это как делать сервис и запускать его через go run. такое себе. |
|||
56
novichok79
14.12.23
✎
09:46
|
и да, почему нет нормальных логов? шо там за гении CRUD'ы такие пишут с пробросом настроек через код.
|
|||
57
novichok79
14.12.23
✎
09:51
|
||||
58
Garykom
14.12.23
✎
09:54
|
(57) "пи..ц" - это потерять людей (имхо зарплату не подняли), которые разбираются в инфраструктуре
а потом удивляться что нанятые взамен на большую зарплату (чем была у спецов до) но ниже уровнем сотрудники "не шмогла" |
|||
59
novichok79
14.12.23
✎
09:56
|
(58) никого не защищаю, но спецы ли это или бомжи с вокзала (зачеркнуто)? "спецы", которые не смогли ни CI/CD нормальный сделать, развернуть какой-нибудь Gitlab для своего проекта, ни файлы настроек добавить.
|
|||
60
Garykom
14.12.23
✎
09:57
|
(59) им столько не платили ))
|
|||
61
Garykom
14.12.23
✎
09:58
|
(59) да и зачем CI/CD на одном инстансе, к тому же вероятно это сделанная на коленке заплатка
которую конечно же планировали переписать но как обычно |
|||
62
novichok79
14.12.23
✎
09:59
|
(60) я бы изначально не согласился. но это я.
еще и напейсали на расте, на котором полторы вакансии на hh. рукалицо прост. |
|||
63
Garykom
14.12.23
✎
09:59
|
само название "яма" ("use yama") намекает
|
|||
64
novichok79
14.12.23
✎
09:59
|
(61) можно было использовать чтобы потом прикручивать к 1Сине той же всякие новомодные штучки с ИС.
но видимо контора мечты не про это. |
|||
65
novichok79
14.12.23
✎
10:00
|
(63) кек. согласен.
|
|||
66
Garykom
14.12.23
✎
10:00
|
(62) Таки Rust это очень перспективная штука, которая в будущем имеет все шансы заменить C++
Но для подобных бэк/сервисных задач конечно лучше подходит Golang |
|||
67
novichok79
14.12.23
✎
10:02
|
(66) ну это так говорят.
а на деле на рынОчке 1,5 вакухи. |
|||
68
zelenprog
14.12.23
✎
10:21
|
Ребята, подождите, не разбегайтесь, через 10 мин исходники выложу.
|
|||
69
zelenprog
14.12.23
✎
10:22
|
(50) >> вангую что растовский тулчейн проебан или не установлен в контейнере. но это неточно разумеется.
А куда этот тулчейн мог пропасть, если ничего с сервером не делали? |
|||
70
novichok79
14.12.23
✎
10:26
|
(69) не, там на стековерфлоу было написано что такое может быть из-за сетевой ошибки при установке тулчейна.
|
|||
71
zelenprog
14.12.23
✎
10:45
|
Вот ссылка на всю папку с исходниками yama:
https://cloud.mail.ru/public/qVUY/eJznKe9cB Из папок ...\target\debug\ и ...\target\release\ я удалил подпапки "build\" и "deps\", так как они очень большие по размеру. А это ссылка на файл yama_service.rs: https://cloud.mail.ru/public/PtEF/V5u5khRNR Вот его содержимое: Подробностиuse log::info; use static_strings::*; use yama::server::start_server; #[tokio::main] async fn main() { init(); info!("{}", START_MSG); start_server().await; } fn init() { env_logger::init(); } mod static_strings { pub const START_MSG: &str = "Запуск сервиса"; } |
|||
72
Garykom
14.12.23
✎
11:01
|
(71) какая хрень!
данные из файликов с ftp засовывает в базу postgresql и по базе уже делает rest api |
|||
73
Garykom
14.12.23
✎
11:04
|
(72)+ имхо прямо из 1С с ftp работай с файлами
|
|||
74
Garikk
14.12.23
✎
11:05
|
(66) он перспективен, но на нем нельзя писать проекты где нет уверенности в поддержке дальнейшей
я тут вручную не зная раст homeassistant просто собирал-обновлял на малинке, это пи..ц какойто ассистант скажете на питоне? ага, а еще там какаято чертовшина на расте которая не компилится...а ты даже с мануалом хрен поймёшь чё там за грузовая ржавчина ему нужна и где |
|||
75
Garikk
14.12.23
✎
11:06
|
(0) а что в логах сервака кстати? /var/log/syslog например?
|
|||
76
Garykom
14.12.23
✎
11:07
|
(74) питон не умеет в низкий уровень
и вот они раст и заюзали лучше раст чем плюсы |
|||
77
Garykom
14.12.23
✎
11:08
|
(74) кстати нафига ты ha собирал? почему просто в докере готовый не запускать?
|
|||
78
novichok79
14.12.23
✎
11:08
|
(74) звучит так как будто знатные попытки спариться с мужчиной ))))
|
|||
79
novichok79
14.12.23
✎
11:10
|
(76) мне показалось что обновленный С++ без легаси с какими-то фишками из Go.
Google какой-то Carbon недавно выкатил, но язык без либ - это как приставка без игр. |
|||
80
Garykom
14.12.23
✎
11:12
|
(71) прикольно что порт 3369 захардкожен
а database_url (строка подключения к postgre) берут из переменной окружения |
|||
81
Garykom
14.12.23
✎
11:17
|
(80)+ и кстати должна быть еще какая то внешняя хрень
которая с ftp файлики закидывает в базу PostgreSQL в таблички типа ftp_mirror |
|||
82
Garikk
14.12.23
✎
11:16
|
(77) у меня в голове docker и rpi с трудом огромным сочетаются
я вообще Home Assistant Operating System (HAOS) поставил в итоге когда задолбался руками собирать |
|||
83
Garykom
14.12.23
✎
11:17
|
(82) haos как вариант но не для всех железок сборки есть
а в докере можно на любой |
|||
84
novichok79
14.12.23
✎
11:17
|
(81) а че типа из 1Сины нельзя фтп файлики качать? очень странная архитектура. выглядит так, как будто чуваки решили изучить rust на реальном проекте.
|
|||
85
Garykom
14.12.23
✎
11:18
|
(84) yama.7z\yama\docs\ загляни ))
|
|||
86
Garikk
14.12.23
✎
11:21
|
(78) ну яжпрограммист, я разобрался ;)
вообще мне всегда интересно такое всякое самостоятельно собрать чтобы понимать чё там и как работает, но мейнтейнеры ha те еще приколисты и любители пихать самые новые версии либ в зависимости не описывая как их ставить (83) ну у меня rpi 3, для него вполне есть (84) +100, так и есть, у нас так Golang, Ruby и C# в чисто питонячии проекты затаскивали..сейчас шарповый проект в одно лицо так тяну, ктото отличился из моих предшественников, видимо адептов "питон это плохо" |
|||
87
Garykom
14.12.23
✎
11:20
|
(84) да согласен странный выбор стека для решения
логично для этого отдельную самописку на 1С наваять было или даже встроить в свою основную конфу |
|||
88
IVT_2009
14.12.23
✎
11:22
|
(74) Тоже поимел эту любофф. С аналогичным исходом. Ушел на докер и пока все наладилось. Думал, что я не догоняю - оказалось, что так задумано.
|
|||
89
d4rkmesa
14.12.23
✎
11:27
|
(48) Очень смешно. ) Это примерно как выучить C++.
|
|||
90
Лефмихалыч
14.12.23
✎
11:34
|
(89) на самом деле вовсе нет. Во-первых, раст гораздо более современный и простой язык, чем плюсы. Во-вторых, у автора есть исходники и в действительности ему нужно научиться только собирать и запускать уже готовое. И даже собранные бинари у автора есть, а не хватает какого-то там окружения
|
|||
91
zelenprog
14.12.23
✎
11:35
|
(75) >> а что в логах сервака кстати? /var/log/syslog например?
Нету такого файла "syslog". Но зато в этой папке есть файл ".\ngnix\error.log", в нем вот что: 2023/12/14 11:13:49 [error] 1616#0: *2270 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.1.131, server: yama.corp.pskovmol.ru, request: "GET /api/v1/orders/list/today HTTP/1.1", upstream: "http://127.0.0.1:3369/api/v1/orders/list/today", host: "yama.corp.pskovmol.ru" |
|||
92
Garykom
14.12.23
✎
11:35
|
(90) "не хватает какого-то там окружения" - это примерно как для пользователя 1С, умеющего в СКД
"не хватает какого то там сервера 1С" |
|||
93
Garykom
14.12.23
✎
11:37
|
(91) это ошибка nginx'а, который как обратный прокси тут
|
|||
94
Garykom
14.12.23
✎
11:39
|
(91) и да спалился АО «Псковский молочный комбинат»
|
|||
95
novichok79
14.12.23
✎
11:39
|
кстати контора мечты - АО «Псковский молочный комбинат»
|
|||
96
novichok79
14.12.23
✎
11:39
|
(94) одновременно
|
|||
97
novichok79
14.12.23
✎
11:41
|
(89) я сужу по себе - вот после Java и Golang как бы довольно быстро въехал в то, чтобы читать код в Rust.
естественно, если прог не знает ничего, кроме 1С, как бы плохи дела )) |
|||
98
novichok79
14.12.23
✎
11:42
|
(91) а nginx там зачем, если оно просто качает файлики?
|
|||
99
Garykom
14.12.23
✎
11:44
|
(98) nginx там вероятно чтобы с localhost наружу отдавать на другой порт и с ssl
|
|||
100
zelenprog
14.12.23
✎
11:44
|
(85) >> yama.7z\yama\docs\ загляни ))
А что там интресного? Там какая-то описана платформа EXITE Evolution. (94),(95) Ага. Сильно не пиарьте нигде. Я вроде пытался удалить ссылки на контору. Где я промахнулся? |
|||
101
Лефмихалыч
14.12.23
✎
11:45
|
(100) ты выложил исходники целиком, включая всю историю коммитов
|
|||
102
novichok79
14.12.23
✎
11:45
|
(99) ну да, я тоже подумал на балансировку или SSL, но блеать, почему так нах...
как будто бы сделано через anus. скачал себе папОчку, сейчас гляну исходники. |
|||
103
Garykom
14.12.23
✎
11:46
|
(100) >А что там интресного? Там какая-то описана платформа EXITE Evolution.
Это описание формата файлов xml которыми через ftp обмениваются |
|||
104
novichok79
14.12.23
✎
11:47
|
const PORT: u16 = 3369;
я не плачу, это просто дождь... |
|||
105
zelenprog
14.12.23
✎
11:48
|
(97) Я около 7 лет писал на Borland С++, затем небольшие программы на C#, много на Foxpro, хранимые процедуры на SQL.
Но это были десктопные программы. С веб-технологиями не сталкивался. Поэтому мне трудно понять логику этого кода на Rust-е. |
|||
106
Garykom
14.12.23
✎
11:48
|
(104) ага я тоже
наколенная поделка, нормально |
|||
107
zelenprog
14.12.23
✎
11:51
|
(72) >> данные из файликов с ftp засовывает в базу postgresql
(73) >> + имхо прямо из 1С с ftp работай с файлами (84) >> а че типа из 1Сины нельзя фтп файлики качать? Ткните плиз, где этот код, который читает данные с ftp? Какой там указан адрес ftp? |
|||
108
novichok79
14.12.23
✎
11:51
|
хз, будь я 1сником, я бы переделал на 1С + затащил бы как подсистему в расширении.
обычное такое переводят на другие ЯП, если только 1Сина не тянет по скорости. но тут судя по всему, обычное скачивание файлов, прокидывание их в постгри и выставление наружу сервиса. |
|||
109
Лефмихалыч
14.12.23
✎
11:53
|
(108) у автора 7.7
|
|||
110
novichok79
14.12.23
✎
11:54
|
прикольно, там даж гит дифф есть незакоммиченный
|
|||
111
Garykom
14.12.23
✎
11:55
|
(107) нет там этого кода что и удивительно
и нет адреса ftp есть только табличка ftp_mirror что намекает вместе с мануалом "платформа EXITE Evolution" |
|||
112
Garykom
14.12.23
✎
11:56
|
(111)+ или я невнимательно изучил код
или уже писал должно быть еще что то внешнее, что синхронизирует ftp и базу pgsql в таблички ftp_mirror |
|||
113
zelenprog
14.12.23
✎
11:56
|
Сервис запустился!
После многократных запусков файлов "start_service.sh", "stop_service.sh". Так я и не понял, что ему не нравилось. Может быть зависит от пользователя, под которым запускается? |
|||
114
zelenprog
14.12.23
✎
11:58
|
(109)
В данном случае эти документы закачиваются в 1С8 "Комплексная автоматизация". У нас есть базы и на 7.7 и на 8.3. |
|||
115
Лефмихалыч
14.12.23
✎
11:59
|
а следующая проблема будет "оно-то запускается, но быстро падает потому, что постгря не запущена"
|
|||
116
zelenprog
14.12.23
✎
11:59
|
(108) Я тоже хочу переделать на 1С, хотел бы сделать расширение.
Но для этого надо разобраться откуда все это тянется. |
|||
117
Garykom
14.12.23
✎
12:01
|
(113) скорее всего переменные среды
когда вручную запускаешь от юзера и при старте системы |
|||
118
zelenprog
14.12.23
✎
12:01
|
(115) postgres работает, я к нему из командной строки подключился еще вчера.
Сервис пока работает нормально, в 1С8 документы подтянулись. |
|||
119
Garykom
14.12.23
✎
12:02
|
(116) ищи откуда берутся файлики, с какого ftp
мануал у тебя есть, найди контакты какой адрес ftp и логин с паролем |
|||
120
novichok79
14.12.23
✎
12:04
|
да, тоже не нашел что заполняет ftp_mirror.
но то что незакомиченный дифф 4 года назад, как бы намекает шо всю команду послали найух. |
|||
121
Garykom
14.12.23
✎
12:11
|
(120) и правильно сделали что послали
решение овер как понял с ftp работает RestExClient и MOVEitFreely FTP которые описаны в файле EXITE_DocsDescription_XML.pdf оно тупо на локальный диск файлы кидает как в папке yama\test\ мануал есть, осталось только на 1С наваять код работы с этими файликами |
|||
122
Garikk
14.12.23
✎
12:18
|
(120) или команда послала работодателя
|
|||
123
Garykom
14.12.23
✎
12:20
|
(122) возможно они друг друга стоят
|
|||
124
novichok79
14.12.23
✎
12:34
|
если что можно попробовать обратиться к нему
PS D:\Downloads\yama> git log commit 5c8a922d4575489fc6779768fc870d29fd9a818c (HEAD -> master) Author: Tishechkov Kirill <[email protected]> Date: Thu Dec 10 11:14:24 2020 +0300 Обрабатывается цена с НДС если она указана в заказе. |
|||
125
Garykom
14.12.23
✎
12:41
|
(124) Юрьевичу? Сисадмину? Которого почетной грамотой наградили?
|
|||
126
novichok79
14.12.23
✎
12:43
|
ахаха. ну может чувак знает чего-то, хотя вряд ли он ответит ))
|
|||
127
zelenprog
14.12.23
✎
12:49
|
Нашел в кроне вот такую команду:
*/5 * * * * cd /home/sysadmin/Development/legacy/ftp_2_db/ && ./start_service.sh > /dev/null 2>&1 Понятно, что запускается еще один сервис, который скорее всего и качает файлы с ФТП в базу postgre. Только не понял, что обозначают последние "2>&1"? |
|||
128
Garykom
14.12.23
✎
12:52
|
||||
129
Garykom
14.12.23
✎
12:53
|
хм угадал насчет второго сервиса
вот там уже должен быть адрес фтп и логин/пароль |
|||
130
novichok79
14.12.23
✎
12:53
|
поток ошибок (stderr) будет направлен туда же, куда и стандартный вывод (stdout), то есть в /dev/null.
|
|||
131
novichok79
14.12.23
✎
12:53
|
проще говоря Tishechkov Kirill сделал так, что если даже были ошибки при запуске фтп-хи вы об этом никогда не узнаете.
удобно ёпта! |
|||
132
novichok79
14.12.23
✎
12:55
|
содержимое в студию, зря чтоли мы тут рабочее время тратим ))) бесплатно кстати.
|
|||
133
zelenprog
14.12.23
✎
13:00
|
(130) А как надо исправить строку, чтобы направить вывод в файл? И желательно разделить "нормальные" сообщения и ошибки.
(132) Содержимое чего? |
|||
134
stix2010
14.12.23
✎
13:01
|
(0)..был у нас толмач с немчины, ему переводить, а он лыка не вяжет. Ну в кипятке его и сварили...
|
|||
135
novichok79
14.12.23
✎
13:10
|
start.sh, но это походу и есть yama_service.
ты заменил xxx, но скинул весь git diff, поэтому сначала было непонятно. есть еще что-то, что наполняет папку с xml файлами и таблицу ftp_mirror, я не вижу в коде где в нее вставляется файл. там уже сравнивается содержимое таблицы и файлов в папке. но как они туда попадают хуй его знает. и вообще 2 сервиса на 1 базу, ну это пиздец антипаттерн какой. |
|||
136
novichok79
14.12.23
✎
13:11
|
(133) убрать перенаправление в dev/null.
*/5 * * * * cd /home/sysadmin/Development/legacy/ftp_2_db/ && ./start_service.sh папка ftp_2_db наверное и содержит что-то еще. что ты нам не скидываешь. |
|||
137
Garykom
14.12.23
✎
13:12
|
(135) >есть еще что-то, что наполняет папку с xml файлами и таблицу ftp_mirror
/home/sysadmin/Development/legacy/ftp_2_db/ |
|||
138
Garykom
14.12.23
✎
13:13
|
(136) >папка ftp_2_db наверное и содержит что-то еще. что ты нам не скидываешь.
хочешь узнать логин/пароль? прикольно если они там тоже захардкожены |
|||
139
novichok79
14.12.23
✎
13:15
|
оффтоп: бля, ну я покекал.
типа заанонил, но скинул гит дифф, которым в пару кликов можно отменить эти xxx. |
|||
140
novichok79
14.12.23
✎
13:16
|
(138) по крайней мере к БД пароли уже засвечены. терять нечего.
|
|||
141
zelenprog
14.12.23
✎
13:25
|
(139) ну я не знал что такое "гит дифф", теперь понял
|
|||
142
zelenprog
14.12.23
✎
13:26
|
(136) Перенаправление в кроне исправил на файл "xxx.log".
Надо крон перезапускать? Ща выложу исходники ftp2db. |
|||
143
Garykom
14.12.23
✎
13:27
|
(142) исправил то надеюсь через "crontab -e" ?
|
|||
144
novichok79
14.12.23
✎
13:32
|
(142) ты же типа каждый раз перезаписываешь xxx.log? а не дополняешь? просто если дополняешь, то его надо будет удалять, чтобы он не заполнил весь диск.
|
|||
145
zelenprog
14.12.23
✎
13:45
|
(143) Не, вручную отредактировал. А шо? Нельзя?
Под рутом отредактировал файл sysadmin. Вроде работает, файл пишет. |
|||
146
zelenprog
14.12.23
✎
13:42
|
(144) Да, перезаписываю.
Вот что он выдает: ------------------- Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache WARN rustc_metadata::locator no metadata found: failed to decompress metadata: /home/sysadmin/Development/legacy/ftp_2_db/target/release/deps/libproc_macro_hack-b1067107119c7e20.so WARN rustc_metadata::locator no metadata found: failed to decompress metadata: /home/sysadmin/Development/legacy/ftp_2_db/target/release/deps/libproc_macro_hack-34eb81dff47866c8.so ... WARN rustc_metadata::locator no metadata found: failed to decompress metadata: /home/sysadmin/Development/legacy/ftp_2_db/target/release/deps/libasync_trait-72d81f5e9d37abf7.so WARN rustc_metadata::locator no metadata found: failed to decompress metadata: /home/sysadmin/Development/legacy/ftp_2_db/target/release/deps/libasync_trait-7976db04f3e9a81d.so Finished release [optimized] target(s) in 0.11s Running `target/release/start_service` [2023-12-14T10:25:02Z INFO start_service] Запуск синхронизации файлов [2023-12-14T10:25:29Z INFO start_service] Синхронизировано 0 файлов [2023-12-14T10:25:29Z INFO start_service] Завершение синхронизации файлов --------------- Щас просто файлов еще новых нету, поэтому "синхронизировано 0 файлов". |
|||
147
zelenprog
14.12.23
✎
13:43
|
В какой папке лежит гит дифф? Я ее удалю, чтобы не палить контору и бедного разраба.
|
|||
148
novichok79
14.12.23
✎
13:46
|
ты нас троллишь походу.
что лежит в /home/sysadmin/Development/legacy/ftp_2_db? |
|||
149
novichok79
14.12.23
✎
13:46
|
(147) .git
|
|||
152
zelenprog
14.12.23
✎
13:51
|
А что за файл nohup.out?
Он же тоже как-то используется для вывода сообщений? Чем вывод в nohup.out отличается от перенаправления вывода в кроне? |
|||
154
zelenprog
14.12.23
✎
14:12
|
Ссылка на исходники ftp2db:
https://cloud.mail.ru/public/nnDZ/Ut4KntQCG Контору и разраба не палите! |
|||
156
Волшебник
14.12.23
✎
18:53
|
Все прощены ради решения проблемы компании, которая бьётся за Россию-Русь.
|
|||
157
Garykom
14.12.23
✎
19:27
|
(154) какой ужас
let ftp_server = env::var("FTP_SERVER").expect("Не установлена переменная окружения FTP_SERVER - адрес ftp сервера"); let ftp_user = env::var("FTP_USER").expect("Не установлена переменная окружения FTP_USER - имя пользователя ftp"); let ftp_password = env::var("FTP_PASSWORD").expect("Не установлена переменная окружения FTP_PASSWORD - пароль пользователя ftp"); |
|||
158
Garykom
14.12.23
✎
19:34
|
зачем сохранять настройки в файлах? (сарказм)
когда можно прямо в переменные окружения засунуть да только если другой еще сервер ftp будет что делать? и общее впечатления о коде куча лишнего, надергано по кускам с разных стековерфлоу и гитхаба, короче этакий студент-стайл |
|||
159
Волшебник
14.12.23
✎
19:32
|
(158) настройки в файлах приняты в Linux как стандарт
|
|||
160
Garykom
14.12.23
✎
19:33
|
(159) именно
но данное решение не использует настройки в файлах и даже настройки из ключей запуска |
|||
161
Garykom
14.12.23
✎
19:37
|
printenv короче
|
|||
162
Волшебник
14.12.23
✎
19:40
|
(160) Короче, "ржавое" решение?
|
|||
163
Garykom
14.12.23
✎
19:48
|
(162) Угу желтое еще, от зеленого программиста
|
|||
164
d4rkmesa
14.12.23
✎
20:15
|
Забавно, чувак, видимо, сделал с костылями интеграцию с EDI-системой Exite Evolution. Помню, лет 10 назад с ней сталкивался, интеграция была своего рода ftp-клиентом, которая при старте перебирала сотни xml-ок в папке и постоянно докачивала новые. В типовом виде это работало отвратительно. Лучшее, что можно с этим сделать - перейти на какой-нибудь "Контур".
|
|||
165
Garykom
14.12.23
✎
20:52
|
(164) какие то ограничения на удаление скачанных xml-ек?
|
|||
166
d4rkmesa
14.12.23
✎
21:06
|
(165) Чистить архив можно было, но даже сотня xml-к уже минуты перебирались, чтобы заполнить список электронных документов.
|
|||
167
zelenprog
15.12.23
✎
09:39
|
(164) >> чувак, видимо, сделал с костылями интеграцию с EDI-системой Exite Evolution
Интеграция с Exite была когда-то давно. Потом перешли на Leradata. Сейчас исходники качают данные с Leradata. |
|||
168
zelenprog
15.12.23
✎
09:42
|
Еще такой вопрос.
Похоже, что postgres доступен только "внутри" на серваке. Со своего |
|||
169
zelenprog
15.12.23
✎
09:47
|
... рабочего компа я не смог к нему подключиться.
В интернете прочитал, что надо у posgres-а какие-то специальные настройки сделать, чтобы он был доступен извне, в файлах postgresql.conf, pg_hba.conf. |
|||
170
DGorgoN
15.12.23
✎
09:50
|
(169) Вы ведь аппендицит не будете лечить по интернету своими силами я надеюсь. Самом собой там можно много настроек сделать только зачем постгри голой попой наружу выставлять? Но если уж хочется - то еще и роутер есть или как там у вас интернет устроен.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |