Копирование rsync, scp, cp

rsync

-a, --archive #работа в режиме архивирования, сохраняются права доступа и информация о владельцах; сохранить почти все включая подпапки. Однако заметьте, что -a не сохраняет жесткие ссылки.Для сохранения жестких ссылок необходимо добавить параметр -x. Опция -a задает архивный режим работы утилиты, и является эквивалентом набора опций:
-r, --recursive — рекурсивный режим;
-l, --links — пересоздание symlinks, это значит, что символические ссылки будут так же переноситься;
-p, --perms — перенос прав;
-t, --times — передача времени модификации и его обновление на удаленной системе. Этот ключ должен быть установлен для точной синхронизации;
-g, --group — установить группу конечного файла таким же, как и у исходного;
-o, --owner — установить владельца конечного файла таким же, как и у исходного;
-D, - same as --devices --specials — установить тип файла устройства и файла специального типа таким же, как у исходного.
Еще опции:
-v – подробные вывод операций
-z – компрессия данных при передаче
--del – удалить файлы в папке назначения которых нет в источнике (точная копия), приемник удаляет в процессе передачи, но не перед;
--exclude /temp #исключить директорию /temp
--stats #Указывает выводить подробную статистику по передаче файлов, позволяя Вам оценить, насколько эффективен алгоритм rsync относительно Ваших данных. 
--progress #выводить rsync информацию о ходе передачи. Скучающему пользователю будет на что посмотреть. Подразумевает наличие --verbose без увеличения подробностей.
--bwlimit=KBPS – ограничение пропускной способности, чтобы не забивать канал (Kbit/s)
--ignore-errors – продолжать копирование и удаление после появления ошибок
-compress-level=9 — сжатие с установкой уровня компрессии.
-R – использовать относительные пути при создании символических ссылок
-h – вывод результатов с человеко-читаемом формате
-H, --hard-links – сохранение жестких ссылок
-S, --sparse – оптимизировать разреженные файлы
-x, --one-file-system – не выходить за пределы текущей точки монтирования
-u, --update   #пропустить файлы, если на приемнике файл новее. 
-c, --checksum #файлы могут повредится или быть модифицированы, но совпадать и датой и размером=>можно использовать проверку контрольной суммы.

Если использовать ключ -t (ПОЛНАЯ СИНХРОНИЗАЦИЯ)то файлы с одинаковым именем на приемнике будут заменены на те что на источнике, если они были новее то будет сделан откат до тех которые на источнике, дабы такого избежать нужно использовать ключ -u

Примеры:

rsync --progress -av <каталог-источник> <каталог-назначения/>    #копировать саму директорию
rsync --progress -av <каталог-источник/> <каталог-назначения/>   #копировать содержимое директории

rsync --delete -av   /dir1/  /dir2/  #Точная копия каталогов (удаление всех файлов из dir2, которых нет в dir1)
rsync -av   /dir1/  --exclude="./dir3/" /dir2/ #Исключить каталоги, синхронизация которых не требуется (например, каталог dir3 находящийся в dir1 при копировании последнего в dir2 будет пропущен)

rsync -az --stats --progress --exclude '/home/dave/Загрузки' /home/dave/ /mnt/     
rsync -auvz --stats --progress --rsh=ssh [email protected]:/путь/откуда/копируем/ /путь/куда/копируем/    #копировать содержимое одной папки во вторую,включая скрытые файлы
rsync -rvz /home/data1/ --exclude="tmp/*" --exclude="*~" [email protected]:/home/data1/

#на сервере приемнике,копирование с источника,существующие файлы не качаются, сжатие, права,владелец,группа:
rsync -auvz --stats --progress --rsh=ssh [email protected]:/путь/откуда/копируем/ /путь/куда/копируем/
или так Inulla:
rsync -az --progress --stats --del --rsh=ssh --compress-level=1 [email protected]:/home/admin/domains /home/admin
#если порт не стандартный
rsync -az --rsh=ssh --compress-level=1 --del --progress --stats -e "ssh -p $PORT" [email protected]:/home/admin/domains /home/admin

scp

scp filename [email protected]:/home/admin/admin_backups/        #копировать с локального на удаленный сервер 85.17.x.x
scp -r /home/ [email protected]:/home2/                        #рекурсивное копирование всего из /home
scp [email protected]:/home2/file1.zip /home/                  #копировать файл с удаленного сервера себе локально
scp -r [email protected]:/home2/ /home/                        #копировать файлы и папки с удаленного сервера
scp [email protected]:/home/file1.zip [email protected]:/home2/ #копировать файлы с одного сервера на другой находясь на третьем.

cp

cp -dpRx /home/*user*/domains/*name*/public_html/{*,.*} /home/*user*/domains/*name*/public_html/  #локальное копирование всего содержимого
-p - Сохраняет время модификации, время доступа, флаги файла,режим доступа, идентификаторы пользователя и группы (максимально возможные полномочия). Без этой опции для нового файла задаются полномочия, соответствующие полномочиям запустившего    команду пользователя
-R или -r - Если source — каталог, то копируется как он, так и все входящие в него подкаталоги, т. е. сохраняется исходная форма дерева каталогов
-d - Копирует символьные ссылки как символьные ссылки, а не файлы, на которые они указывают, и сохраняет жесткие ссылки между исходными файлами в копиях.  (а иначе вместо ссылки копируется файл, на который дается ссылка)
-x, --one-file-system  - Пропускать подкаталоги, которые расположены на файловых системах, отличных от той, где начиналось копирование. 
-i (interactive) — интерактивный режим. Требует подтверждения, если командой будет переписан файл в месте назначения. Это помогает избежать возможных ошибок. 
-f: противоположность -i, заменяет любые существующие файлы без запроса подтверждения.

unalias cp - если просит подтверждения замены каждого файла, делаем unalias

Копирование между Виндовз,Виндовз-Линукс

Перенос контента с Windows на Linux
качаем архив, распаковываем,переходим в директорию с rsync и пускаем команду:
rsync.exe -aux --stats --progress /cygdrive/d/films/ [email protected]:/home/videos/
http://www.rsync.net/resources/howto/windows_rsync.html

results matching ""

    No results matching ""