не занимайтесь изобретением собственных велосипедов.
для решения этой задачи есть
rsync, в котором уже есть режим сжатия + игнорирование уже созданных файлов (писали выше)
rsync --флаги user@IP:/DIR_источника DIR_для_результата
например, запускать на новом сервере:
Код:
rsync -avz --exclude='тут можно указать dir-исключения' --exclude='можно несколько раз повторить' root@IP_сервера_с сайтами:/home/www /home
флаг -a - он составной и в себе содержит несколько флагов(-r -l -p -t -g -o -D), которые наиболее популярны при архивации, читаем man rsync
флаг -v - это визуализация процесса в терминале
флаг -z - это сжатие гзипом, при желании можно еще указать --compress-level
на обоих серверах должен быть установлен rsync. Например: yum install rsync
если ssh имеет нестандартный порт, то к команде rsync прибавляется флаг -e 'ssh -p2222', будет так:
rsync --флаги -e 'ssh -p2222' user@IP:/DIR_источника DIR_для_результата