Как загрузить файл через командную строку

Обновлено: 21.11.2024

Необходимо передавать файлы между серверами? Конечно, вы можете загрузить свой любимый [S]FTP-клиент. Может быть, вы знакомы с scp, поэтому вы ищете его. Хотя оба являются правильными решениями проблемы, все же есть одна программа передачи, которая лидирует в плане скорости, и это rsync .

Большая часть скорости обеспечивается алгоритмом быстрой проверки, который используется по умолчанию. Поскольку он проверяет наличие различий, он не будет перемещать файлы, которые не изменились. Более того, файлы, которые он определяет как измененные, будут отправлять только различия, а не весь файл.

Возможно, вы не обязательно заметите это ускорение при первом переносе. Но при последующих передачах сравнение будет ограничивать количество передаваемых файлов. Если вы работаете с гигабайтами данных в куче файлов, это будет настоящим спасением.

Начало работы

Для начала настоятельно рекомендуется иметь доступ к удаленному серверу для отправки файлов на него и с него.

Как уже упоминалось, в этом руководстве будет рассказано об использовании команды rsync, которая в наши дни довольно стандартна для macOS и Linux. Если он у вас не установлен, обратитесь к своему любимому диспетчеру пакетов, чтобы установить его.

В дополнение к тому, что rsync установлен на вашем локальном компьютере, вам также необходимо установить его на удаленном компьютере. Очевидно, что если он не установлен, вам нужно будет установить его, чтобы продолжить работу дома.

Небольшой отказ от ответственности

По умолчанию rsync попытается синхронизировать целевой каталог, чтобы он выглядел точно так же, как исходный. Это означает, что существует деструктивный элемент, о котором вам нужно знать.

При синхронизации двух каталогов, если в месте назначения есть файл, которого нет в источнике, этот файл будет удален.

Это может быть очень желательно, но в сценариях, когда вы хотите сохранить файлы в месте назначения, а также скопировать новые файлы из источника, вы захотите передать -a или --archive аргумент.

Этот аргумент является псевдонимом для нескольких других аргументов (7 или около того), которые подразумевают рекурсию, а также принудительное сохранение файлов. В нем не учитывается сохранение жестких ссылок, но расчет этих конкретных различий влияет на скорость.

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

Между вами и мной, я делаю около 90% rsync с аргументами -avz . Это позволяет мне копировать каталоги благодаря рекурсии и обеспечивает безопасность вышеупомянутого сохранения.

-v или --verbose добавляют немного больше вывода и, следовательно, ясности, а -z или --compress добавляют дополнительный прирост скорости передачи за счет сжатия файлов.

В следующих примерах будут использоваться эти аргументы.

Локальное копирование файлов

Стоит отметить, что rsync позволяет передавать файлы как локально, так и между удаленными компьютерами.

Из-за того, как rsync обрабатывает различия, перемещая только то, что было изменено, это может значительно сэкономить время по сравнению с использованием cp , в то время как все файлы будут скопированы.

Чтобы передать файл между двумя каталогами, вы можете сделать следующее:

Если вы не укажете имя определенного файла, вместо этого вы можете скопировать весь каталог:

Загрузка файлов с локального компьютера на удаленный сервер

Как и в примере, при локальной работе порядок вещей остается прежним.

На этот раз адресатом будет удаленная система. Вы можете указать это просто как имя хоста или IP-адрес или объединить его с учетной записью пользователя, если она отличается от учетной записи вашего локального пользователя.

Полный формат включает имя пользователя , символ @, имя хоста, a : и путь на удаленном сервере, на который мы передаем файлы.

Соедините все вместе, и это будет выглядеть так:

Конечно, пользователь, на которого вы ссылаетесь на сервере, должен иметь правильные разрешения на запись в каталог.

Загрузка файлов с удаленного сервера на локальный компьютер

Чтобы перенести файлы с удаленного сервера на наш локальный компьютер, все, что нам нужно сделать, это поменять местами источник и место назначения в нашем списке аргументов из нашего предыдущего примера:

Заключение

Как уже упоминалось, вышеупомянутые примеры составляют большую часть моего использования rsync как локально, так и между удаленными серверами.

Как и большинство простых, но мощных инструментов командной строки, rsync имеет массу дополнительных параметров, которые помогут вам избавиться даже от самых сложных проблем с передачей файлов.

Готовы узнать больше? Поднимите ноги, запустите man rsync и потратьте некоторое время на изучение всех входов и выходов rsync .

Хотите ускорить процесс загрузки и обмена файлами в Linux? Вот как использовать Transfer.sh из командной строки.

Как правило, общий доступ к файлам включает в себя вход в хранилище, поиск файла вручную и его загрузку через графический интерфейс пользователя веб-браузера или приложения. Хотя время, потраченное на эти промежуточные этапы, может показаться не таким уж большим, оно продолжает накапливаться каждый раз, когда вы хотите загрузить файл или поделиться им.

Но совместное использование файлов больше не должно быть утомительным. С терминалом Linux вы можете сделать это в один миг. Благодаря таким инструментам, как transfer.sh, для загрузки файла достаточно просто ввести команду на вашем терминале.

Что такое Transfer.sh?

Transfer.sh – это бесплатная платформа, позволяющая легко и быстро обмениваться файлами через оболочку Linux. Загрузить файл так же просто, как запустить команду cURL или функцию оболочки с файлом, который вы хотите загрузить, в качестве параметра. Вы также можете использовать эти команды в Windows 10, запустив на ней оболочку Linux bash.

Вот некоторые важные функции, которые предлагает Transfer.sh:

  • Не требует графического интерфейса, использует командную строку.
  • Загружайте файлы размером до 10 ГБ.
  • Файлы хранятся только 14 дней.
  • При необходимости зашифруйте файлы с помощью GPG перед передачей.
  • Ограничьте количество загрузок и количество дней, в течение которых файл будет доступен.

Загрузка файла через cURL

Клиентский URL (cURL) — это инструмент командной строки, используемый для передачи данных на сервер и с сервера с использованием различных сетевых протоколов. Загрузка файла через cURL и transfer.sh — простой процесс. Все, что вам нужно сделать, это открыть терминал Linux и использовать следующий синтаксис для загрузки файла:

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

При запуске команды вы получите URL-адрес, которым вы можете поделиться с другими людьми, чтобы они могли загрузить загруженный вами файл.

Вы можете настроить приведенную выше команду, чтобы изменить имя и расширение загруженного файла следующим образом:

В приведенном выше примере cURL переименовал файл hello.txt в test.md перед загрузкой. При переходе по ссылке для загрузки вам будет предложено загрузить файл test.md вместо исходного файла.

Загрузка через функцию оболочки

Несмотря на то, что команда cURL довольно проста, вы можете пойти еще дальше и сделать ее еще проще, создав функцию оболочки. Затем вы можете использовать эту функцию оболочки, чтобы заменить всю команду cURL одним словом.

Для начала перейдите в каталог /home на вашем компьютере с Linux и откройте файл .bashrc или .zshrc в зависимости от используемой оболочки. Не стесняйтесь использовать любой текстовый редактор Linux на ваше усмотрение. Вставьте приведенную ниже функцию оболочки в конец файла и сохраните ее после завершения.

Чтобы функция оболочки работала, вам придется закрыть существующие экземпляры терминала и запустить новый. Кроме того, вы можете запустить source ~/.bashrc, если вы используете оболочку bash, или source ~/.zshrc, если вы используете оболочку Z. Теперь вы можете загружать файлы с помощью команды переноса из терминала Linux.

Совместный доступ к файлам в Linux стал проще

Хотя Transfer.sh — отличная утилита для получения общего URL-адреса для скачивания ваших файлов, она не может полностью заменить ваше облачное хранилище. Он удобен для временного обмена файлами, так как файлы хранятся максимум 14 дней.

Для более длительного личного хранения вы можете обратиться к поставщикам облачных хранилищ. Не волнуйтесь. Многие поставщики облачных услуг предлагают уровень бесплатного пользования, который вы можете использовать, чтобы решить, хотите ли вы совершить покупку.

Все версии Windows и Linux включают версию программы FTP (протокол передачи файлов) для командной строки. Вы можете получить доступ к FTP-клиенту с помощью оболочки командной строки. (В Windows 95, 98 и Me это приглашение MS-DOS. В Windows 2000 и XP это командная строка).

  • (Win95/98/Me) Нажмите «Пуск», нажмите «Выполнить», введите команду и нажмите «ОК».
  • (Win2k/XP) Нажмите "Пуск", нажмите "Выполнить", введите cmd и нажмите "ОК".
  • Используйте команду cd, чтобы перейти в каталог, из которого вы хотите загрузить файлы. Если ваши файлы находятся в папке C:\Uploads, введите cd C:\Uploads и нажмите Enter.

По запросу пользователя введите свое имя пользователя Avvanta. Помните, что ваше имя пользователя — это первая половина вашего адреса электронной почты Avvanta. Введите свой пароль в поле «Пароль».

Вы можете получить список команд FTP, набрав help в приглашении ftp>. Вы можете получить более подробное объяснение конкретных команд, набрав help cmd, где cmd — это команда, по которой вам нужна помощь. (например, help get предоставит более подробную справку по команде get).

Загрузка файлов

Чтобы загрузить файлы в каталог web_docs по запросу ftp> введите cd web_docs для смены каталогов.

Чтобы загрузить двоичный файл, введите команду bin, а затем Enter. Это сообщает FTP-серверу, что вы загружаете двоичные файлы. Если вы загружаете недвоичные данные, такие как HTML-файлы или документы, сначала используйте команду ascii.

Используйте команду put для загрузки файла. Например, чтобы загрузить изображение mypicture.jpg, введите put mypicture.jpg . Файл, который вы хотите загрузить, должен находиться в локальном каталоге Windows. Если его нет в этом каталоге, введите его отдельно и нажмите Enter. Затем сервер запросит у вас полный путь и имя файла, который вы хотите загрузить.

Скачивание файлов

Для загрузки файлов используйте команду get. (например, get mypicture.jpg загрузит это изображение в локальный каталог Windows)

Дополнительные параметры, включая загрузку и загрузку нескольких файлов одновременно, выходят за рамки этого документа. Программа FTP из командной строки достаточна для небольших задач с файлами FTP — для более надежного управления файлами через FTP лучше подойдет более мощный FTP-клиент с графическим интерфейсом.

Следуйте приведенным ниже шагам, чтобы загрузить файл через SFTP LiveRamp либо с помощью SFTP-клиента, либо из командной строки.

Хотите улучшить безопасность? LiveRamp поддерживает аутентификацию пары ключей SSH. Чтобы использовать этот вариант, отправьте файл открытого ключа SSH в LiveRamp, создав обращение на портале сообщества LiveRamp (или обратитесь к представителю LiveRamp, если у вас нет доступа к порталу).

Внимание

Выполняется загрузка с помощью WinSCP? Не отправляйте файлы с расширением «filepart», так как наша система не будет обрабатывать эти файлы (и вы увидите ошибку удаленного открытия («/uploads/a.txt.filepart»): Отказано в доступе). Чтобы отключить функцию WinSCP, которая может давать вашим файлам расширение "filepart", см. эти инструкции.

Дальнейшие шаги

Примерно через 20 минут после загрузки вы сможете проверить статус загруженных файлов на странице "Файлы".

После того как ваши данные будут загружены (обычно в течение 1–3 дней), вы можете управлять ими в Connect и распространять их по нужным адресам.

Загрузить с помощью SFTP-клиента

Следуйте приведенным ниже инструкциям, чтобы загрузить файл через SFTP LiveRamp с помощью SFTP-клиента.

Убедитесь, что файл правильно отформатирован и не защищен паролем.

При использовании брандмауэра включите исходящий порт 8442 или 22 и обязательно занесите в белый список IP-адрес LiveRamp SFTP (35.202.130.160).

Войдите в свой SFTP-клиент.

LiveRamp рекомендует Cyberduck, бесплатный клиент, который работает на Mac и ПК.

В поле "Хост" введите "files.liveramp.com" .

Введите имя пользователя и пароль, предоставленные вам вашим представителем LiveRamp.

Обратитесь к представителю LiveRamp (или представителю торгового посредника, если это необходимо) для получения учетных данных SFTP, если они вам еще не предоставлены, или если вам необходимо сбросить пароль.

Если у вас несколько аудиторий и вы еще не создали подкаталог для аудитории, в которую загружаете файл, создайте новый подкаталог в «/uploads» с точным названием аудитории, как оно существует в Соединить (заменив любые пробелы символами подчеркивания). Например, если у вас есть аудитория под названием «Любители собак», создайте подкаталог «/uploads/dog_lovers/».

Загрузите файл в каталог «/uploads» или в подкаталог аудитории, для которой вы загружаете файл (если у вас несколько аудиторий).

Если у вас возникли проблемы с передачей, см. раздел Устранение неполадок при загрузке файлов LiveRamp SFTP .

Нужно пошаговое руководство? В разделе ниже приведено пошаговое руководство по процессу загрузки файлов SFTP через Cyberduck.

Если файл не появится в Connect в течение 3 дней, обратитесь к представителю LiveRamp, чтобы убедиться, что файл загружен правильно.

Вы можете получить доступ из командной строки к своей учетной записи Silk с помощью SSH или загружать/загружать файлы в Silk с помощью SFTP или SCP. Вы подключитесь к хосту w3.uvm.edu, используя свое имя пользователя и пароль NetID.

Доступ к командной строке

От macOS или Linux

Откройте окно командной строки. На Mac вы можете использовать Терминал, доступный в Finder в /Applications/Utilities .

Из Windows

Вам потребуется приложение, которое может обмениваться данными через SSH, например PuTTY или SmarTTY. Копия PuTTY, предварительно настроенная для некоторых распространенных систем UVM, доступна в архиве загрузки программного обеспечения UVM.

В приложении SSH откройте соединение с хостом w3.uvm.edu. При появлении запроса введите имя пользователя и пароль NetID.

Загрузка/загрузка файлов

От macOS или Linux

R-синхронизация

Рекурсивно копировать содержимое каталога на свой сайт:

Интерактивная загрузка и скачивание файлов.

Копировать файлы или каталоги.

Из Windows

Вам потребуется приложение, которое может обмениваться данными через SFTP или SCP, например WinSCP или FileZilla.Копия WinSCP, предварительно настроенная для некоторых распространенных систем UVM, доступна в архиве загрузки программного обеспечения UVM.

В приложении SFTP или SCP откройте соединение с хостом w3.uvm.edu , используя тип соединения SFTP или SCP (но не FTP). При появлении запроса введите имя пользователя и пароль NetID.

Вход без пароля

Для частого входа может быть удобнее настроить сайт для аутентификации с использованием криптографии с открытым ключом, а не каждый раз вводить пароль. Для этого вам необходимо создать ключ аутентификации и сообщить своей учетной записи, что ему разрешен доступ.

От macOS или Linux

Если у вас еще нет ключа в каталоге ~/.ssh/ на компьютере, с которого вы будете подключаться, вы можете создать его, набрав ssh-keygen . По умолчанию будут созданы файлы с именами ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub .

Настройте свой сайт, чтобы разрешить доступ, загрузив свой открытый ключ. Проще всего это сделать с помощью ssh-copy-id @w3.uvm.edu. Если имя вашего ключа отличается от имени по умолчанию, вам нужно указать, какое имя использовать, например ssh-copy-id -i ~/.ssh/mykey.pub myusername@w3.uvm.edu .

Из Windows

Пользователи PuTTY могут следовать инструкциям в документации по использованию открытых ключей для аутентификации SSH, чтобы создать ключ аутентификации и предоставить ему доступ к вашему сайту.

Пользователи SmartTTY могут следовать инструкциям по настройке аутентификации с помощью открытого ключа SSH, чтобы приложение создало и настроило ваш ключ за вас, или выполнить аналогичные действия вручную.

Разрешение другим пользователям входить в вашу учетную запись

Никогда не сообщайте свой пароль NetID другим людям. Предоставление пароля дает доступ к вашей информации в других службах, таких как электронная почта, Banner и PeopleSoft.

Несколько человек могут нуждаться в возможности публикации на сайте. Вместо того, чтобы делиться паролем учетной записи, вы можете предоставить доступ для входа с помощью ключей SSH. Каждый человек может создать ключ и отправить владельцу учетной записи свой открытый ключ (обычно это файл с расширением .pub ). Затем вы можете авторизовать эти ключи, добавив их в файл ~/.ssh/authorized_keys в общей учетной записи шелка. Открытый ключ SSH будет выглядеть следующим образом, все в одной строке:

Имейте в виду, что когда люди входят в вашу учетную запись с помощью ключа SSH, они будут входить в систему под вашим именем и могут делать с этой учетной записью все, что можете делать вы.

Когда общий доступ больше не нужен, обязательно удалите ключ SSH из файла ~/.ssh/authorized_keys.

Читайте также: