Среда, 25 декабря, 2024

Как передать файл на удаленный сервер Linux

В командной строке Linux существует множество инструментов для передачи файлов между двумя компьютерами. Самые популярные такие программы – scp и rsync, которые охватят почти любой вариант использования. Вот как и когда их использовать.

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

Команда scp расшифровывается как защищенная копия, и во многом она работает как стандартная команда unix cp или copy, но между двумя компьютерами. «Безопасный» в названии в этом случае касается SSH, протокола, используемого для связи с удаленным компьютером.

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

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

Как передавать файлы с помощью scp

Использовать инструмент scp для перемещения отдельных файлов между компьютерами очень просто. Эта команда:

scp username@remotehost:/path/to/directory

Чтобы скопировать файл foo.txt на удаленный компьютер, вы можете использовать команду ниже:

scp foo.txt kris@some-computer:/home/kris/

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

scp kris@some-computer:/home/kris/foo.txt

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

scp -r dotfiles kris@some-computer:/home/kris/

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

scp -r kris@some-computer:/home/kris/dotfiles

Как передавать файлы с помощью rsync

Несмотря на то, что rsync имеет много интегрированных функций, он делает обработку базисных передач довольно обычным. Основная команда для копирования файла на удаленный компьютер такова:

rsync user@remotehost:

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

rsync foo.txt kris@some-computer:foo.txt

В фоновом режиме rsync попытается использовать соединение SSH и запросит имя пользователя и пароль. После проверки подлинности начнется передача.

И наоборот, скопировать файл обратно на локальный компьютер так же просто:

rsync kris@some-computer:/home/kris/foo.txt .

НАПИСАТИ ВІДПОВІДЬ

Коментуйте, будь-ласка!
Будь ласка введіть ваше ім'я

Євген
Євген
Евгений пишет для TechToday с 2012 года. По образованию инженер,. Увлекается реставрацией старых автомобилей.

Vodafone

Залишайтеся з нами

10,052Фанитак
1,445Послідовникислідувати
105Абонентипідписуватися