Копирование 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