Ubuntu Unison :фильтровать все, кроме нескольких файлов

Как указано выше, редактирование /boot/grub/grub.cfgне является хорошим способом сделать это. Есть хороший шанс, что вы сломаете его, и даже если вы этого не сделаете, вы, вероятно, обнаружите, что он вернулся, когда в какой-то момент появится обновление системы.

Явное добавление значения GRUB_OS_PROBER_SKIP_LISTк /etc/default/grubтакже не является хорошим решением, так как вам нужно вручную найти и заблокировать UUIDкаждого загрузочного диска, который вы можете подключить к своей машине. Я также не уверен, что редактирование файлов в /etc/defaultявляется предпочтительным способом настройки поведения вашего дистрибутива Linux.

Также не стоит полностью отключать /usr/bin/os-prober, так как другие программы потенциально могут использовать его для других целей.

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

На Debianи Ubuntuавтоматически сгенерированные загрузочные записи, похоже, обрабатываются /etc/grub.d/30_os-prober.

Просто удалите этот файл или отключите для него разрешения на выполнение, а затем повторно создайте конфигурацию grub, чтобы избавиться от автоматически добавленных записей. Это работало на моей машине:

sudo chmod -x /etc/grub.d/30_os-prober

sudo grub-mkconfig -o /boot/grub/grub.cfgsudo update-grub

Вы можете просмотреть результат создания конфигурации и проверить /boot/grub/grub.cfg, чтобы убедиться, что посторонние записи были удалены перед перезагрузкой.

0
19.11.2021, 12:30
1 ответ

Вы пробовали вариант -pathдля унисона вместо -ignore? Из руководства unison и справочного руководства , раздел Использование Unison для всех ваших файлов

tell Unison to synchronize only some of the files and subdirectories within it on any given run. This can be accomplished by using the -path switch on the command line:... The -path option can be used as many times as needed, to synchronize several files or subdirectories:

Вот небольшой практический пример.

  • создать каталоги localи remote(каталог remoteявляется заменой -действительно удаленного каталога в данном случае ).
root@ubuntu:~# mkdir local remote
  • создать 9 файлов в каталоге local.
root@ubuntu:~# for i in $(seq 9); do uuidgen > local/${i}.txt ; done
root@ubuntu:~# ls local
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt  8.txt  9.txt
  • используйте unisonдля синхронизации файлов, но ограничьте синхронизацию файлами с именами 1.txt, 2.txtи 3.txt.
root@ubuntu:~# unison -auto -batch local/ remote/ -path 1.txt -path 2.txt -path 3.txt
Contacting server...
Looking for changes
...
Reconciling changes
file     ---->            1.txt
file     ---->            2.txt
file     ---->            3.txt
...
  • подтвердите, что каталог remoteсодержит только эти файлы.
root@ubuntu:~# ls remote/
1.txt  2.txt  3.txt

С изменением контента все становится интереснее.

  • Создайте такие же файлы в каталоге remote. Это обновит синхронизированные файлы и создаст новые файлы для несинхронизированных.
root@ubuntu:~# for i in $(seq 9); do uuidgen > remote/${i}.txt ; done
  • используйте unisonдля повторной синхронизации каталогов
root@ubuntu:~# unison -auto -batch local/ remote/ -path 1.txt -path 2.txt -path 3.txt
Contacting server...
Looking for changes
Reconciling changes
         <---- changed    1.txt
         <---- changed    2.txt
         <---- changed    3.txt
...
  • синхронизированные файлы (например.1.txt)содержимое будет совпадать в обоих каталогах. Несинхронизированные файлы (, например.9.txt)содержимое будет другим.
root@ubuntu:~# cat {local,remote}/1.txt
7317d9ef-9747-43ae-9f4c-347fc4134e65
7317d9ef-9747-43ae-9f4c-347fc4134e65
root@ubuntu:~# cat {local,remote}/9.txt
76654fcf-d0b2-4788-8a84-b765c9a41cc3
f5db8eb3-4300-463a-9d49-fcb14afcae12
1
19.11.2021, 22:32

Теги

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