Поведаю про фичу с помощью которой можно легко передавать разработчикам нужные им файлы с серверов.
Частенько меня просят скинуть какой-нибудь огрызок лога, выгрузку и т.п. Тут алгоритм простой:
- зашел на сервер по ssh
- нашел/сделал то, что нужно передать
- если файл большой, то сжать
- вспомнить синтаксис scp
- на локальной машине натыкать команду чтобы забрать себе этот файл
scp -r user@bashdayz:/tmp/nginx.log /home/user/tmp/
- скинуть файл человеку в слак/маттермост
- если файл большой, выложить его на корпоративный google drive
- скинуть человеку ссылку на файл на корпоративном диске
scp (Secure CoPy) — утилита для безопасного копирования данных между Linux-системами по протоколу SSH
Тут подходит фраза из мема: вот это ничего себе! Ладно если это делаешь раз в месяц. Но если такое происходит пару раз в неделю, то ощущаются первые нотки выгорания.
Все гениальные вещи придумали ленивые люди. А мы с тобой одни из них. Поэтому бо́льшую часть я успешно автоматизировал через bash.
А вот и сам скрипт. Обзови его trans и закинь в /usr/local/sbin. Ну и не забывай про chmod +x /usr/local/sbin/trans.
Запускается всё это безобразие так: trans <файл>
#!/bin/bash
SIZE=1000000
if [ -n "$(find "$1" -prune -size +"$SIZE"c)" ]; then
tar -czvf /tmp/$1.tar.gz $1
curl --upload-file /tmp/$1.tar.gz https://transfer.sh/$1.tar.gz
rm /tmp/$1.tar.gz
else
curl --upload-file $1 https://transfer.sh/$1
fi
Логика такая:
1. Если размер файла > 1 мб, то сжимаем
2. После сжатия загружаем файл в сервис transfer.sh
3. Подчищаем за собой
4. Если файл < 1 мб, то просто загружаем как есть в тот же сервис transfer.sh
5. После загрузки в консоль выводится ссылка для скачивания
6. Копируем полученную ссылку и передаем разработчику
7. Профит. Минимум действий, максимум удобства
Сервис transfer.sh это очень удобная и простая штука, которая позволяет обмениваться файлами с помощью curl/wget. Без регистрации и смс. Лимиты приличные 10гигов на файл, 14 дней хранятся на сервере. Есть возможность зашифровать перед отправкой и проверить на вирусы. И все это бесплатно.
А еще в curl можно передать заголовки -H "Max-Downloads: 1" -H "Max-Days: 5" и тогда файл разрешат скачать только один раз, а через пять дней он сам удалится. Пожалуй очень удобно.
Тут конечно возникает вопрос — эммм, но это же не безопасно? Конечно не безопасно, поэтому годится лишь для передачи какой-то некритичной информации. А я передаю чисто логи, в них ничего критичного нет.
Ну а если хочется передать сканы документов или реквизиты банковских карт, то в мой скрипт ты можешь встроить gpg шифрование. Либо переделать сжатие на 7z и зашифровать по максимуму. Но опять же не рекомендую, лучше передавай важные документы другим, более безопасным способом.
Мысли в слух: Вот есть корпоративный google диск, хранишь ты там абсолютно всё, включая секреты компании. Безопасно? НЕТ! Гугол давно уже у тебя всё спёр и всё про всех знает. Так что можно булки расслабить и перестать параноить. Ладно, опять в лирику ударились.
Короче бери на заметку, дорабатывай, переделывай. Можешь добавить xclip/pbcopy чтобы ссылка автоматом в буфер обмена копировалась. Ну и зайди на сайт transfer.sh и посмотри все возможности, которые они предоставляют. Там все с примерами, разберется любой.
А можно создать приватный телеграм/слак/маттермост канал, добавить туда разработчиков и в скрипте прикрепить отправку ссылки в этот канал. Тогда даже ссылку не нужно будет руками копировать и передавать разработчику, максимальная автоматизация.
Удобно? Удобно! А главное максимально просто. Увидимся!