Небольшой скриптик позволяющий сделать/обновить локальную копию удалённого каталога. Я успешно его используя для создания бэкапов этого сайта.
#!/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 использует нестандартный порт. |
