![]() |
|
Не выполняется команда системы на сервере под линуксом! | ☑ | ||
---|---|---|---|---|
0
tciban
08.08.16
✎
13:18
|
Добррого времени дня, уважаемые коллеги! И снова я и снова с глупыми вопросами про работу сервера 1С под убунтой! Помогите! Суть дела такова - 1С на сервере должна получать с некоего портала файл для дальнейшей его обработки. Сисадмины сказали делать это следующей командой: wget --user=Имя пользователя --password=\Пассворд -O /tmp/tmpbp.xlsx "http://portal.ural.croc.ru/Sale/DocLib/имя файла на портале.xlsx"
Когда выполняю команду от имени пользователя сервера 1С на терминале ручками - все ок, появляется нужный файл. Кода делаю это в конфигурации, на сервере командой ЗапуститьПриложение - файл появляется, но размер его 0 байт! Что делать? Что я делаю не так? |
|||
1
Garykom
гуру
08.08.16
✎
13:19
|
ЗапуститьПриложение != КомандаСистемы
|
|||
2
Garykom
гуру
08.08.16
✎
13:21
|
(1)+ Если хочешь дождаться пока завершится/скачает то пишешь файлик .sh (внутри твой код wget...) с присвоением ему "прав на запуск" и уже его запускаешь
|
|||
3
Garykom
гуру
08.08.16
✎
13:23
|
(2)+ Да еще правильно сделать это переназначить вывод для скрипта из стандартной консоли в файл и затем из 1С анализ файла на ошибки и т.д.
|
|||
4
tciban
08.08.16
✎
13:24
|
КомандаСистемы работает только на клиенте.
|
|||
5
tciban
08.08.16
✎
13:26
|
(3) я бы попробовал, н опознания мои в синтаксисе линукса даже не нулевые, а отрицательные. Вобщем не знаю я как это сделать. А один одмин болеет, второй убежал с горестными крикаме...
|
|||
6
Garykom
гуру
08.08.16
✎
13:28
|
(4) Я что говорил что она работает на сервере?
Намекал что у тебя в (0) "Сисадмины сказали делать это следующей командой" (5) Попроси сисадминов сделать "батник" для линукса с параметрами выходными и выходными На вход подается адрес/логин/пароль/путь_файла_xls/путь_файла_лога |
|||
7
Garykom
гуру
08.08.16
✎
13:29
|
(6) *параметрами входными и выходными
|
|||
8
tciban
08.08.16
✎
13:32
|
(6) Попробую, но есть вопрос - чем может быть неправилен вызов команды через ЗапуститьПриложение? Другую команду я уже так делал, работает. Делал конкретно ЗапуститьПриложение("unoconv -f ods "+ИмяФайла, , Истина, КодВозврата);
|
|||
9
Garykom
гуру
08.08.16
✎
13:38
|
(8) Не забыл "Истина" ?
|
|||
10
Йохохо
08.08.16
✎
13:38
|
(0) а почему \Пассворд? дописывать в лог добавьте "-a /tmp/wgeturalcroc.log" и желательно как то рандомизировать имя выходного файла, впоретесь на ровном месте. Может рано смотрите размер? может вгет в фоне еще качает
|
|||
11
Garykom
гуру
08.08.16
✎
13:39
|
(9)+ ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>)
|
|||
12
hhhh
08.08.16
✎
13:40
|
(8) твоя программа параллельно работает с ЗапуститьПриложение. Запустить приложение еще не успело даже стартовать, па ты уже тут как тут со своей обработкой, уже начинаешь обрабатывать.
|
|||
13
Garykom
гуру
08.08.16
✎
13:40
|
(10)+ Да еще с 1С77 под wine была трабла что КомандаСистемы не ждала завершения )) может тут нечто вроде такого бага
|
|||
14
tciban
08.08.16
✎
13:54
|
(10) Пассворд - это там должен пароль быть, конечно он не такой :) Все файлы удаляются по завершению обработки.
|
|||
15
Йохохо
08.08.16
✎
13:55
|
(13) ман в вгете прямо говорит, что вгет сдизайнен для работы в фоне без залогиненного юзера, он может вернуть что то и уйти в фон, -v нету. Проще лог посмотреть и нетстат
|
|||
16
tciban
08.08.16
✎
13:56
|
(9)(12) Да нет, я после wget на точке останова ждал не раз достаточное время, но не появлялся размер у файла. А вручную команду ввожк - сразу же появляется правильный файл :(
|
|||
17
Йохохо
08.08.16
✎
13:58
|
(16) выведи лог и посмотри, мб что то с кавычками и тупо ошибка
|
|||
18
tciban
08.08.16
✎
14:01
|
(17) как его вывести?
|
|||
19
Йохохо
08.08.16
✎
14:01
|
(18) добавь в команду "-a /tmp/wgeturalcroc.log"
|
|||
20
tciban
08.08.16
✎
14:09
|
(19) лог появился, как его посмотреть?
|
|||
21
Йохохо
08.08.16
✎
14:13
|
(20) в консоли nano /tmp/wgeturalcroc.log или tail -f -n 20 /tmp/wgeturalcroc.log или cat /tmp/wgeturalcroc.log
|
|||
22
tciban
08.08.16
✎
14:16
|
мда... много чего там написано оказалось. все больше со словом Unauthorized Пошел одмина ловить :)
|
|||
23
Йохохо
08.08.16
✎
14:16
|
(22) что то не экранировал правильно в команде
|
|||
24
Йохохо
08.08.16
✎
14:17
|
(23) + и админ пошлет) ошибка в коде 1с
а много потому что -a это дописывать |
|||
25
Garykom
гуру
08.08.16
✎
14:19
|
(22) ты еще пароля рута попроси... и скажи что если не даст то руткиты пойдешь искать ))
|
|||
26
tciban
08.08.16
✎
14:20
|
(23) Но что? Вот блин.
|
|||
27
Йохохо
08.08.16
✎
14:22
|
(26) обрами все параметры ' или " или "", хз. --password='DerParol'
|
|||
28
tciban
08.08.16
✎
14:22
|
(25) Да чего уж там, андроид на разных девайсах рутил и с этим справлюсь...
|
|||
29
Garykom
гуру
08.08.16
✎
14:22
|
--password=\Пассворд
тут "\" не нуна |
|||
30
arsik
гуру
08.08.16
✎
14:27
|
(0) А разве нельзя все это средствами 1С делать? Через HTTPСоединение?
|
|||
31
tciban
08.08.16
✎
14:29
|
(29) Yes!!! Это сработало!
|
|||
32
tciban
08.08.16
✎
14:30
|
(30) возможно наврное и можно. Но так по идее проще.
|
|||
33
Йохохо
08.08.16
✎
14:31
|
(31) мдя, намек в (10) недостаточно прозрачен) ну хоть поговорили
|
|||
34
arsik
гуру
08.08.16
✎
14:34
|
(32) А если где то на сервере wget не стоит? Или скрипт потеряете? Ну и лазить по всяким дебрям нужно будет, при изменении логики. В моем же случае все в одном месте и работает как в винде, так и в линуксе.
|
|||
35
arsik
гуру
08.08.16
✎
14:40
|
Соединение=Новый HTTPСоединение("portal.ural.croc.ru",,"Юзер","Пароль");
ИмяВременногоФайла=ПолучитьИмяВременногоФайла("tmp"); Соединение.Получить("/Sale/DocLib/ImyaFaila.txt", ИмяВременногоФайла); |
|||
36
tciban
08.08.16
✎
14:41
|
(35) Спасибо за совет, сейчас попробую и так
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |