Я хотел бы хранить общую синхронизированную папку на двух ноутбуках. (С большим количеством медиафайлов и т. п., поэтому не могу использовать git, но с другой стороны, очень мало изменений, требующих согласования.)
Самый простой способ сделать это — сохранить копию папки на каждом компьютере и на внешнем жестком диске, который можно подключить к любому из них.
Чтобы синхронизировать их, я бы хотел использовать унисон.
Все работает хорошо, за исключением того, что я постоянно получаю сообщение об ошибке:
Для этих корней и т.п. не найдено никаких архивных файлов.
Так что этот унисон заново сканирует все с нуля, что занимает много времени.
Однако когда он выполняет полное повторное сканирование, он всегда делает все правильно.
Я предполагаю, что я делаю что-то не так. Возможно ли это сделать с unison, и что мне нужно сделать, чтобы он распознал, что это один внешний диск и две локальные папки, и вел себя соответствующим образом?
решение1
Архивные файлы Unison хранятся ~/.unison/ar*
и именуются в соответствии с хэшем обоих абсолютных путей, которые вы синхронизируете (можно увидеть в текстовой форме внутри самого файла). Вам необходимо убедиться, что внешний диск всегда монтируется в одном и том же месте.
Важно отметить, что пути включают имена хостов (чтобы облегчить синхронизацию по SSH), поэтому, если имя хоста компьютера изменится, например, из-за назначения нового имени DHCP, все старые файлы архивов больше не будут распознаваться.
В любом случае, выясните, почему отсутствуют файлы архива, и/или продолжайте менять их имена. Хотя они и двоичные, вы все равно можете запустить head
или , strings
чтобы увидеть текстовый заголовок, который показывает оба пути для каждого файла архива.