Отправка файла с сервера себе в Telegram

Я использую Telegram по назначению. Но иногда, опираясь на крутые возможности его Bot API, невозможно обойти стороной облегчения своей жизни. Как-то уже в блоге я писал пост про скрипты резервного копирования в Telegram, которые у нас крутятся на небольших проектах и уже несколько раз конкретно спасали наши жизни и жизни наших проектов.

Мне очень часто приходится выдергивать какие-нибудь файлы с серверов (своих и клиентских) и передавать дальше через телеграм. Например дампы тестовых БД, docker-compose файлы и многое другое. Долгое время я качал файлы через winscp и перекладывал в телеграм кому надо. Но когда файл большой это неудобно — пока скачаешь, пока закинешь.

Небольшая история

С клиентом покупали https сертификат ему на проект и надо было передавать с сервера csr файл, для последующей его обработки. Сервер находится за vpn, ходить напрямую через WinSCP было неудобно и лень. И я решил попробовать отправить файл через телеграм сам себе. Сработало:)

Также, пару месяцев назад я таким образом передавал дамп тестовой базы данных новому разработчику и понял что способ реально рабочий и начал пользоваться им регулярно. Я даже сначала начал писать бинарник на Go, но на полпути понял, что вопрос решается простым BASH скриптом на 5 строк с использованием curl. Сам скрипт можно увидеть ниже.

Сам скрипт

Для его работы вам необходимо указать свой Bot Token и Chat Id, куда отправлять сам файл. На этом все:)

Дальше, для удобства, можно сделать alias

alias tgsender="/home/zvinger/tgsender.sh"

И отправлять файлы можно простой командой

tgsender filename.json

И файл окажется у вас в личке от вашего бота!