Небольшой скриптик позволяющий сделать/обновить локальную копию удалённого каталога. Я успешно его используя для создания бэкапов этого сайта.
#!/bin/sh
if rsync -avzu --delete --exclude "data/cache/*/*" -e "ssh -p 1122" <br/>
user@your.host:~/public_html/* public_html
then
tar cj --exclude "*/data/cache/*/*" -f iar_`date +%y%m%d-%H%M`.tar.bz2 public_html/
else
echo "Can't rsyncing"
fi
Ключ rsync | Описание |
---|---|
-u | Только обновление. Не копирует файлы которые не изменялись с прошлой синхронизации. |
-a | Архивный режим. Синоним для ключей -rlptgoD . |
-r | Рекурсивный обход каталогов. |
-l | Копировать симлинки как симлинки. |
-p | Копировать так же права |
-t | Копировать так же время |
-g, -o, -D | Позволяют копировать группу, владельца, файлы устройств и потоков, но не окажывают действия при запуске от простого пользователя. |
-v | отображение хода синхронизации |
-z | упаковывать поток с помощью gzip |
–delete | Удалить из каталога назначения файлы отсутствующие в исходном каталоге. |
–exclude path | Исключить из синхронизации файлы и пути соответствующие маске. |
-e cmd | Команда используемая для создания транспортного канала. В данном случае нам понадобилось её указать, поскольку ssh использует нестандартный порт. |