Зачастую работая в командной строке Linux возникает необходимость передать файл как между устройствами, так и другому пользователю. К примеру журнал работы приложения.
Для выполнения данной задачи, прекрасно подойдет сервис transfer.sh
Синтаксис следующий
1 | curl --upload-file [путь до файла] https://transfer.sh/[имя файла] |
К примеру, я хочу поделиться файлом dpkg.log из директории /var/log/
Для этого перейдем в директорию (на самом деле можно было использовать полный путь до файла) и просто загружу файл на сервер
1 2 | cd /var/log curl --upload-file dpkg.log https://transfer.sh/dpkg.log |
Теперь файл доступен по получившейся ссылке и может быть загружен на другой машине
Теперь файл можно скачать или удалить из хранилища
Мы может ограничить количество скачиваний или время хранения, просто указав параметры в виде заголовков
1 | curl -H "Max-Downloads: 1" -H "Max-Days: 5" --upload-file ./hello.txt https://transfer.sh/hello.txt |
Скачать файл, так же можно из командноq строки
1 | curl https://transfer.sh/1wByuV/hello.txt -o hello.txt |
Если необходимо загрузить несколько файлов, просто готовим список файлов, в виде текстового файла или нескольких файлов и загружаем на сервер
1 | curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/ |
Зашифровать файлы паролем с помощью gpg
1 | cat /tmp/hello.txt|gpg -ac -o-|curl -X PUT --upload-file "-" https://transfer.sh/test.txt |
Загрузить и расшифровать
1 | curl https://transfer.sh/1wByuV/test.txt|gpg -o- > /tmp/hello.txt |
Сканирование на наличие вредоносных программ или вирусов с помощью Clamav
1 2 | wget http://www.eicar.org/download/eicar.com curl -X PUT --upload-file ./eicar.com https://transfer.sh/eicar.com/scan |
Загрузите вредоносное ПО на VirusTotal.
1 | curl -X PUT --upload-file [file] https://transfer.sh/test.txt/virustotal |
Отправка файла с использование WGET
1 | wget --method PUT --body-file=/tmp/file.tar https://transfer.sh/file.tar -O - -nv |
Добавьте функцию оболочки в .bashrc или .zshrc
1 | transfer(){ if [ $# -eq 0 ];then echo "No arguments specified.\nUsage:\n transfer <file|directory>\n ... | transfer <file_name>">&2;return 1;fi;if tty -s;then file="$1";file_name=$(basename "$file");if [ ! -e "$file" ];then echo "$file: No such file or directory">&2;return 1;fi;if [ -d "$file" ];then file_name="$file_name.zip" ,;(cd "$file"&&zip -r -q - .)|curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null,;else cat "$file"|curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null;fi;else file_name=$1;curl --progress-bar --upload-file "-" "https://transfer.sh/$file_name"|tee /dev/null;fi;} |
Теперь вы можете использовать функцию
1 | transfer hello.txt |