Сървър

15 начина за използване на SCP командата за прехвърляне на данни в Linux

15 начина за използване на SCP командата за прехвърляне на данни в Linux

Като цяло, когато искате да копирате файлове и директории от един сървър / localhost машина на друг, трябва да използвате услуги за споделяне на файлове като Samba (SMB) или NFS. Въпреки че са надеждни, това е досаден процес за използване при копиране на еднократни файлове.

Това е така, защото трябва да настроите и конфигурирате сървър Samba или NFS. Това поражда необходимостта от разбиране и използване на командата SCP Linux.

Командата SCP (Secure Copy) е помощна програма за Linux, използвана за безопасно копиране на файлове / директории между хостове. Той използва SSH (Secure Shell) за прехвърляне и удостоверяване на потребителите. Следователно, както когато използвате SSH, от вас се изисква да знаете идентификационните данни на отдалечените си хостове.

Ако сте добре запознати с командата Linux CP, използвана за копиране на файлове и директории, тогава SCP не е много по-различен. Единственият добавен и полезен параметър е името на хоста на отдалечената дестинация. Погледнете синтаксиса по-долу.

scp file_name_to_copy потребителско име @ destination_host: destination_directory_path

В параметъра destination_host трябва да въведете IP адреса на вашия отдалечен хост. Ако не знаете как да го намерите, стартирайте ipconfig команда на терминала.

Най-добрите начини за използване на SCP командата в Linux

В тази статия ще разгледаме 15 полезни SCP команди, които можете да използвате във вашето ежедневно взаимодействие със системите на Linux. Ще използваме Ubuntu 18.04 LTS Server виртуална машина като наш отдалечен хост.

1. Копирайте един файл от локалния компютър на отдалечен хост

Това е една от най-ясните команди. Имам файл, наречен Здравейте.scp на нашия локален компютър, който ще копираме на отдалечения ни хост. Вижте командата по-долу.

scp Здравейте.scp tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Копирайте един файл от локалния хост на отдалечен хост

От дясната страна имаме наш localhost, а отляво е нашият Ubuntu Server. Ако правите това за първи път, трябва да видите предупреждение с въпрос дали искате да продължите да се свързвате, напишете 'да.„Трябва да видите подкана за въвеждане на паролата за отдалечен хост. Чрез изпълнение на ls команда на отдалечения хост, виждаме, че сме копирали нашия файл успешно.

2. Копирайте множество файлове

В предишната команда видяхме как можем да копираме един файл. За да копирате множество файлове, използвайте синтаксиса в командата по-долу. Ще копираме три файла, Здравей1, Здравей2, и Здравей3.

scp Hello1 Hello2 Hello3 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Копирайте множество файлове

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

3. Копирайте директория рекурсивно

Освен файлове, можем да използваме SCP, за да копираме директория от локалния компютър до отдалечена дестинация. Използвайте синтаксиса в командата по-долу. Ще копираме папката, FOSSTUTS.

scp -r FOSSTUTS tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Копирайте директория с помощта на SCP команда

Имайте предвид, че когато изпълняваме каквото и да е действие върху цяла директория, ще трябва да включим параметъра -r, който означава рекурсивно.

4. Копиране на файлове с подробен изход

Включването на подробен параметър в нашия SCP синтаксис отпечатва целия процес, който SCP прави във фонов режим. Нека копираме множество файлове на нашия отдалечен хост, използвайки параметъра -v (подробен).

scp Hello1 Hello2 Hello3 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Копиране на файлове с подробен изход

От горното изображение можете да видите, че имаме много резултати от командата, която изпълнихме на нашия локален компютър. Той ви дава всички подробности относно операцията, извършена в момента.

5. Копирайте файлове през два отдалечени хоста

Ако приемем, че управлявате множество отдалечени сървъри и искате да копирате файл от един сървър на друг. Вижте синтаксиса в командата по-долу.

scp tuts @ 192.168.43.96: / home / tuts / FOSSLINUX / Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Копирайте файлове през два отдалечени хоста

Копираме файла Здравей1 от домакина 192.168.43.96 към хоста 192.168.83.132.

6. Компресиране и копиране на файлове

За да ускорите процеса на копиране и да спестите на честотна лента, можете да компресирате вашите файлове с параметъра -C. Данните се компресират на вашия локален компютър в движение и се декомпресират на отдалечения хост. Вижте синтаксиса по-долу.

scp -vC Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Компресирайте и копирайте файлове

Включихме параметъра -v (подробен), за да можете да видите какво се случва.

7. Управление на честотната лента

Копирането на файл на отдалечен хост може да се обясни като качване. Ако честотната лента за качване е висока, това може да повлияе на други процеси, работещи във фонов режим. Можете да ограничите честотната лента, която да използвате в процеса на копиране, като използвате параметъра -l. Вижте командата по-долу.

scp -l 100 Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Управление на честотната лента

Широчината на честотната лента, която задавате, е в килобайта. Следователно, в горната команда използваме максимум 100Kb / s за извършване на процеса на копиране.

8. Използвайте персонализирана номерация на портове

Както е обяснено по-горе, SCP използва SSH за извършване на процеса на копиране на файлове. По подразбиране SSH работи на порт 22; ако обаче сте конфигурирали SSH сървър на отдалечения сървър да работи на различен порт, можете да посочите това във вашата SCP команда. Вижте командата по-долу.

scp -P 22 Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Използвайте персонализиран номер на порт с SCP

Тъй като не съм конфигурирал нито един SSH сървър, оставяме номера на порта на 22 за тази публикация.

9. Копиране и запазване на файлови атрибути

В случай, че искате да копирате файл и да запазите атрибути като разрешения, времена за модификация, времена за достъп и т.н., използвайте параметъра -p с командата SCP. Вижте командата по-долу.

scp -P 22 Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Копирайте и запазете файловите атрибути

Имайте предвид, че в този пример „p“ е с малки букви, за разлика от използването на персонализиран номер на порт.

10. Потиснете SCP изхода с параметъра -q

Да предположим, че не искате да отпечатвате SCP изхода, известията за грешки, предупреждението или дори измервателния уред. Можете да го постигнете с помощта на параметъра -q, който потиска целия SCP изход.

scp -q Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Потиснете SCP изхода с параметъра -q.

От изображението по-горе единственият SCP изход е подкана за парола. Параметърът -q потиска всички други изходи.

11. Използвайте SCP, за да копирате файл от отдалечен хост на вашия локален компютър.

За повечето примери по-горе копираме файлове от нашата локална машина на отдалечен сървър. Сега, да предположим, че искате да копирате файл от отдалечения сървър на вашия локален компютър. Трябва да използвате командата SCP с малко ощипване в обичайния синтаксис. Погледнете командата по-долу.

scp tuts @ 192.168.83.132: / home / tuts / FOSSLINUX / serverFile.txt / home / tuts / FOSSLINUX

Използвайте SCP, за да копирате файл от отдалечен хост на вашия локален компютър.

Като стартирате ls команда на нашия локален компютър, виждаме, че 'serverFile.txt 'копиран успешно.

12. Копирайте файлове и директории, без да използвате пароли

От примерите по-горе виждаме, че когато трябва да копираме файл, получаваме подкана за въвеждане на парола. Можем да пропуснем тази стъпка, като генерираме SSH ключове, които да използваме по време на процеса на удостоверяване.

За да генерирате SSH ключ, използвайте командата по-долу.

ssh-keygen -t rsa

Системата трябва да генерира SSH ключ. Можете да видите процеса, протичащ от изхода в терминала. Сега трябва да копираме ключа на нашия отдалечен хост, за да го използваме за удостоверяване. Използвайте командата по-долу.

ssh-copy-id root @ 192.168.4.200

Генериране на SSH ключове

Сега нека опитаме да копираме файл от нашия локален компютър на отдалечения ни хост.

scp Hello1 tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Копирайте файл без парола

От изображението по-горе виждаме, че няма подкана за въвеждане на парола.

13. Използвайте различен шифър

SCP използва AES шифър / криптиране за безопасно копиране на файлове. Можете обаче да посочите различна схема на шифър, като използвате параметъра -c. Забележете, че ° С е малък регистър за разлика от компресията, където ° С е с главни букви. Вижте командата по-долу.

scp -c aes128-gcm @ openssh.com TESTFILE tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Използвайте различен шифър

Посочихме схемата за криптиране, която искаме да използваме като AES. Можете също така да използвате други като духалка и много други.

scp -c Blowfish TESTFILE tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

14. Използвайте SSH ключовия файл вместо парола

SCP ви позволява да използвате ключов файл вместо парола, за да завършите процеса на удостоверяване с помощта на параметъра -i, последван от ключовия файл. Вижте командата по-долу.

scp -c privateKey.pem TESTFILE tuts @ 192.168.83.132: / home / tuts / FOSSLINUX

Използвайте ключов файл вместо парола

15. Използвайте SCP скрипт скрипт за копиране на файлове

Ако приемем, че трябва да използвате SCP командата редовно, можете да напишете скрипт за обвивка, за да опростите целия процес. В тази статия ще напишем скрипт, който чете целевия хост от целевия файл.текст.

Destfile.txt файл

По-долу е нашият SCP скрипт

echo "STARTING SCP SCRIPT" echo echo -e "Въведете пътя към файла, който искате да копирате: \ c" прочетете файла за dest в 'cat / tmp / destfile.текст'; направете scp -rC $ файл $ dest: / tmp / done

Запазете файла с '.ш.' разширение, тъй като това е bash скрипт. Направете скрипта изпълним, като използвате командата chmod, както е показано на изображението по-долу, преди да го изпълните.

Използвайте SCP Shell скрипт

Заключение

Това са 15 SCP практически примера, които можете да приложите, за да улесните живота си в работата с Linux системи. Имате ли SCP команда, която искате да споделите с нашите читатели? Оставете коментар по-долу. Ако считате тази статия за изобретателна, моля, споделете връзката с приятел.

Най-добрите приложения за картографиране на геймпад за Linux
Ако искате да играете игри на Linux с геймпад вместо типична система за въвеждане на клавиатура и мишка, има някои полезни приложения за вас. Много ко...
Полезни инструменти за геймърите на Linux
Ако искате да играете игри на Linux, има вероятност да сте използвали приложения и помощни програми като Wine, Lutris и OBS Studio, за да подобрите иг...
HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...