|
Запрос на вставку данных из bash в postgresql через psql
|
|||
---|---|---|---|
#18+
Всем доброго дня Имеется утилита, которая выводит показания датчиков температуры. Нужно раз в полчаса сохранять показания этих датчиков в базу данных. Вывод утилиты: ID: 6122 - Измерение температуры... Измерение температуры завершено ROM=8d00000ae4f4b028 T=51.0625 ROM=2600000ae2cb2b28 T=61.9375 ROM=be00000ae4ba1f28 T=44.9375 ROM=2100000ae4838c28 T=78.0625 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Похоже где-то есть ошибка, из-за которой psql не может распарсить аргументы. Возможно, проблема с раскрытием переменных? Если изменить последнюю строчку на такую (навеяно этим ): Код: sql 1.
то всё работает, запрос выполняется, данные вставляются. Как всё-таки правильно вызвать psql из bash, передав ему в качестве параметров значения переменных? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2019, 15:19 |
|
Запрос на вставку данных из bash в postgresql через psql
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
Первый вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Второй вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2019, 22:48 |
|
Запрос на вставку данных из bash в postgresql через psql
|
|||
---|---|---|---|
#18+
fortressКак всё-таки правильно вызвать psql из bash, передав ему в качестве параметров значения переменных?параметры не нужны. Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2019, 08:09 |
|
Запрос на вставку данных из bash в postgresql через psql
|
|||
---|---|---|---|
#18+
Scott Tiger, Спасибо за ответ. Для моей системы (armbian) такого инструмента как truss не нашлось, но есть strace в котором можно увидеть вызов execve c параметрами. Пробуем вариант 1, как было в исходном скрипте. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Пробуем вариант 2, убрали лишние двойные кавычки возле второго аргмуента. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Тогда просто перенесём ключ "-с" в другую переменную: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Также, оказалось важно чтобы в переменной v, перед ключом "-с", не было пробелов, иначе дальнейшая команда не воспринимается. Изначально я полагал, что Код: sql 1.
будет преобразовано в строку вида Код: sql 1.
и при вызове psql ей будут переданы параметры из этой строки, например так Код: sql 1. 2. 3. 4.
Но, как видно выше, при раскрытии переменных bash(?) ведет себя по-другому (объединяя значение переменной в 1 параметр, даже если там есть пробелы): Код: sql 1. 2. 3.
Наверняка это как-то правильно называется (раскрытие переменных?). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 13:25 |
|
Запрос на вставку данных из bash в postgresql через psql
|
|||
---|---|---|---|
#18+
Андрей Панфилов, спасибо Такой способ тоже подходит: Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2019, 13:33 |
|
|
start [/forum/topic.php?fid=25&gotonew=1&tid=1481180]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 167ms |
0 / 0 |