Като цяло, когато искате да копирате файлове и директории от един сървър / 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
Имайте предвид, че когато изпълняваме каквото и да е действие върху цяла директория, ще трябва да включим параметъра -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
Тъй като не съм конфигурирал нито един 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 потиска всички други изходи.
11. Използвайте SCP, за да копирате файл от отдалечен хост на вашия локален компютър.
За повечето примери по-горе копираме файлове от нашата локална машина на отдалечен сървър. Сега, да предположим, че искате да копирате файл от отдалечения сървър на вашия локален компютър. Трябва да използвате командата SCP с малко ощипване в обичайния синтаксис. Погледнете командата по-долу.
scp tuts @ 192.168.83.132: / home / tuts / FOSSLINUX / serverFile.txt / home / tuts / FOSSLINUX
Като стартирате ls команда на нашия локален компютър, виждаме, че 'serverFile.txt 'копиран успешно.
12. Копирайте файлове и директории, без да използвате пароли
От примерите по-горе виждаме, че когато трябва да копираме файл, получаваме подкана за въвеждане на парола. Можем да пропуснем тази стъпка, като генерираме SSH ключове, които да използваме по време на процеса на удостоверяване.
За да генерирате SSH ключ, използвайте командата по-долу.
ssh-keygen -t rsa
Системата трябва да генерира SSH ключ. Можете да видите процеса, протичащ от изхода в терминала. Сега трябва да копираме ключа на нашия отдалечен хост, за да го използваме за удостоверяване. Използвайте командата по-долу.
ssh-copy-id root @ 192.168.4.200
Сега нека опитаме да копираме файл от нашия локален компютър на отдалечения ни хост.
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 командата редовно, можете да напишете скрипт за обвивка, за да опростите целия процес. В тази статия ще напишем скрипт, който чете целевия хост от целевия файл.текст.
По-долу е нашият SCP скрипт
echo "STARTING SCP SCRIPT" echo echo -e "Въведете пътя към файла, който искате да копирате: \ c" прочетете файла за dest в 'cat / tmp / destfile.текст'; направете scp -rC $ файл $ dest: / tmp / done
Запазете файла с '.ш.' разширение, тъй като това е bash скрипт. Направете скрипта изпълним, като използвате командата chmod, както е показано на изображението по-долу, преди да го изпълните.
Заключение
Това са 15 SCP практически примера, които можете да приложите, за да улесните живота си в работата с Linux системи. Имате ли SCP команда, която искате да споделите с нашите читатели? Оставете коментар по-долу. Ако считате тази статия за изобретателна, моля, споделете връзката с приятел.