Интересно, возможно ли это? По сути, я пытаюсь написать очень простой скрипт, который поможет мне ускорить процесс обновления нескольких установок системы CMS (где мне нужно копировать в определенные папки).
Допустим, у меня есть папка:
/home/sites/domain.co.uk/public_html/folder1/folder2/files
Что мне нужно сделать, это скопировать дерево папок и копировать только файлы в папке файлов.
На данный момент я использую rsync -a через:
<?php
exec("rsync -a /home/sites/domain.co.uk/public_html/folder1/folder2/files /home/sites/domain.co.uk/copy");
?>
Проблема с этим вместо создания следующего:
/home/sites/domain.co.uk/copy/folder1/folder2/files
это создает
/home/sites/domain.co.uk/copy/files
Есть ли способ использовать rsync для копирования предыдущих папок / структуры, так что я в итоге?
/home/sites/domain.co.uk/copy/folder1/folder2/files
Я очень рад использовать rsync вместо создания полноценного php-скрипта и т. Д.
Функциональность rsync заключается в передаче файлов из одного места в другое ИЛИ с одного сервера на другой (если у вас есть root-доступ к другой папке)
В вашем следующем примере
<?php
exec("rsync -a /home/sites/domain.co.uk/public_html/folder1/folder2/files /home/sites/domain.co.uk/copy");
?>
Должно быть files
папка на вашем сервере по указанному пути, которая содержит файлы и в copy
папка все эти файлы будут переданы.
вместо этого вы можете попробовать команду ниже для передачи ваших файлов
<?php
exec("rsync -auv -e ssh --progress /home/sites/domain.co.uk/public_html/folder1/folder2/files /home/sites/domain.co.uk/copy");
?>
--progress
покажет, какой файл передается.
Других решений пока нет …