Intereting Posts
Можно ли получить сертификаты letencrypt с помощью сценария оболочки? Функция «pathmunge» для произвольных «PATH» -подобных переменных Как мне выполнить ls, а затем отсортировать результаты по дате? Не удалось запустить Teamviewer на Linux Mint Как выполнить скрипт в оболочке при нажатии клавиши быстрого доступа Как объединить входы xarg с большим количеством аргументов? Ripping DVD в Debian Wheezy Настройка ClusterSSH для использования шрифтов Freetype Ноутбук нельзя использовать после удаления / bin VPN, связанный с двумя горячими точками Wi-Fi для мобильных телефонов Включить прокрутку и щелкнуть правой кнопкой мыши на трекпаде в Кали вместе с подсветкой клавиатуры установить процесс по умолчанию и приоритет ввода-вывода в Linux для данного приложения / исполняемого файла Noip «Не удается найти файл конфигурации», но файл есть Удалите повторяющиеся записи $ PATH с помощью команды awk Команды для доступа к диску SATA

Как автоматически применить изменения в папке к другому?

Запуск Ubuntu 12.04, я работаю с программным обеспечением «производство» в определенных папках, а затем я обычно копирую файлы, которые я составляю на другие пути, где я выполняю «развертывание» .

Например, иногда я создаю некоторые файлы в /home/user/develop и я хочу, чтобы они переходили в /media/ntfs . Кроме того, например, я работаю над /home/user/develop но я хочу, чтобы они перешли на /var/www если я тестирую веб-материалы.

Таким образом, все скопированные папки или любой список файлов должны быть скопированы.

Я думал, сначала это было о символических ссылках, но я думаю, что это не лучший способ сделать это, скриптинг?

rsync синхронизирует файлы между каталогами и даже разными серверами. Он включает / исключает поддержку и т. Д. Если вы хотите, чтобы материал действительно синхронизировался автоматически , вы можете запустить rsync с любыми параметрами.

Вы можете поместить команду и все ее параметры в сценарий, а затем …

Вы можете запустить этот сценарий в запланированном задании, если хотите, чтобы он выполнял копию с заданным интервалом, или вы можете запустить сценарий вручную, когда должна произойти синхронизация, и, наконец, вы можете прослушивать события файловой системы в соответствующем каталоге , используя inotify , для запуска rsync, когда в каталоге происходят определенные изменения.

Вы можете сделать это либо с помощью цикла while, который блокируется inotify, либо с помощью специальных программ / сценариев, предназначенных для подобных действий, например:

rsync-inotify: http://code.google.com/p/rsync-inotify/

lsyncd: http://code.google.com/p/lsyncd/

и так далее…

Вы можете реплицировать каталог в другой каталог с помощью rsync . Rsync не копирует файлы, которые уже находятся в целевом каталоге с тем же содержимым (точнее, с той же датой и размером).

 rsync -a /home/user/develop/ /var/www/ 

Обновление реального сервера в реальном времени – не очень хорошая идея: если вы находитесь в середине изменения и файлы не находятся в рабочем состоянии, вы не хотите их разворачивать. Обратите внимание, что распространение с помощью rsync также не является мгновенным, поэтому будет небольшое окно времени, в течение которого некоторые из новых файлов находятся на месте, но некоторые из старых файлов все еще присутствуют.


Контроль версий позволит решить эту проблему, а также поможет вам другими способами. Когда вы внесли изменения, зафиксируйте их. На живом сервере выполните обновление (или выборка или что-то другое, на что его запросит программное обеспечение для контроля версий). Контроль версий поддерживает историю изменений и позволяет отслеживать изменения в нескольких системах.