Exclude rsync example: How to use Rsync to exclude Files and Directories in Data Transfer

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Как ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Rsync Π² Linux

Rsync – это быстрая ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, которая синхронизируСт Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя мСстами Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ.

Π‘ Rsync Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами.Β ΠŸΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π½Π° основС ΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ мСстополоТСния.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsync.

Β 

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания ΠΎΒ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ rsync.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ rsync с опциСй -a.Β Π­Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ rsync ΠΎ рСкурсивной синхронизации ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств ΠΈ сохранСнии символичСских ссылок, Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π³Ρ€ΡƒΠΏΠΏΡ‹, Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΈ ΠΏΡ€Π°Π² доступа.

ΠŸΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΊ исходному ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ.

БущСствуСт Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° указания Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ:

  • Из командной строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡΒ ΠΎΠΏΡ†ΠΈΡŽ –exclude.
  • Π˜Π·Β Ρ„Π°ΠΉΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡΒ ΠΎΠΏΡ†ΠΈΡŽ –exclude-from.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»ΡƒΒ ΠΎΠΏΡ†ΠΈΠΈ –exclude.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„Π°ΠΉΠ»Β src_directory/file.txt Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½:

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

Β 

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Π°, просто ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ для опции –exclude, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

rsync -a --exclude 'dir1' src_directory/ dst_directory/

Β 

Β 

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π½ΠΎ Π½Π΅ сам ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅Β dir1/* вмСсто dir1:

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

Β 

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², просто ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎΒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² –exclude:

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/

Β 

Β 

Если Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΡƒΒ ΠΎΠΏΡ†ΠΈΡŽ –exclude, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках,Β {} Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятой, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/

Β 

Β 

Если количСство Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΒ  Π»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π²Π΅Π»ΠΈΠΊΠΎ, вмСсто использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ…Β ΠΎΠΏΡ†ΠΈΠΉ –exclude Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ –exclude-from.

Команда Π½ΠΈΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΡˆΠ΅:

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/

Β 

exclude-file.txt:

file1.txt
dir1/*
dir2

Β 

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π½Π° основС шаблона

Π‘ rsync Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π½Π° основС шаблона, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС файлы .jpg, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ запускаСтС:

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

Β 

Β 

НСмного слоТнСС ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Допустим, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π°Β .jpg.

Одним ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² являСтся использованиС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

Β 

ΠŸΡ€ΠΈ использовании Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΡ†ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ примСняСтся ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ соотвСтствия.

  • –include=’*.jpg’- Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ всС .jpgΡ„Π°ΠΉΠ»Ρ‹.
  • –include=’*/’- Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ всС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π²Β ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ src_directory.Β Π‘Π΅Π· этого rsync Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎΒ Ρ„Π°ΠΉΠ»Ρ‹ *.jpg Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня.
  • -m – УдаляСт пустыС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹Β findΒ Π² rsync:

find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/

Β 

  • -printf %P\\0\\n – ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΏΡƒΡ‚ΡŒΒ src_directory/.
  • –files-from=- – ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹ со стандартного Π²Π²ΠΎΠ΄Π° (Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ find).

Β 

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Из этого руководства Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Rsync.Β Π•Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Rsync ΠΌΠΎΠΆΠ½ΠΎΒ Π½Π°ΠΉΡ‚ΠΈ на страницС руководства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Rsync.

Если Π²Ρ‹ нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ, поТалуйста, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl+Enter.

Rsync: объСдинСниС ‘—files-from ‘ ΠΈ ‘—exclude’ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ --files-from ΠΈ --exclude , Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ просто, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ. (TL;DR? ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ.)

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ΠΎΡ‚ настройка

mkdir -p dst src/a src/b/c
n=1
for d in $(find src -type d)
do
    ps -ef > "$d"/file$n.txt
    n=$((n+1))
done

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся это Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

src/file1.txt
src/a/file2.txt
src/b/file3.txt
src/b/c/file4.txt

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ rsync Π² Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ случаС, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ всС, ΠΊΠ°ΠΊ ΠΈ оТидалось:

rsync -av --dry-run src/ dst/
file1.txt
a/
a/file2.txt
b/
b/file3.txt
b/c/
b/c/file4.txt

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ rsync --exclude b , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ b . На самом Π΄Π΅Π»Π΅ здСсь происходит Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ b большС Π½Π΅ рассматриваСтся, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ΄ b Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ ΠΈ Π½Π΅ скопирован:

rsync -av --dry-run --exclude b/ src/ dst/
file1.txt
a/
a/file2.txt

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ , Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ прСдоставлСнии списка Ρ„Π°ΠΉΠ»ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ записи ΠΏΠΎΠ΄ b, примСняСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ самого b , Π½ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ΄ Π½ΠΈΠΌ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡŽ --exclude b ΠΈ поэтому Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹:

find src | rsync -av --dry-run --files-from=- --exclude b/ . dst/
src/
src/file1.txt
src/a/
src/a/file2.txt
src/b/
src/b/file3.txt
src/b/c/
src/b/c/file4.txt

РСшСниС состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ --exclude , Ρ‡Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ b , Π½ΠΎ ΠΈ всС Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹:

find src | rsync -av --dry-run --files-from=- --exclude b/ --exclude 'b/**' . dst/
src/
src/file1.txt
src/a/
src/a/file2.txt

Π’ вашСм случаС Ρƒ вас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с вашСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. Π’ΠΎΡ‚ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ находится Π² списках Ρ„Π°ΠΉΠ»ΠΎΠ²:

rsync -azvv --no-r \
    --include-from '/home/user/BACKUP_MNGMT/include-list.txt' \
    --exclude-from '/home/user/BACKUP_MNGMT/exclude-list.txt' \
    -e ssh / user@server:/home/user/Backup

rsync -azvv \
    --files-from '/home/user/BACKUP_MNGMT/include-list.txt' \
    --exclude '/home/user/shared/BIG_DATA/**' \
    -e ssh / user@server:/home/user/Backup

основныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ синхронизации Ρ„Π°ΠΉΠ»ΠΎΠ² β€” powered by leo blog …

RSync это быстрый ΠΈ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт для синхронизации (копирования) Ρ„Π°ΠΉΠ»ΠΎΠ². Π•Π³ΠΎ самоС основноС прСимущСство это ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнившиСся части Ρ„Π°ΠΉΠ»Π°, Π° Π½Π΅ Ρ„Π°ΠΉΠ»Π° Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Ρ‡Ρ‚ΠΎ нСсомнСнно отраТаСтся Π½Π° скорости копирования/синхронизации. А Ссли ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ сбой, Ρ‚ΠΎ достаточно ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ с Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ мСста.

RSync ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ локально Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, с локальной ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Π½Π° сСрвСр) ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π­Ρ‚ΠΎΡ‚ инструмСнт ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ своих Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ большоС ΠΎΠ±ΠΈΠ»ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΉ ΠΈ экономно ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ рСсурсами систСмы.

Π‘Π°ΠΌ сСрвис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° SSH ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Π½Π° собствСнном ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ rsyncd, Π½ΠΎ ΠΎΠ±ΠΎ всСм ΠΏΠΎ порядку.

Установка

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ rsync Π΅ΡΡ‚ΡŒ Π½Π΅ Π²Π΅Π·Π΄Π΅, поэтому Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«bash: rsync: command not foundΒ» β€” Π·Π½Π°Ρ‡ΠΈΡ‚ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ (ΠΊΠ°ΠΊ Π½Π° локальной, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ машинС):

# для debian 
apt install rsync

# для centos
yum install rsync

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис

rsync <ΠΎΠΏΡ†ΠΈΠΈ> <Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°> <ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ@хост:/ΠΊΡƒΠ΄Π°_ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ>

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ RSync

НиТС пСрСчислСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ основныС ΠΎΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Π°Ρ‰Π΅ всСго ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅. Π― попытался Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΏΠΏΡ‹ для удобства ΠΈΡ… использования.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ:

-n, --dry-run – Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ° тСстового Ρ€Π΅ΠΆΠΈΠΌΠ°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΎ Ρ‚Π΅Ρ… дСйствиях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ.
-a, --archive – Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ рСкурсивноС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ сохранСниС ΠΏΡ€Π°Π² ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° (эта опция Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΎΠΏΡ†ΠΈΠΈ rlptgoD, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ описаны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ). Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, эта опция Π½Π΅ сохраняСт ТСсткиС ссылки.
-r, --recursive – рСкурсивный Ρ€Π΅ΠΆΠΈΠΌ (ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π½ΠΈΡ…).
-l, --links – ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ссылки ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ссылки.
-p, --perms – ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΡ€Π°Π²Π° для Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘Π΅Π· указания этой ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚Π΅ ΠΏΡ€Π°Π²Π° доступа, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ исходный с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ umask, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠΉ сторонС, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ обновляСмыС) ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ свои ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ (это Ρ‚ΠΎ ΠΆΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ копирования Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ cp).
-t, --times – ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ врСмя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π½Π° ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΎΠΉ сторонС (ΠΏΡ€ΠΈ отсутствии этой ΠΎΠΏΡ†ΠΈΠΈ ΠΈΠ»ΠΈ -a ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ нСэффСктивной оптимизация ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ измСнСния Ρ„Π°ΠΉΠ»ΠΎΠ²).
-g, --group – ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Если удалСнная сторона Π½Π΅ дСйствуСт ΠΈΠ·-ΠΏΠΎΠ΄ супСр-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‚ΠΎ сохранятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ значСния Π³Ρ€ΡƒΠΏΠΏ, Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠΉ стороны, Ρ‚.Π΅. ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ имя Π³Ρ€ΡƒΠΏΠΏΡ‹, Π° Π½Π΅ Π΅Π΅ id.
-o, --owner – ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠΉ сторонС Π² точности с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠΌ. На Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ супСр-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ρ„Π°ΠΉΠ»Π°. НуТно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π΄Π΅ΠΌΠΎΠ½ дСйствуСт Π² chroot-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, Ρ‚ΠΎ подразумСваСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° --numeric-ids (ΠΎΠ½ описан Π½ΠΈΠΆΠ΅), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ сторонС Π² этом случаС Π½Π΅Ρ‚ доступа ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² /etc/passwd.
-D, --devices – ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ устройств (root only).

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ:

-u, --update – Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹: ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠΉ сторонС с Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ Π΄Π°Ρ‚ΠΎΠΉ, Ρ‡Π΅ΠΌ Ρƒ исходных Ρ„Π°ΠΉΠ»ΠΎΠ².
--delete – ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² источникС (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для создания Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ).
--ignore-errors – ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ послС появлСния ошибок (ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ (--delete) форсируСт процСсс ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ ошибки, Π΄Π°ΠΆΠ΅ ошибки Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°.)
--exclude – ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано Π½ΠΈΠΆΠ΅).
--include – Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано Π½ΠΈΠΆΠ΅).
-F – опция которая заставляСт ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» .rsync-filter, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ (exclude/include). Если опция ΡƒΠΊΠ°Π·Π°Π½Π° Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈ сам Ρ„Π°ΠΉΠ» .rsync-filter.
-x, --one-file-system – Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ† Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΏΡ€ΠΈ рСкурсивном ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ нСобходимости копирования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.
-R, --relative – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΏΡ€ΠΈ создании символичСских ссылок. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π° Π½Π΅ послСдниС части ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ². На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π·Π° Ρ€Π°Π·.
-H, --hard-links – ΠΏΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ТСсткиС ссылки Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ сторонС Π² соотвСтствии с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ имССтся Π½Π° исходной. Π‘Π΅Π· этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ТСсткиС ссылки ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.
-L, --copy-links – Если ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° символьная ссылка, Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΡƒΡŽ сторону копируСтся Ρ„Π°ΠΉΠ», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π° Π½Π΅ такая ΠΆΠ΅ символьная ссылка.
--numeric-ids – Π½Π΅ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ UID ΠΈ GID, ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ сторонС Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ.
ВмСсто ΠΈΠΌΠ΅Π½ Π³Ρ€ΡƒΠΏΠΏ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‚ΡΡ ΠΈΡ… числовыС id ΠΈ ставятся Π² соотвСтствиС Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ Π½Π° ΠΎΠ±ΠΎΠΈΡ… ΠΊΠΎΠ½Ρ†Π°Ρ….
По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ rsync ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½Π° Π³Ρ€ΡƒΠΏΠΏ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ для опрСдСлСния Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π° Ρ„Π°ΠΉΠ»ΠΎΠ². Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ uid 0 ΠΈ gid 0 Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ/Π³Ρ€ΡƒΠΏΠΏ, Π΄Π°ΠΆΠ΅ Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° --numeric-ids.
Если исходная систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΌ chroot-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ° Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠΉ сторонС, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ исходныС числовыС id.
-m, --prune-empty-dirs – Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ пустыС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ. 

Настройка синхронизации/ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²:

-c, --checksum – использованиС свСрки ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ суммам, Π° Π½Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ измСнСния ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ².
--size-only – ΡΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ провСряСтся Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ врСмя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ).
-z, --compress – компрСссия Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ (рСализуСтся gzip).
-e,--rsh="command" – опция позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΈ локальной машинами.
--max-size – ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.
--bwlimit β€” ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² (Kbit/s).
--partial – По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ rsync Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ всС частично-ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² случаС сбоя ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. Если этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡƒΠΊΠ°Π·Π°Π½, Ρ‚ΠΎ rsync Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ частично-ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя копирования ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ запускС.
-P – данная опция Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΎΠΏΡ†ΠΈΡŽ --partial ΠΈ --progress.

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅/Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

--progress – Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ прогрСсс ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².
--stat – ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ статистику ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.
-v, --verbose – вывСсти ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ процСссС: ΠΎΠ΄ΠΈΠ½ -v Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ список ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΈΡ‚ΠΎΠ³ Π² ΠΊΠΎΠ½Ρ†Π΅, Π΄Π²Π° -v Π²Ρ‹Π΄Π°Π΅Ρ‚ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΈΡ‚ΠΎΠ³, большС -v ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.
-q, --quiet – минимальная информация.

ΠžΠΏΡ†ΠΈΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ для создания ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ:

-b, --backup – ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Ρ€Π°Π½Π΅Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° копирования Π½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ сторонС. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Π°ΠΌ добавляСтся суффикс ~, Π° Ссли ΡƒΠΊΠ°Π·Π°Π½Π° дирСктория (--backup-dir), Ρ‚ΠΎ суффикс Π½Π΅ добавляСтся.
--backup-dir=.. – ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΡƒΠ΄Π° ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ.
--suffix=.. – опция позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свой суффикс.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ пройдСмся ΠΏΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ.

Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρƒ сСбя Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ:

rsync -av /home/user/Downloads/files/ /home/user/Downloads/copyfiles

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ (Ρ‚.Π΅. содСрТимоС) ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° /home/user/Downloads/TEMP/files/ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /home/user/Downloads/TEMP/copyfiles.

Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚:

  • Ссли Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ источника (ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°) Π½Π΅Ρ‚ слэша, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ скопирован сам ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ это files).
  • Ссли слэш ΡƒΠΊΠ°Π·Π°Π½, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ скопировано содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° (Ρ‚.Π΅. Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ files, ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅)

Π’ случаС нСобходимости ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π° Ρ€Π°Π· Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

rsync -av ./2021 ./logo.svg.png ./copy2021 ./copydir

ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΌΡ‹ скопировали ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ 2021, Ρ„Π°ΠΉΠ» logo.svg.png ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ copy2021 Π² Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π½Π΅Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ copydir.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит наглядно:

rsync -av ./2021 ./logo.svg.png ./copy2021 ./copydir
sending incremental file list
created directory ./copydir
logo.svg.png
2021/
2021/filefromsrv
2021/filestorage.png
2021/login.png
2021/mainweb.png
2021/motiondetection.png
2021/motioneye-movies.png
2021/motioneye-recordetmovies.png
copy2021/
copy2021/just-file.txt

sent 723,033 bytes  received 349 bytes  1,446,764.00 bytes/sec
total size is 721,629  speedup is 1.00

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ это Π½Π΅ плохая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° cp πŸ™‚

Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ

Π’Π°ΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС, ΠΈΠ½Π°Ρ‡Π΅ rsync попытаСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Β«2021Β» Π² ΠΊΠΎΡ€Π΅Π½ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра.
Π•Ρ‰Π΅ Π²Π°ΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, копируя Ρ„Π°ΠΉΠ» Β«file.txtΒ» Π½Π° сСрвСр ΡƒΠΊΠ°Π·Π°Π² ΠΏΡƒΡ‚ΡŒ /home/user/somedir, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ somedir Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создан, вмСсто этого Ρ„Π°ΠΉΠ» file.txt скопируСтся Π½Π° сСрвСр ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ somedir. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ /home/user/somedir/.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΆΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Ρƒ нас ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚), ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ -z:

Но Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сТатиС ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΌ Π³Π΄Π΅ это Π½ΡƒΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ssh ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сТатиС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ рСсурсы CPU Π½Π΅ стоит, особСнно Π½Π° слабых ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… ΠΈΠ»ΠΈ NAS сСрвСрах.

Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ/ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ сСрвСра Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ» filefromsrv Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находимся.

Как ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ€Ρ‚ ssh ΠΈ ΠΊΠ»ΡŽΡ‡?

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ -e (ΠΎΠ½Π° ΠΆΠ΅ β€”rsh). Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Π½Π° сСрвСр Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ стандартный ssh ΠΏΠΎΡ€Ρ‚:

А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΡ€Ρ‚:

rsync -av -e "ssh -p 2013 -i ~/.ssh/id_rsa" ./filefromsrv  [emailΒ protected]:/home/user/mydir/

ΠšΡΡ‚Π°Ρ‚ΠΈ, Ссли ΠΌΡ‹ настроим ssh алиас, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ указывая Π»ΠΈΡˆΠ½ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°:

$ cat ~/.ssh/config
Host srv
   HostName 10.10.20.7
   Port 2013
   User user

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

rsync -av ./filefromsrv srv:/home/user/somedir/

Π― Ρ…ΠΎΡ‡Ρƒ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ прогрСсс копирования/синхронизации

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ rsync ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΊΠ»ΡŽΡ‡ -v для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ скопированы ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΈΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½Ρ‹Ρ… дСйствиях. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

rsync -av ./somedir [emailΒ protected]:/home/leo/
sending incremental file list
somedir/
somedir/Screenshot from 2021-01-22 17-42-17.png
somedir/Screenshot from 2021-01-24 02-17-17.png

sent 1,996,838 bytes  received 58 bytes  3,993,792.00 bytes/sec
total size is 2,041,319  speedup is 1.02

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсный Π²Ρ‹Π²ΠΎΠ΄, Ρ‚ΠΎ Π½Π°ΠΌ Π² этом ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ»ΡŽΡ‡ β€”progress. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

rsync -aP ./somedir [emailΒ protected]:/home/user/
sending incremental file list
somedir/
somedir/Screenshot from 2021-01-22 17-42-17.png
        194,291 100%   51.35MB/s    0:00:00 (xfr#1, to-chk=1/3)
somedir/Screenshot from 2021-01-24 02-17-17.png
      1,847,028 100%   21.22MB/s    0:00:00 (xfr#2, to-chk=0/3)

НСкоторыС ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ -P, Π½ΠΎ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, -P Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΊΠ»ΡŽΡ‡ β€”partial ΠΈ β€”progress ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ (Ρ‡Ρ‚ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅ Ρ‚Π°ΠΊ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ).

Как ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²?

НуТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ β€”bwlimit=SPEED, Π³Π΄Π΅ SPEED это ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π² ΠšΠ±Π°ΠΉΡ‚ Π² сСкунду:

ПолСзно Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π° слабом ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ с большими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

Как ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ²?

Π’ rsync ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ достаточно Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, дСлая Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию домашнСй Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° linux ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΉ кСш ΠΈΠ»ΠΈ содСрТимоС ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽ Π΄Π²Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

rsync -av --exclude={'user/.local/share/Trash','user/.cache'} /home/user [emailΒ protected]:/home/user/bkp/

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ:

Π•Ρ‰Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ:

Π‘Π°ΠΌΡƒ ΠΎΠΏΡ†ΠΈΡŽ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·:

rsync -av --exclude="*.tmp" --exclude="tmp/*" --exclude="*~" /var/www/site [emailΒ protected]:/home/user/bkp/

Для копирования ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ² (Π΄Π° ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ) ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ β€”include. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ½Π° Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ exclude. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽ Π½Π° сСрвСр Ρ‚ΠΎΠ»ΡŒΠΊΠΎ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .sql:

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ .rsync-filter

Для Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎΠΉ настройки копирования (Π² случаС рСгулярного копирования это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ) всС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ .rsync-filter (это появилось Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях rsync).

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠ°ΠΊ ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ (спасибо этому Π±Π»ΠΎΠ³Ρƒ Π·Π° Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ описаниС).
Допустим, Ρƒ мСня Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (somedir), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ я Ρ…ΠΎΡ‡Ρƒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ (красная стрСлка) ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ (зСлСная стрСлка) Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹/ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ:

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² настройки ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ .rsync-filter с коммСнтариями:

cat .rsync-filter 
# ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ .cache (Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ work/lo*/.cache ΠΈ dir2/.cache)                                                                        
- /.cache
# ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ всС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Trash Π²ΠΎ всСх ΠΏΠ°ΠΏΠΊΠ°Ρ…
- /**/Trash/
# ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Cache Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… .mysoft/soft*/
- /.mysoft/*/Cache
# ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» pass.md
- pass.md
# ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .tmp
- *.tmp
# ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ вСсь ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ example
- /example/
# ΠžΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Trash Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ work/lo*/..
+ /work/**/Trash/

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ rsync Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» Ρ„Π°ΠΉΠ» .rsync-filter, достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ -F:

rsync -avF ./somedir 10.10.20.15:/home/leo/

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π½Π° сСрвСр Π±ΡƒΠ΄ΡƒΡ‚ скопированы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ эти Ρ„Π°ΠΉΠ»Ρ‹:

ΠšΡΡ‚Π°Ρ‚ΠΈ, Ссли ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ‡Ρ‚ΠΎΠ±Ρ‹ сам .rsync-filter Π½Π΅ копировался, Ρ‚ΠΎ -F Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π²Π°ΠΆΠ΄Ρ‹

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ

β€”delete /

β€”delete-after / β€”del (β€”delete_during)

Если ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½Ρ‹Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΈ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΡΠΎΡ€ΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр лишними Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ Π½Π΅Ρ‚ Π² источникС), Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ β€”delete:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ большС Π½Π΅Ρ‚ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ источника (Π² somedir):

rsync -avz -e "ssh -p 2013" --delete ./somedir [emailΒ protected]:/home/bkp/
[emailΒ protected]'s password: 
sending incremental file list
deleting somedir/lolo
somedir/

sent 159 bytes  received 77 bytes  67.43 bytes/sec
total size is 2,041,319  speedup is 8,649.66

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, rsync сначала выполняСт ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для увСрСнности, Ρ‡Ρ‚ΠΎ Ρ…Π²Π°Ρ‚ΠΈΡ‚ свободного мСста Π½Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠΉ сторонС (Ρ‚.Π΅. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€”delete-before). Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ послС копирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€”delete-after.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² процСссС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ β€”del (β€”delete_during). Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ рСсурсов ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠšΡΡ‚Π°Ρ‚ΠΈ, это Π½Π΅ всС Β«deleteΒ» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ, Π²ΠΎΡ‚ ΠΈΡ… ΠΏΠΎΠ»Π½Ρ‹ΠΉ список с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ описаниСм:

--del – an alias for --delete-during
--delete – delete extraneous files from dest dirs
--delete-before – receiver deletes before transfer (default)
--delete-during – receiver deletes during xfer, not before
--delete-delay – find deletions during, delete after
--delete-after – receiver deletes after transfer, not before
--delete-excluded – also delete excluded files from dest dirs

А Ссли Π²Π°ΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌ сСрвСрС, вмСсто ΠΎΠΏΡ†ΠΈΠΈ β€”del.. ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ β€”ignore-existing.

β€”no-perms β€”no-owner β€”no-group

Иногда Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ (ΠΏΡ€Π°Π²Π° Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ). Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ опциями β€”no-p β€”no-o β€”no-g (ΠΎΠ½ΠΎ ΠΆΠ΅ β€”no-perms β€”no-owner β€”no-group):

rsync -avz -e "ssh -p 2013" --no-p --no-o --no-g ./somedir 

Π’Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ порядок (особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ Β«β€”no-OPTIONΒ» Π² rsync).

β€”inplace

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ rsync, ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° создаСт Π΅Π³ΠΎ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, Π° ΠΏΠΎΡ‚ΠΎΠΌ замСняСт старый Ρ„Π°ΠΉΠ» Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ. Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ исходный Ρ„Π°ΠΉΠ» Π½Π΅ пострадал Π² случаС ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π±ΠΎΠ΅Π². Данная опция позволяСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ rsync сразу Π½Π°Ρ‡Π°Π» ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ старого Ρ„Π°ΠΉΠ»Π°. ΠžΠΏΡ†ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ больший Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅:

rsync -av --inplace ./Π’ΠΈΠ΄Π΅ΠΎ.mp4 ./vidinplace.mp4

-W, β€”whole-file

Π­Ρ‚Π° опция Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π°, Ссли ΠΌΡ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ с Π½Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ слабого сСрвСра, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ rsync’а ΠΈ с Π½ΠΈΠΌ вСсь Ρ„Π°ΠΉΠ» пСрСдаСтся ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, Π½Π΅ тратя врСмя CPU Π½Π° вычислСния.

Π§Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅?

Π― постарался ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования rsync, ΠΈ сказу сразу: это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ эта ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°.

Если Π²Ρ‹ Π³Π΄Π΅-Ρ‚ΠΎ нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈΠ»ΠΈ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ интСрСсныС способы использования rsync β€” ΠΏΠΈΡˆΠΈΡ‚Π΅, я добавлю ΠΈΡ… Π² ΡΡ‚Π°Ρ‚ΡŒΡŽ ;).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ:

How copy and exclude files in Linux?

How do I exclude a file in Linux?

When you need to exclude a large number of different files and directories, you can use the rsync –exclude-from flag. To do so, create a text file with the name of the files and directories you want to exclude. Then, pass the name of the file to the –exlude-from option.

How do I copy all files except one in Linux?

The best and simple way is using find . Go to the source directory. Then use the following commands. This copies all files except β€œ*.

How do I copy a selected file in Linux?

Method 1 – Copy specific file types while preserving directory structure using β€œfind” and β€œcp” or β€œcpio” commands

  1. find – command to find files and folders in Unix-like systems.
  2. the dot (.) …
  3. -iname β€˜*. …
  4. -exec cp – execute the β€˜cp’ command to copy files from source to destination directory.

19 ΠΌΠ°Ρ€. 2020 Π³.

How do I copy a folder in Linux without files?

Linux : Copy only directory structure without copying content

  1. mkdir /where/ever/you/want.
  2. cd /from/where/you/want/to/copy/directory/structure.
  3. find * -type d -exec mkdir /where/you/want/{} ;

26 июл. 2010 г.

Which command will find all the files without permission 777?

The -perm command line parameter is used with find command to search files based on permissions. You can use any permission instead of 777 to find files with that permissions only. The above command will search all files and directories with permission 777 under the specified directory.

How do I use rsync?

Copy a File or Directory from Local to Remote Machine

To copy the directory /home/test/Desktop/Linux to /home/test/Desktop/rsync on a remote machine, you need to specify the IP address of the destination. Add the IP address and the destination after the source directory.

What does cp command do in Linux?

cp stands for copy. This command is used to copy files or group of files or directory. It creates an exact image of a file on a disk with different file name.

Is rsync faster than CP?

rsync is much faster than cp for this, because it will check file sizes and timestamps to see which ones need to be updated, and you can add more refinements. … You can also use rsync to copy or sync files to a remote machine, or make is run as a daemon.

What is Shopt Extglob?

As you can guess, it stands for extended globbing . This option allows for more advanced pattern matching. From man bash : extglob If set, the extended pattern matching features described above under Pathname Expansion are enabled.

How do I copy and paste in Linux terminal?

Press Ctrl + C to copy the text. Press Ctrl + Alt + T to open a Terminal window, if one is not already open. Right-click at the prompt and select β€œPaste” from the popup menu. The text you copied is pasted at the prompt.

How do I copy directories in Linux?

In order to copy a directory on Linux, you have to execute the β€œcp” command with the β€œ-R” option for recursive and specify the source and destination directories to be copied. As an example, let’s say that you want to copy the β€œ/etc” directory into a backup folder named β€œ/etc_backup”.

How do you move files in Linux?

To move files, use the mv command (man mv), which is similar to the cp command, except that with mv the file is physically moved from one place to another, instead of being duplicated, as with cp. Common options available with mv include: -i β€” interactive.

How do I copy a folder tree without files?

To Copy Folder Structure without Copying Files in Windows 10,

  1. Open a Command Prompt.
  2. Type xcopy source destination /t /e .
  3. Replace source with the path that contains your current folder hierarchy with files.
  4. Replace destination with the path that will store the empty folder hierarchy(the new one).

4 сСнт. 2019 Π³.

How do I find the directory structure in Linux?

If you run the tree command without any arguments, the tree command will display all contents of the current working directory in a tree-like format. Upon completion of listing all files/directories found, tree returns the total number of files and/or directories listed.

How do I copy a directory tree only structure?

Using the XCopy command

The built-in XCopy command in Windows can copy the directory or directory tree (i.e., recursively). The switches /T /E make sure that only the folders (including empty folders) are copied without copying the files.

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Rsync для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Rsync — ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ синхронизируСт ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот инструмСнт для локальной синхронизации Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ ΠΈ дисками ΠΈΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync Π² Linux ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ всС ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ мСста. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… сцСнариях Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ².

Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ Π² этом руководствС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsync. ΠœΡ‹ пСрСчислим Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования exclude для повсСднСвного использования rsync.

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с sudo ΠΈΠ»ΠΈ root привилСгиями
  • Доступ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС / ΠΎΠΊΠ½Ρƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°
  • Rsync, установлСнный Π² вашСй систСмС

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ rsync Exclude Option

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --exclude с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ rsync ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΊ исходному ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ.Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --exclude ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ rsync , Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌ.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис для ΠΎΠΏΡ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ rsync выглядит Ρ‚Π°ΠΊ:

  rsync [ОПЦИИ] --exclude 'file_or_directory' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ source / ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС источника для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ мСсто.

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ destination / Π½Π° имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ rsync Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ располоТСния для Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….Если ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π΅ сущСствуСт, rsync создаст Π΅Π³ΠΎ для вас ΠΈ пСрСнСсСт Ρ„Π°ΠΉΠ»Ρ‹ Π² этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ мСсто слСдуйтС Π½Π°ΡˆΠ΅ΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ руководству, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsync Ρ‡Π΅Ρ€Π΅Π· SSH.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π°Ρ косая Ρ‡Π΅Ρ€Ρ‚Π° (/) Π² исходном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ измСняСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync .

  • Если Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ, исходный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ копируСтся Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π° Π·Π°Ρ‚Π΅ΠΌ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.
  • Когда Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ, rsync ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ содСрТимоС исходного , Π° Π½Π΅ создаСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ rsync ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ -a (, Π°Ρ€Ρ…ΠΈΠ² ) ΠΈ -v ( ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ) ( -av ). ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -a синхронизируСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ рСкурсивно, сохраняя Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, символичСскиС ссылки, ΠΏΡ€Π°Π²Π° собствСнности ΠΈ настройки Π³Ρ€ΡƒΠΏΠΏΡ‹.Π€Π»Π°Π³ -v являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ…ΠΎΠ΄ выполнСния ΠΈ состояниС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ содСрТимого ΠΏΠ°ΠΏΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsync, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ.

НапримСр:

  rsync -av --exclude 'testfile1.txt' sourcedir / destinationdir /  

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° позволяСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² destinationdir ΠΈΠ· sourcedir, Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ testfile1.тСкст.

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, testfile1.txt отсутствуСт Π² спискС.

Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

  sudo rm -rf ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния  

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ rsync --exclude file, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнт Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ (вмСсто ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°):

  rsync -av --exclude 'dir1' sourcedir / destinationdir /  

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° скопировала содСрТимоС sourcedir Π² destinationdir ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ»Π° dir1 , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π½Π° основС шаблона

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΡƒ * (подстановочный Π·Π½Π°ΠΊ) ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ соотвСтствуСт ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ.

ΠžΡ‚

Π΄ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с test , Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

  rsync -av --exclude 'test *' sourcedir / destinationdir /  

ВсС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ этому ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ подстановочный Π·Π½Π°ΠΊ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ шаблоном .

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° 3:

  rsync -av --exclude '* 3' источник / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния /  

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΡƒ Π΄ΠΎ ΠΈ послС шаблона, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ - ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ .

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ rsync позволяСт ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ синхронизации Π΄Π°Π½Π½Ρ‹Ρ….Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΡƒ * , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, содСрТащСго мноТСство Ρ„Π°ΠΉΠ»ΠΎΠ² .iso , Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ трСбуСтся.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°. iso , запуститС эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

  rsync -av --exclude '* .iso' sourcedir / destinationdir /  

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ rsync Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π» .iso Ρ„Π°ΠΉΠ»ΠΎΠ². ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ содСрТимоС исходного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ для сравнСния.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ

Π’ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Если исходный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ содСрТит ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ трСбуСтся, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --max-size = size_in_mb_or_gb . Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ size_in_mb_or_gb Π½Π° ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€.

НапримСр, , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 500 ΠœΠ‘, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

  rsync -av --max-size = 500m sourcedir / destinationdir /  

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСньшС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --min-size = size_in_mb_or_gb .

НапримСр, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ пСрСнСсти ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с изобраТСниями, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ² эскизов. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ всСх Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 1 ΠœΠ‘, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСньшС этого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

  rsync -av --min-size = 1 ΠΌ sourcedir / destinationdir /  

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ , --exclude rsync с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ минимального ΠΈΠ»ΠΈ максимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² --exclude , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync --exclude folder ΠΈ rsync --exclude file (s) для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π›ΡŽΠ±ΡƒΡŽ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Ρ€Π°Π½Π΅Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .txt , Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ dir3 ΠΈ dir4 :

  rsync -av --exclude '* .txt' --exclude 'dir3' --exclude 'dir4' sourcedir / destinationdir /  

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ записСй - ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ , сколько Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΠΉ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ --exclude , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΡƒΠ·ΠΎΡ€Ρ‹ запятой.

НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  rsync -av --exclude = {'*. Txt', 'dir3', 'dir4'} sourcedir / destinationdir /  

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ пСрСчислСнныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈΠ· списка

Когда Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ большоС количСство Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ rsync --exclude-from .Для этого создайтС тСкстовый Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ имя Ρ„Π°ΠΉΠ»Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ --exlude-from .

Команда выглядит Ρ‚Π°ΠΊ:

  rsync -av --exclude-from = {'list.txt'} sourcedir / destinationdir /  

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ rsync пропускаСт всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, пСрСчислСнныС Π² Ρ„Π°ΠΉΠ»Π΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ любой ΡƒΠ·ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали Π² этом руководствС.

Π€Π°ΠΉΠ» ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ использовали Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹:

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этом руководствС ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ всС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ rsync, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого инструмСнта.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsync.

Как ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Directory Rsync?

Rsync (Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ удалСнная синхронизация) — ΠΎΡ‡Π΅Π½ΡŒ мощная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для локальной ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Он прСдустановлСн Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ дистрибутивов Linux. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΈ синхронизации Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… мСстах. Π›ΡƒΡ‡ΡˆΠ΅Π΅ Π² rsync Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ объСм Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ мСсто, ΠΏΡƒΡ‚Π΅ΠΌ копирования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹.Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ rsync, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ собираСмся ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ сСгодня; это ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈΠ· синхронизации. Π­Ρ‚ΠΎ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΠΎ врСмя Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

ΠœΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² rsync, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ здСсь ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ протСстированы Π½Π° Ubuntu 20.04 LTS, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ для Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивов Linux с установлСнным rsync.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

ΠŸΡ€ΠΈ синхронизации ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», располоТСнный Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ –exclude, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт имя Ρ„Π°ΠΉΠ»Π°, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π² Π·Π°ΠΏΡΡ‚ΡƒΡŽ.

Бинтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚:

$ rsync -a —exclude «имя_Ρ„Π°ΠΉΠ»Π°Β» исходный_ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ / Ρ†Π΅Π»Π΅Π²ΠΎΠΉ_ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /

Π—Π΄Π΅ΡΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рСкурсивной синхронизации.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ sample.txt ΠΈΠ· источника ΠΏΡ€ΠΈ синхронизации src_dir ΠΈ dest_dir , ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

$ rsync -a —exclude β€˜sample.txt ‘src_dir / dest_dir /

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ) ΠΈΠ· источника ΠΏΡ€ΠΈ синхронизации исходного ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

$ rsync -a —exclude «имя_ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Β» src_dir / dest_dir /

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ sampledir ΠΏΡ€ΠΈ синхронизации src_dir ΠΈ dest_dir , ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

$ rsync -a —exclude β€˜sampledir’ src_dir / dest_dir /

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π½ΠΎ Π½Π΅ сам ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ имя ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт / *:

$ rsync -a —exclude ‘sampledir / *’ src_dir / dest_dir /

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² мСсто назначСния, Π½ΠΎ Π½Π΅ Π΅Π³ΠΎ содСрТимоС.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π²ΠΎ врСмя процСсса синхронизации, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$ rsync -a —exclude ‘имя_Ρ„Π°ΠΉΠ»Π°’ —exclude ‘directory1 —exclude’ directory2 ‘src_dir / dest_dir /

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ –exclude ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ –exclude , ΡƒΠΊΠ°Π·Π°Π² всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках.

$ rsync -a —exclude = {‘имя_Ρ„Π°ΠΉΠ»Π°’, ‘ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1’, ‘ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2’} src_dir / dest_dir /

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² — ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ имя Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ –exclude-from :

$ rsync -a —exclude-from ‘list’ src_dir / dest_dir /

Π—Π΄Π΅ΡΡŒ «список» содСрТит имя Ρ„Π°ΠΉΠ»Π° ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° синхронизируСт src_dir с dest_dir, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, упомянутыС Π² Ρ„Π°ΠΉΠ»Π΅ Β«listΒ».

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsync Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. НапримСр, ΠΏΡ€ΠΈ синхронизации ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .txt . Команда Π² этом случаС Π±ΡƒΠ΄Π΅Ρ‚:

$ rsync -a —exclude β€˜* .txt’ src_dir / dest_dir /

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsync Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ ΠΈΡ… ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ.Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ –exclude, Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ –max-size = <Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΠœΠ‘> ΠΈΠ»ΠΈ –min-size == <Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΠœΠ‘> Π² зависимости ΠΎΡ‚ максимального ΠΈ минимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π° соотвСтствСнно.

Π’ΠΎΡ‚ список нашСго src_dir , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² вмСстС с ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π² ΠœΠ‘.

Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с dest_dir, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 100 ΠœΠ‘ . Π’ этом случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚:

$ rsync -av —max-size = 100 ΠΌ src_dir / dest_dir /

Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСньшС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, скаТСм, 50 ΠœΠ‘, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

$ rsync -av —min-size = 50 ΠΌ src_dir / dest_dir /

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΡ‚ ΠΈ всС! Π’ этом постС ΠΌΡ‹ обсудили Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² rsync.ΠœΡ‹ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ„Π°ΠΉΠ»Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° основС ΠΈΡ… минимального / максимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

Как ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ ΠΈΠ· rsync

Π’Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ Π² своСм спискС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈ использовании rsync всС ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ (ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅!) ΠŸΡƒΡ‚ΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с /, привязаны ΠΊ Β«ΠΊΠΎΡ€Π½ΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Β».

ΠšΠΎΡ€Π΅Π½ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС — / home / chris .Если Π΄Π°:

rsync -Paz --exclude-from 'rsync-exclude.txt' / [email protected]:

… Ρ‚ΠΎΠ³Π΄Π° ваши ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ (Π½ΠΎ Π²Ρ‹ скопируСтС всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π² этой Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС!).

Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ просто ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ , Π° ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ / home / chris с ΠΈΠΌΠ΅Π½Π΅ΠΌ "home / chris / Downloads" Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, rsync Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ подходящСго.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ части / home / chris ΠΈΠ· вашСго rsync-exclude.txt Ρ„Π°ΠΉΠ».

На самом Π΄Π΅Π»Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° всСго ΠΎΠ΄Π½Π° строка Π² Ρ„Π°ΠΉΠ»Π΅:

  / Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° , Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ / ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«DownloadsΒ» , ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ваш Β«Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒΒ» (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ исходного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ‚Π°ΠΊΠΆΠ΅ извСстного ΠΊΠ°ΠΊ Β«ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈΒ»). Downloads directory, поэтому Π²Π°ΠΌ понадобится Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ /.

Π‘ΠΠœΠ«Π™ ΠŸΠ ΠžΠ‘Π’ΠžΠ™ Π‘ΠŸΠžΠ‘ΠžΠ‘ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько ΠΏΡƒΡ‚Π΅ΠΉ)

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, просто сдСлайтС это (избСгая ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°):

  rsync -Paz --exclude / Downloads / home / chris / [email protected]: LinuxHome
  

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ - ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅Π³ΠΈ , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  rsync -Paz --exclude / Downloads --exclude '/ Something Else' --exclude .hiddenFile / home / chris / [email protected]: LinuxHome
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ Π½Π΅Ρ‚, ΠΎΠ½Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ .hiddenFile ΠΈΠ· любой Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚!

Но Ссли Ρƒ вас большС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ --exclude-from ΠΈ Ρ„Π°ΠΉΠ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π― Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ всС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ поняли, Π½ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ Π² rsync слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠ· / home / chris /

ΠŸΡ€ΠΎΡ†ΠΈΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ страницу rsync : Β«Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ / Π² источникС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚Β« ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС этого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Β», Π° Π½Π΅Β« ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Β».Β«

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π²Ρ‹ остановитС эту ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΊΠΎΡΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ chris Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, , содСрТащий всС ΠΈΠ· / home / chris (ΠΊΡ€ΠΎΠΌΠ΅ исходного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Downloads , ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ!) .

6 ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² rsync для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ exclude-from

Rsync — ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для создания Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΈΠ»ΠΈ синхронизации Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ мСстополоТСниями (ΠΈΠ»ΠΈ сСрвСрами).

Π’Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅ это, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π½Π΅Π΅ ΠΌΡ‹ прСдставили Π²Π°ΠΌ практичСскиС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования rsync.

Π’ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ ситуации Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²) ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· rsync.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ / ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π²ΠΎ врСмя rsync.

Π‘Π½Π°Ρ‡Π°Π»Π° создайтС ΠΎΠ±Ρ€Π°Π·Π΅Ρ† структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ (с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ пустыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ†Π΅Π»Π΅ΠΉ тСстирования.

 $ ΠΊΠ΄ ~
$ mkdir -p источник / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2
$ mkdir -p источник / dir3
$ touch source / file1.txt
$ touch source / file2.txt
$ touch source / dir1 / dir2 / file3.txt
$ touch source / dir3 / file4.txt 

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° создаст исходный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Π² вашСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅) со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структурой.

 источник
- file1.txt
- file2.txt
- dir1
  - dir2
    - file3.txt
- dir3
  - file4.txt 

1. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dir1 (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ) ΠΈΠ· источника Π² ΠΏΠ°ΠΏΠΊΡƒ назначСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ rsync –exclude, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 $ ΠΏΠΌ-Ρ€Ρ„ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

$ rsync -avz --exclude 'dir1' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /
созданиС списка Ρ„Π°ΠΉΠ»ΠΎΠ² ... Π³ΠΎΡ‚ΠΎΠ²ΠΎ
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dest
./
file1.txt
file2.txt
dir3 /
dir3 / file4.txt 

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dir1 Π½Π΅ скопирован ΠΈΠ· исходного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

 $ Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
мСсто назначСния
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / file2.txt
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / file1.txt
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / dir3
мСсто назначСния / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³3 / Ρ„Π°ΠΉΠ»4.txt 

2. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ любой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ) Π² источникС /, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Β«dir *Β»

 $ ΠΏΠΌ-Ρ€Ρ„ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

$ rsync -avz --exclude 'dir *' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /
созданиС списка Ρ„Π°ΠΉΠ»ΠΎΠ² ... Π³ΠΎΡ‚ΠΎΠ²ΠΎ
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
file2.txt 

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π½Π΅ скопированы ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, содСрТащиС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Β«dirΒ».

 $ Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
мСсто назначСния
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / file2.txt
Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / file1.txt 

3. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π² ΠΎΠΏΡ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 $ ΠΏΠΌ-Ρ€Ρ„ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

$ RSync -avz --exclude 'dir1 / dir2 / file3.txt' источника / назначСния /
созданиС списка Ρ„Π°ΠΉΠ»ΠΎΠ² ... Π³ΠΎΡ‚ΠΎΠ²ΠΎ
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
file2.txt
dir1 /
dir1 / dir2 /
dir3 /
ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³3 / Ρ„Π°ΠΉΠ»4.txt 

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π» ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» (Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ dir1 / dir2 / file3.txt).

 $ Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
мСсто назначСния
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / file2.txt
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / file1.txt
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / dir1
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / dir3
Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / dir3 / file4.txt 

4. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ всСгда ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ

Если Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ остороТны, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, каТСтся, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ (Ρ‚.Π΅.e /dir1/dir2/file3.txt). Но с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния rsync ΠΏΡƒΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСгда ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ dir1 / dir2 / file3.txt. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ rsync Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ dir1 Π² исходном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (Π° Π½Π΅ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅).

 $ rsync -avz --exclude '/dir1/dir2/file3.txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / 

Π˜Ρ‚Π°ΠΊ, привСдСнная Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ‚ΠΎΡ‡Π½ΠΎ такая ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ. Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ (ΠΈ для облСгчСния чтСния) Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ / ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ.

 $ rsync -avz --exclude 'dir1 / dir2 / file3.txt 'источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / 

5. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ шаблон. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .txt, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

 $ rsync -avz --exclude '* .txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /
созданиС списка Ρ„Π°ΠΉΠ»ΠΎΠ² ... Π³ΠΎΡ‚ΠΎΠ²ΠΎ
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
dir1 /
dir1 / dir2 /
dir3 / 

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ *.txt Ρ„Π°ΠΉΠ»Ρ‹.

 $ Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
мСсто назначСния
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / dir1
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2
destination / dir3 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию своСго домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ‚Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°.

6. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ rsync Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 $ rsync -avz --exclude file1.txt --exclude dir3 / file4.txt источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / 

ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅. Π§Ρ‚ΠΎ, Ссли Π±Ρ‹ Ρƒ мСня Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Ρ…ΠΎΡ‡Ρƒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· rsync?

Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ нСсколько –exclude, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, ΠΈ слоТно ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ rsync Π² дальнСйшСм.

Π˜Ρ‚Π°ΠΊ, Π»ΡƒΡ‡ΡˆΠΈΠΉ способ — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ rsync –exclude-from, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ (ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.

Π‘Π½Π°Ρ‡Π°Π»Π° создайтС тСкстовый Ρ„Π°ΠΉΠ» со списком всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ.Π­Ρ‚ΠΎ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· rsync.

 $ vim exclude-list.txt
file1.txt
dir3 / file4.txt 

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ rsync, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ –exclude-from с Ρ„Π°ΠΉΠ»ΠΎΠΌ exclude-list.txt, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 $ ΠΏΠΌ-Ρ€Ρ„ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅

$ rsync -avz --exclude-from 'exclude-list.txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /
созданиС списка Ρ„Π°ΠΉΠ»ΠΎΠ² ... Π³ΠΎΡ‚ΠΎΠ²ΠΎ
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file2.txt
dir1 /
dir1 / dir2 /
ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2 / Ρ„Π°ΠΉΠ»3.тСкст
dir3 / 

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ для Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², пСрСчислСнных Π² Ρ„Π°ΠΉΠ»Π΅ exclude-list.txt, Π½Π΅Ρ‚ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ.

 $ Π½Π°ΠΉΡ‚ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
мСсто назначСния
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / file2.txt
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / dir1
ΠΏΡƒΠ½ΠΊΡ‚ назначСния / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2
мСсто назначСния / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2 / file3.txt
destination / dir3 

10 Команда Linux rsync для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Rsync (удалСнная синхронизация) — это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ локального копирования ΠΈ синхронизации Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² систСмах Linux / Unix.Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΈ локально ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, дисках ΠΈ сСтях, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ двумя машинами Linux.

Rsync — ΠΎΠ΄Π½Π° ΠΈΠ· самых ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для администратора сСрвСра, Π½ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½Π° синхронизируСт всС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ создаСт ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΈ использовании rsync.

Π’Π°ΠΆΠ½Ρ‹Π΅ особСнности ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync

  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ: Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· rsync Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ вСсь ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ исходным ΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ.Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· rsync ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π² мСсто назначСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΈΠ»ΠΈ Π±Π°ΠΉΡ‚Ρ‹, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΎΡ‡Π΅Π½ΡŒ быстрой.
  • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: rsync позволяСт ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ssh Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.
  • Низкая пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ: rsync ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ сТатиС ΠΈ распаковку Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Π±Π»ΠΎΠΊΠ°ΠΌ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π΅ΠΉ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ сторонС соотвСтствСнно. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, полоса пропускания, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ rsync, всСгда Π±ΡƒΠ΄Π΅Ρ‚ мСньшС ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ FTP.
  • ΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ: Для установки ΠΈ выполнСния rsync Π½Π΅ трСбуСтся Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис rsync ΠΎΡ‡Π΅Π½ΡŒ прост ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ssh, scp ΠΈ cp.

  $ sudo ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ rsync источник назначСния  
  • -v: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ.
  • -r: рСкурсивно ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ (Π½ΠΎ Π½Π΅ сохраняСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ…).
  • -a: Ρ€Π΅ΠΆΠΈΠΌ Π°Ρ€Ρ…ΠΈΠ²Π°, Ρ€Π΅ΠΆΠΈΠΌ Π°Ρ€Ρ…ΠΈΠ²Π° позволяСт рСкурсивно ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ сохраняСт символичСскиС ссылки, ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΏΡ€Π°Π²Π° собствСнности ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π³Ρ€ΡƒΠΏΠΏ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ.
  • -z: ΡΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π°.
  • -h: ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ, Π²Ρ‹Π²ΠΎΠ΄ чисСл Π² ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.
  • -d: ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π±Π΅Π· рСкурсии -e: ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ssh ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ.

Π‘Π½Π°Ρ‡Π°Π»Π° создайтС ΠΎΠ±Ρ€Π°Π·Π΅Ρ† структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ (с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ пустыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ†Π΅Π»Π΅ΠΉ тСстирования.

  $ ΠΊΠ΄ ~
  $ sudo mkdir -p источник / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2
  $ sudo mkdir -p источник / dir3
  $ sudo touch source / file1.txt
  $ sudo touch source / file2.тСкст
  $ sudo сСнсорный источник / dir1 / dir2 / file3.txt
  $ sudo сСнсорный источник / dir3 / file4.txt
  

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ создадут исходный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅) со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структурой. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ структуру исходного ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo Π½Π°ΠΉΡ‚ΠΈ источник /  
  источник
  - file1.txt
  - file2.txt
  - dir1
    - dir2
      - file3.txt
  - dir3
    - file4.txt 
 

1) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ удаляСм Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ , Ссли ΠΎΠ½ сущСствуСт, ввСдя ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  

Если ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ dir3 ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈΠ· исходной ΠΏΠ°ΠΏΠΊΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ назначСния, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ rsync --exclude , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude 'dir3' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude 'dir3' source / [email protected]: destination /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
file2.txt
dir1 /
dir1 / dir2 /
ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2 / file3.txt

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 307 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 126 Π±Π°ΠΉΡ‚ 866,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

2) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

Если ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ file3.txt ΠΈΠ· источника Π² ΠΏΠ°ΠΏΠΊΡƒ назначСния, ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --exclude 'dir1 / dir2 / file3.txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude 'dir1 / dir2 / file3.txt' source / [email protected]: Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
file2.txt
dir1 /
dir1 / dir2 /
dir3 /
dir3 / file4.txt

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 338 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 130 Π±Π°ΠΉΡ‚ 936,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

НапримСр, Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ rsync / var Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, Π½ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ кСш ΠΈ ΠΏΠ°ΠΏΠΊΡƒ tmp, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ содСрТат Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ содСрТимого ΠΌΠ΅ΠΆΠ΄Ρƒ пСрСзапусками, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

  $ sudo rsync -aAXhv --exclude = {"/ var / cache", "/ var / tmp"} / var remoteuser @ 192.168.122.105: ΠΏΡƒΠ½ΠΊΡ‚ назначСния /  

3) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ шаблон. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат .txt Π² качСствС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --exclude '* .txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude '*.txt 'источник / [email protected]: ΠΏΡƒΠ½ΠΊΡ‚ назначСния /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
dir1 /
dir1 / dir2 /
dir3 /

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 136 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 65 Π±Π°ΠΉΡ‚ΠΎΠ² 402,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

4) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ

ΠœΡ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠΌ любой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³) ΠΏΠΎΠ΄ source / , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ начинаСтся с Β«dirΒ»

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --exclude 'dir *' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ $ sudo rsync -avz --exclude 'dir *' источник / [email protected]: ΠΏΡƒΠ½ΠΊΡ‚ назначСния /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
file2.txt

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 168 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 91 Π±Π°ΠΉΡ‚ 518,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

5) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Π‘Π½Π°Ρ‡Π°Π»Π° создайтС тСкстовый Ρ„Π°ΠΉΠ» со списком всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ.Π­Ρ‚ΠΎ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· rsync.

  $ sudo nano exclude-list.txt  
  file2.txt
  dir3 / file4.txt 
 

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ rsync, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΡ†ΠΈΡŽ --exclude-from с exclude-list.txt , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --exclude-from 'exclude-list.txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude-from 'exclude-list.txt' source / [email protected]: destination /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
dir1 /
dir1 / dir2 /
ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2 / file3.txt
dir3 /

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 277 Π±Π°ΠΉΡ‚ принято 111 Π±Π°ΠΉΡ‚ 776,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

6) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ всСгда ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΏΠΎΡ…ΠΎΠΆΠ΅, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /dir3/file4.txt).Но с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния rsync ΠΏΡƒΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСгда ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ dir3 / file4.txt. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ rsync Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ dir3 Π² исходном ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ (Π° Π½Π΅ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅).

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --exclude '/dir3/file4.txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude '/dir3/file4.txt' source / bobby @ 192.168.122.105: ΠΏΡƒΠ½ΠΊΡ‚ назначСния /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
file2.txt
dir1 /
dir1 / dir2 /
ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2 / file3.txt
dir3 /

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 334 Π±Π°ΠΉΡ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 130 Π±Π°ΠΉΡ‚ΠΎΠ² 928,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude 'dir3 / file4.txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

7) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ нСпосрСдствСнно ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ мСньшСС количСство Ρ„Π°ΠΉΠ»ΠΎΠ².НапримСр, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ / source с Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ, Π½ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ file3.txt ΠΈ file4.txt, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --exclude = {"/ dir1 / dir2 / file3.txt", "/ dir3 / file4.txt"} source / destinaton /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude = {"/ dir1 / dir2 / file3.txt", "/ dir3 / file4.txt"} source / bobby @ 192.168.122.105: ΠΏΡƒΠ½ΠΊΡ‚ назначСния /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
./
file1.txt
file2.txt
dir1 /
dir1 / dir2 /
dir3 /

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 268 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 73 Π±Π°ΠΉΡ‚Π° 682,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

8) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΎΠΊ

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ² * .txt ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ dir3 , ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --exclude '*.txt '--exclude' dir3 'источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude '* .txt' --exclude 'dir3' source / [email protected]: destination /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
dir1 /
dir1 / dir2 /

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 109 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 61 Π±Π°ΠΉΡ‚ 340,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

9) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ шаблоном

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нСсколько ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ шаблоном для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ подстановочный Π·Π½Π°ΠΊ * для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° dir .

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --exclude 'dir *' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --exclude 'dir *' источник / [email protected]: ΠΏΡƒΠ½ΠΊΡ‚ назначСния /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
Ρ„Π°ΠΉΠ»2.тСкст

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 168 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 91 Π±Π°ΠΉΡ‚ 518,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 0 ускорСниС 0,00 
 

10) Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°

ΠœΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π² процСссС Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ. Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΠΌΡ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 1 Π“Π‘. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π΄ΡƒΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅, Ссли Π±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ просто ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ большиС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π½Π΅Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

НапримСр, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 3 ΠœΠ‘.ВсС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ --max-size = SIZE с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ rsync. Π­Ρ‚Π° опция Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ большС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

  $ sudo rm -rf Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅  
  $ sudo rsync -avz --max-size = 3 ΠΌ источник / мСсто назначСния /  

Для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ синхронизации ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅.

  $ sudo rsync -avz --max-size = 3m источник / [email protected]: ΠΏΡƒΠ½ΠΊΡ‚ назначСния /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
file1.txt
file2.txt
dir1 /
dir1 / dir2 /
dir1 / dir2 / Bootstrap-tutorial.pdf
ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³1 / ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³2 / file3.txt
dir3 /
dir3 / file4.txt

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 3080297 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 168 Π±Π°ΠΉΡ‚ 6160930,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 8,101,480 ускорСниС 2,63 
 

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ --min-size = SIZE , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ любой Ρ„Π°ΠΉΠ», Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ мСньшС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ.

, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠ΅Π½Π΅Π΅ 7 ΠœΠ‘, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

  $ sudo rsync -avz --min-size = 7 ΠΌ источник / мСсто назначСния /  
  Π²Ρ‹Ρ…ΠΎΠ΄
ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΎΡ‡Π½ΠΎΠ³ΠΎ списка Ρ„Π°ΠΉΠ»ΠΎΠ²
созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния
./
dir1 /
dir1 / dir2 /
dir3 /

ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ 313 Π±Π°ΠΉΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ 65 Π±Π°ΠΉΡ‚ 756,00 Π±Π°ΠΉΡ‚ / сСк
ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ 8101480 ускорСниС 21432,49 
 

Буффиксы Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • Β«KΒ» (ΠΈΠ»ΠΈ Β«KiBΒ») — ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ (1024)
  • Β«MΒ» (ΠΈΠ»ΠΈ Β«MiBΒ») — ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ (1024 * 1024)
  • Β«GΒ» (ΠΈΠ»ΠΈ Β«GiBΒ») — Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ (1024 * 1024 * 1024)

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ Π±Ρ‹Π» Ρ€Π°Π²Π΅Π½ 1000 вмСсто 1024, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Β«ΠšΠ‘Β», Β«ΠœΠ‘Β» ΠΈΠ»ΠΈ Β«Π“Π‘Β» (ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: строчныС Π±ΡƒΠΊΠ²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ для всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ).

НадСюсь, Π²Π°ΠΌ понравился этот ΡƒΡ€ΠΎΠΊ! ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ поТалуйста свои ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅:

Как ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Rsync

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ rsync, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π½Π° основС шаблона.

Π—Π΄Π΅ΡΡŒ, Π² Bobcares, ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ нСсколько Ρ‚Π°ΠΊΠΈΡ… запросов, связанных с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ rsync, ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π½Π°ΡˆΠΈΡ… слуТб управлСния сСрвСром для Π²Π΅Π±-хостов ΠΈ поставщиков ΠΎΠ½Π»Π°ΠΉΠ½-услуг.

БСгодня ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync.

Как ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Rsync

Π’ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ наши ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ слуТбы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync.

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

ΠœΡ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΏΠ΅Ρ€Π΅Π΄Π°Π² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ –exclude.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„Π°ΠΉΠ» src_directory / file.txt Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½:

  rsync -a --exclude 'file.txt' src_directory / dst_directory /  

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Π°. Нам просто Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ –exclude.

  rsync -a --exclude 'dir1' src_directory / dst_directory /  

Однако, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ содСрТимоС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π½ΠΎ Π½Π΅ сам ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ dir1 / * вмСсто dir1:

  rsync - a --exclude 'dir1 / *' src_directory / dst_directory /  

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΌΡ‹ просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ –exclude нСсколько Ρ€Π°Π·.

  rsync -a --exclude 'file1.txt' --exclude 'dir1 / *' --exclude 'dir2' src_directory / dst_directory /  

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ –exclude ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках {} Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

  rsync -a --exclude = {'file1.txt', 'dir1 / *', 'dir2'} src_directory / dst_directory /  

Π’ случаС, Ссли количСство Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ / ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π²Π΅Π»ΠΈΠΊΠΎ, ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ –exclude-from.Π’ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ exclude-file.txt — это Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ помСстили всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.

  rsync -a --exclude-from = 'exclude-file.txt' src_directory / dst_directory /  
  exclude-file.txt 

file1.txt
dir1 / *
dir2 

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π½Π° основС шаблона

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ rsync, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π½Π° основС шаблона, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ .jpg, ΠΌΡ‹ запускаСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

  rsync -a --exclude '* .jpg *' src_directory / dst_directory /  

Но Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° .jpg, Ρ‚ΠΎ Π²ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° для этого.

  rsync -a -m --include = '*. Jpg' --include = '* /' --exclude = '*' src_directory / dst_directory /  

[НуТна Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒ с запросами ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync? — ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.]

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ сСгодняшнСй записи ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ наши ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ слуТбы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rsync.

ΠŸΠ Π•Π”ΠžΠ’Π’Π ΠΠ©ΠΠ™Π’Π• Π‘Π’ΠžΠ™ Π‘Π•Π Π’Π•Π  ОВ Π’Π«Π‘ΠžΠ Π!

Никогда большС Π½Π΅ тСряйтС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ·-Π·Π° Π½ΠΈΠ·ΠΊΠΎΠΉ скорости сСрвСра! ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ.

Наши спСциалисты ΠΏΠΎ сСрвСрам Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ваш сСрвСр 24/7, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ оставался молниСносным ΠΈ бСзопасным.

НАЧАВЬ

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rsync

Rsync — ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для создания Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΈΠ»ΠΈ синхронизации Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ мСстополоТСниями (ΠΈΠ»ΠΈ сСрвСрами).

Π’ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠΉ ситуации Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²) ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° ΠΈΠ· rsync. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ:

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dir1 (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ) ΠΈΠ· источника Π² ΠΏΠ°ΠΏΠΊΡƒ назначСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ rsync –exclude, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 $ rsync -avz --exclude 'dir1' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / 

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ любой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ) Π² источникС /, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ Β«dir *Β»

 $ rsync -avz --exclude 'dir *' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / 

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π² ΠΎΠΏΡ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 $ rsync -avz --exclude 'dir1 / somefile.txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / 

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ шаблон. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .txt, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

 $ rsync -avz --exclude '* .txt' источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / 

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ rsync Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 $ rsync -avz --exclude file1.txt --exclude dir3 / file4.txt источник / Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ / 

Π˜Ρ‚Π°ΠΊ, Π»ΡƒΡ‡ΡˆΠΈΠΉ способ — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ rsync –exclude-from, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ (ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.

Π‘Π½Π°Ρ‡Π°Π»Π° создайтС тСкстовый Ρ„Π°ΠΉΠ» со списком всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· rsync.

 $ vim exclude-list.txt
file1.txt
ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³3 / Ρ„Π°ΠΉΠ»4.txt 

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ rsync, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ –exclude-from с Ρ„Π°ΠΉΠ»ΠΎΠΌ exclude-list.txt, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

 $ rsync -avz --exclude-from 'exclude-list.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *