Cоздание и регулярное обновление резервных копий файлов и папок
rsync -rvt –delete-after –dry-run /media/flas/work /home/user
rsync -rvt –delete-after –dry-run /home/user/work /media/flash
Обратите внимание, что в силу особенностей разных файловых систем, при синхронизаци каталогов между разными файловыми системами (скажем, на компьютере используется ФС Ext3, а на флэшке - FAT) могут возникнать различные проблемы, нередко приводящие к потере данных.
К примеру, из-за того, что ФС Ext3 различает заглавные буквы и сточные (вы можете иметь 2 разных файла с именами “file.txt” и “File.txt” в одном каталоге), а ФС FAT не различает (имена “File.txt” и “file.txt” считаются одинаковыми), при попытке записать файлы с одной системы на другую (Ext3 –> FAT) велика вероятность потери данных перезаписью.
Кроме того, возникают порой и просто неадекватные на первый взгляд эффекты. К примеру, у вас есть на сменном носителе (флэшке с фС FAT) папка “MyWork”. Вы произвели синхронизацию с компьютером, и получили точно такую же папку на жёстком диске. После этого вам понадобилось переименовать её “MyWork” –> “mywork”. Попытка произвести затем обратную синхронизацию файлов на флэшке с жёстким диском одной из команд, рассмотренных выше, приведёт к удалению с флэшки папки “MyWork”, но новая папка “mywork” при этом там не появится (!). То есть вы будете наивно полагать, что на флэшке у вас точная копия дерева каталогов, хранящегося на жёстком диске, а на самом деле там может чего-то (или даже многого) не хватать.
Почему это происходит?
При использовании опции “--delete-after” удаление лишних файлов производится только после полного копирования обновляемых файлов. То есть при первом проходе rsync копирует файлы, требующие обновления, а при втором - удаляет файлы, отсутствующие в исходной файловой системе.
Таким образом, при первом проходе папка “mywork” будет скопирована на флэшку, а при втором проходе будет удалена папка “MyWork”, которой больше нет на жёстком диске компьютера (поскольку вы её переименовали), и которая для ФС FAT является тождественной свежескопированной папке “mywork”.
Возможные решения:
Замечание: Все вышеперечисленные приёмы могут помочь только в случае, если вы, к примеру, переименовали папку “MyWork” в “mywork” на одном из носителей. В случае, если у вас есть обе папки (“MyWork” и “mywork”) в одном каталоге с разным содержимым, вам не удастся создать такие же 2 разные папки в одном каталоге на файловой системе FAT.
Поэтому старайтесь в каталогах, предназначенных для синхронизации через другие файловые системы (как то FAT на флэшках), не держать вложенных файлов и папок, различающихся только регистром букв. Лучше сразу назвать их по-разному.
По умолчанию демон rsyncd прослушивает порт 873
Образец конфигурационного файла
# # /etc/rsyncd.conf # pid file = /var/run/rsyncd.pid log file = /var/log/rsyncd.log [data] path = /mnt/data/ comment = /mnt/data/ on MyServerName auth users = user1 user2 user3 uid = localuser gid = localgroup secrets file = /etc/rsyncd.secrets read only = no # End of file
user1:password1 user2:password2 user3:password3
rsync -rit --delete-during /home/user/work /media/flash
rsync --recursive --itemize-changes --times --delete-during /home/user/work /media/flash
Если SSH работает не на порту по умолчанию, а на каком-либо другом (в нашем примере - 2222), команду rsync надо задавать так:
rsync --dry-run -ruit --rsh='ssh -p2222' remotehost:~/MyWork/ MyWork/