У меня есть довольно большой каталог на одном сервере (более 4000 файлов), который я хотел бы скопировать на другой сервер (содержащий предыдущую версию этого каталога). rsync
- это первый вариант, но он переводит папку назначения в состояние ожидания на довольно длительный период времени (более минуты).
Хочу сделать немного иначе:
gzip
исходная папкаscp
архив на целевой серверgunzip
файл тамКак лучше всего добиться всего этого?
rsync
имеет --delay-updates
что, кажется, вам нужно:
«…
Эта опция помещает временный файл из каждого обновленного файла в каталог хранения до конца передачи, после чего все файлы переименовываются в быстрой последовательности. Это пытается сделать обновление файлов немного более атомарным. По умолчанию файлы помещаются в каталог с именем ". ~ Tmp ~" в каждом
… »
Самый быстрый способ, если у вас есть место, - это rsync
дважды. Сохраните две копии файлов на конечном компьютере. Сначала сделайте пульт rsync
для обновления неактивной копии. Затем сделайте местный rsync
для обновления активной копии из неактивной копии.
rsync на холодную копию, а затем просто измените символическая ссылка и удалите бывшую активную копию
Остановите веб-службу на целевом сервере на 10 минут, выполните обновление любым удобным для вас способом (rsync в порядке), затем снова запустите веб-службу.
1-2-3: tar -c -O <source folder> | gzip -c | ssh <destination server> "gzip -d | tar -x "
4: rm <source folder>