Как отправить содержимое csv powershell в telegram

Корпорация "Центр"

Отправка сообщения в Telegram из Powershell

Уведомления давно стали неотъемлемой частью жизни и общения современных людей и уж точно айтишников. Всем нам хочется знать побольше, а особенно когда, что и где случилось, кто виноват и вообще…
Для мира IT часто бывает что в систему или малую её часть никто давно не заглядывал, по причине того что всё работает корректно и не приходит ни одного уведомления о сбоях. И как гласит золотое правило системного администратора — «не трогай пока работает».
И вот что бы вот так можно было «не трогать», необходимо точно знать что система выполняет возложенные на неё требования. Для этого можно просто настроить уведомления при каждом выполнении алгоритма. Один из удобных вариантов канала уведомлений является легендарный Telegram. Я использую его и в личных целях и как рабочий инструмент.
Несмотря на попытки обходить стороной системы и решения на базе Windows, задачи всё равно попадаются. А уж если делать, то делать качественно. Как и обычно когда была реализована логика скрипта решил разбавить функционал такой штукой как уведомление.
Так как у меня есть свой бот, то логично использовать именно его.
Сразу приведу код части скрипта, который отвечает за отправку сообщений

Немного пояснений
$token — специальный токен, присваиваемый боту при создании
$chat_id — айдишник контакта, канала или группы
$text — тут понятно, текст сообщения

Переменные $hostname, $version и $Duration у меня были определены в скрипте. Тут решил их оставить, что бы показать что из можно оформлять жирным шрифтом и курсивом.
parse_mode = ‘html’ как раз позволяет это делать. Есть ещё мод markdown. В нем принципы форматирования немного отличаются.

Как мне кажется этого вполне достаточно. Всякие красивости и стикеры это однозначно весело, но для системных уведомлений жирного и курсива вполне достаточно.

отправка содержимого txt в telegram powershell

скрипт парсит xml, выдает результат в txt файл. Надо содержимое txt отправлять в telegram.

С использованием такого кода отправляется только вручную введенный текст.

все просто и банально. $text = Get-Content "Filepath"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками telegram powershell или задайте свой вопрос.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.11.24.40828

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Отправка текстовых сообщений и файлов с консоли или скрипта в Telegram

Уже давно хотел написать эту заметку, да все руки не доходят. Ну, короче говоря, раз уж собрался писать то слушайте, вотЪ.

Бывает нужно отправить вывод команды или целые логи кому то в Telegram или просто сохранить их для дальнейших нужд. Тут начинается катавасия, текстовые редакторы, FileZilla/WinSCP (кому что), длительный и мучительный переход по иерархии директорий, перекидывание файлов туда-обратно… с scp тоже будет дольше, ручную отправку дальше desktop никто не отменял… доколе!

И тут, такая тема. Мы создаем своего telegram-бота, дальше отправляем в API Telegram текстовые сообщений или файлы, и автоматом получаем их в виде сообщений от нашего бота. Также можно создать необходимые нам группы/чаты куда мы этого бота можем добавить. Короче говоря, в чем я вижу удобство применения для себя:

Корпорация "Центр"

  • супер-удобная штука для отправки различного рода уведомлений прямо из консоли/скрипта
  • удобство передачи логов, по сути, cat напрямую в телегу

1) Пишем боту @BotFather и через него создаем своего нового бота. Там же можно настроить его имя, установить ему аватарку, и т.д. Еще важно узнать ТОКЕН нашего бота, записываем.

2) Пишеv уже нашему @боту, начинаем с ним чат, нажимаем /start

3) Дальше, нам нужно узнать параметра нашего ID нашего чата, куда мы будем отправлять сообщения (например, это наш с ним личный чат, или какой-нибудь групповой, куда добавлен наш бот). Открываем браузер и открываем там ссылку: https://api.telegram.org/bot<ТОКЕН>/getUpdates (если у вас заблокирована телега, используйте любые способы обхода блокировки &#8211; на данном этапе это не принципиально). Не закрывая вкладку браузера, пишем боту сообщение в телеге. После, обновляем вкладку браузера, и там находим искомый нами параметр. Записываем его.

Итого у нас получается два необходимых параметра :

  • token бота
  • id чата

4) А теперь проверяем отправку сообщения через браузер, подставляя наши параметры в запрос: https://api.telegram.org/bot<ТОКЕН>/sendMessage?chat_id=<ID_ЧАТА>&text=Hello%20World

Итак, сообщение получили. Переходим к отправке сообщений из консоли. Тут сразу сделаем оговорку. В РФ доступ к api.telegram.org заблокирован, и если вы настраиваете отправку данных уведомлений с какого-нибудь сервера, то обойти эту блокировку будет несколько сложнее, чем в случае с браузером на десктопе. У нас есть несколько вариантов, но тут мы рассмотрим вариант с использованием прокси-серверов. Плюсов множество, но мы остановимся на том, что нам не нужно никакого дополнительно ПО ставить на наш сервер (все что нам понадобится, это curl и cat). Итак, допустим у нас есть где-то на просторах интернета SOCKS5 прокси-сервер с авторизацией, вот через него мы и будем запрос отправлять. Если же у вас Telegram не заблокирован, то строки и параметры с использованием прокси-серверов можете игнорировать.

5) Далее, небольшая демонстрация (не забудьте подставить параметры своего прокси-сервера) по отправке тех или иных сообщений или файлов по принципу (целевая команда > передача результата в постоянный временный файл):

  • отправка выхлопа в виде текста:
  • отправка выхлопа в виде файла:
  • cat`им файл целиком (макс размер для отправки файлов ботов 20 мб):

6) Окей. Последним штрихом будет универсальный скрипт для отправки с подстановкой параметров (только подставьте ваши переменные вверху). Создаем его и погнали:

Можете скопировать в текстовом виде: tg-send

Не забудьте также сделать скрипт исполняемым, через:

Собственно, небольшое readme там уже написано в шапке. Но вот, на всякий случай, несколько примеров использования:

Текст отправляем в скобках, к файлам просто указываем полный путь.Там вшито сразу 2-а варианта отправки, в виде текста и файла, поочередно. Поэтому, иногда скрипт может на что-то ругаться на выхлопе (на отсутствие файла, например). Это можно игнорировать, главное чтобы вам приходили ваши логи и уведомления.

Ну вот собственно и все. Вариантов применения данной штуки очень много, все зависит только от вашей больной фантазии. По крайней мере, как минимум, можно избавиться наконец то от назойливых и тормознутых почтовых уведомлений. GL!

=== UPD (26.06.2020) ===

Дополню данную заметку. В связи с разблокировкой телеги в РФ, прикладываю обновленный скрипт (отправка запросов напрямую, без участия прокси-сервера):

Корпорация "Центр"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *