Вопрос или проблема
Существует ли команда, такая как:
echotonet "это"
или
cat file.txt > echonet
которая позволила бы легко вставлять текстовые документы на сервис такой, как paste.debian.net?
Я часто использую paste.debian.net, чтобы извлекать на некоторых машинах куски скриптов, которые слишком длинны для написания в оболочке и редактирования в визуальной среде, такой как Windows или Ubuntu.
Я загружаю их с помощью классической команды wget:
wget -O namefile.sh https://paste.debian.net/some_path_to_the_paste_in_raw_format
Очень часто, однако, возникает необходимость извлечения данных, например, для отладки или когда нужно вставить много строк логов здесь или на форумах.
Легкая для использования команда, которая выгружает полный текстовый файл или архивирует каталог и возвращает короткую ссылку, была бы золотым решением.
На мой взгляд, команда wetransfer могла бы быть решением, но, возможно, существуют и другие варианты, такие как подходящий debian пакет для этого.
Я имею в виду, для вашего упомянутого paste.debian.net, существует несколько клиентов, на которых имеется ссылка с сайта.
Дебы содержат pastebinit
, который вы можете использовать, он достаточно удобен. Обычно я не забочусь достаточно об установке его; то, что он делает, «маленькое» настолько, что curl
делает это достаточно хорошо;
curl -F file=@myfile https://0x0.st
для загрузки myfile
, или command | curl -F file=@- https://0x0.st
для загрузки вывода command
.
Конечно, если вы нуждаетесь в этом чаще, добавление следующего в ваш .bashrc
или .zshrc
(в зависимости от используемой оболочки) дало бы вам удобный инструмент:
function share() {
if [[ $# -eq 1 ]]; then
local output="$(curl --progress-bar -F "file=@$1" https://0x0.st)/$(basename "$1")"
else
local output="$(curl --progress-bar -F "file=@-" https://0x0.st)/stdout"
fi
# проверьте, запускаемся ли мы в терминале и установлена ли у нас утилита qrencode
if [[ -t 1 ]] && command -v qrencode >/dev/null; then
# показать QR код
qrencode -t ANSIUTF8 "${output}"
fi
printf "%s\n" "${output}"
}
Заметьте, что вы можете просто использовать scp
для копирования ваших интересующих файлов на SSH сервер под вашим контролем; или разместить их в облачном файловом корзине; существует много недорогих провайдеров. Не все логи и файлы безопасно загружать публично!
Ответ или решение
Да, в Debian существует способ отправки текстовых данных на такие сервисы, как paste.debian.net, с использованием командной строки, однако "эха в сеть" в привычном понимании команды нет.
Теория
Основная задача заключается в том, чтобы упростить процесс загрузки текстовых файлов на такие сервисы, без необходимости использования графических интерфейсов. Это особенно актуально для решения задач удалённой отладки и передачи больших объемов логов и скриптов. Существует несколько инструментов, таких как pastebinit
, однако его установки можно избежать, воспользовавшись функциональностью curl
.
Пример
Чтобы загрузить файл на сторонний сервис, вы можете использовать curl
, который поддерживает отправку файлов методом POST. Пример команды загрузки файла на https://0x0.st следующий:
curl -F file=@myfile https://0x0.st
Для отправки данных, полученных на выходе команды, достаточно воспользоваться следующим примером:
command | curl -F file=@- https://0x0.st
Чтобы сделать использование curl
более удобным, можно создать функцию в вашем профиле .bashrc
или .zshrc
, что позволит загружать файлы или данные прямо из командной оболочки с минимальными усилиями. Пример функции:
function share() {
if [[ $# -eq 1 ]]; then
local output="$(curl --progress-bar -F "file=@$1" https://0x0.st)/$(basename "$1")"
else
local output="$(curl --progress-bar -F "file=@-" https://0x0.st)/stdout"
fi
# Проверка наличия терминала и инструмента qrencode
if [[ -t 1 ]] && command -v qrencode >/dev/null; then
# Отображение QR кода
qrencode -t ANSIUTF8 "${output}"
fi
printf "%s\n" "${output}"
}
Применение
Функция share
значительно облегчает процесс обмена файлами, обеспечивая удобство и скорость передачи данных без дополнительных инструментов. Кроме того, сервисы, подобные 0x0.st
, предоставляют короткие URL для полученных данных, что упрощает их дальнейшую передачу.
Обратите внимание на важность контроля доступа: многие файлы и журналы могут содержать конфиденциальную информацию и не должны быть выкладываться в общий доступ. Рассмотрите возможность использования защищенных передатчиков данных, таких как scp
или облачные хранилища, чтобы гарантировать безопасность информации.
Таким образом, вы можете использовать curl
для решения задачи отправки данных на paste.debian.net, не устанавливая дополнительные пакеты, и одновременно обеспечивая безопасность передаваемой информации.