Зеркальное отображение двух каталогов

Если file2.csv содержит только одну строку

sed -i "1 s/.*/$(< file2.csv)/" file1.csv

Если file2.csv содержит несколько строк

sed -i "1 s/.*/$(sed '1q' file2.csv)/" file1.csv

или

sed -i "1 s/.*/$(head -1 file2.csv)/" file1.csv

Примечание:

Если строка из file2.csv содержит символ разделителя /, возникнет ошибка типа неизвестная опция `s' . В таких случаях используйте другой разделитель, например |

.
3
23.02.2017, 13:27
2 ответа

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

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

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

3
27.01.2020, 21:21

Не зная, почему вы хотите отразить каталог в реальном времени, я не совсем уверен, что посоветовать.

Это для резервного копирования или восстановления? Если да, то, возможно, настроить зеркало на устройствах?

Нужно ли иметь каталог в другом месте? Может, попробовать использовать петлевое крепление? Или использовать автомонтирование? Можно даже открыть общий доступ к одному каталогу через NFS и смонтировать его в другое место?

0
27.01.2020, 21:21

Теги

Похожие вопросы