Что лучший способ состоит в том, чтобы синхронизировать файлы с разделом VFAT?

Две непосредственных возможности приходят на ум:

  1. Debian имеет nagios3 3.4.1-2 в sid. Вы могли загрузить debianised источники и восстановить для человечности. Или установка с 'dpkg-i' или создает Ваш собственный локальный репозиторий (или сделайте ppa на панели запуска). Необходимо будет повториться этот каждый раз, когда Вы хотите обновить.

  2. Icinga является ветвлением Nagios, предназначенной для работы вокруг проблем, связанных с силами между коммерческой природой Nagios Inc и природой с открытым исходным кодом программного обеспечения. Это может стоить оценить как альтернатива Nagios.

    Существует также Shinken, nagios-совместимое перепроектируют/переписывают центральных идей позади Nagios. Я только что обнаружил это, но это выглядит очень хорошим, я оказываюсь перед необходимостью проводить некоторое время для оценки его правильно.


Прикрепление Кв.

Самый простой способ настроить склонный установить nagios пакеты от quantal, но все остальное от точного к

  • добавьте quantal repo к /etc/apt/sources.list или в файл в /etc/apt/sources.list.d/

  • править /etc/apt/apt.conf или включите файл /etc/apt/apt.conf.d/ это имеет:
    APT::Default-Release "precise";

  • добавьте файл, названный nagios к /etc/apt/preferences.d/ содержа:

Package: nagios*
Pin: release quantal
Pin-Priority: 1000
  • Всегда проверяйте то, что обновление собирается сделать путем выполнения склонный - добираются или способность -d или --download-only сначала. -V опция показать детали версии также полезна здесь.

    Это особенно важно, когда пример, который я дал, не был на самом деле протестирован с именами выпуска человечности, просто адаптированными от того, что я делаю с Debian для testing/sid/experimental пакетов (я главным образом использую debian, а не человечность).... в принципе, это должно работать. на практике это может потребовать, чтобы немного тонкой настройки стало просто правильным.

См. страницу справочника для apt_preferences для получения дополнительной информации.

7
11.01.2014, 19:04
2 ответа

Можно сделать представление файловой системы FAT с семантикой POSIX, включая имена вспомогательного файла с любым символом кроме / или пустой байт. POSIXovl является относительно недавней файловой системой FUSE для этого.

mkdir backup-fat
mount.posixovl -S /media/sdb1 backup-fat
rsync -au /source backup-fat/target

Символы в именах файлов, которые не принимает VFAT, кодируются как %(XX) где XX шестнадцатеричные цифры. С POSIXovl 1.2.20120215, остерегайтесь этого имя файла как %(3A) кодируется как самостоятельно и будет декодироваться как :, таким образом, существует риск коллизии, если у Вас есть имена файлов, содержащие подстроки формы %(XX).

Остерегайтесь этого, POSIXovl не справляется с именами файлов, которые являются слишком длинными. Если закодированное имя не помещается в 255 символов, файл не может храниться.

POSIXovl хранит полномочия Unix и владение в названных файлах .pxovl.FILENAME.

5
27.01.2020, 20:18
  • 1
    Доступный как пакет Debian (fuse-posixovl) и работы как очарование. –  Frank 12.01.2014, 19:17
  • 2
    Доступный как posixovl под openSUSE. –  fleamour 25.06.2017, 19:01

Мне было любопытно на предмет этого так, я сделал немного рытья.

Существует несколько патчей, чтобы сделать это, которое никогда не превращало его в rsync, если Вы представляете себе компилировать из источника. Хотя оба стары, таким образом, они не могут все еще работать. Этот конкретно добавляет a --fat-filenames опция и этот для a --tr опция.

Эти вопросы также покрывают что-то подобное - файлы Rsyncing со специальными символами к USB FAT32 и https://askubuntu.com/questions/11634/how-can-i-substitute-colons-when-i-rsync-on-a-usb-key. Лучший выбор является, вероятно, rdiff-резервным-копированием, которое делает замену, но я не вижу опций иметь любой контроль над ним. Также существуют некоторые другие хорошие идеи все же.

Общее представление для сценария, который удалил бы и воссоздал бы файлы каждый раз, если бы нет слишком многих, было бы чем-то как:

[sudo] updatedb      # doing this as root will update the system database
locate -r '^/full/path/to/source/.*[?<>\\:*|\"]' |
  sed 's\^/full/path/to/source/\\' >bad_names
rsync --delete --exclude-from=bad_names -av source/ target
cd source
<bad_names pax -rw -s '/[?<>\\:*|\"]/_/gp' target

locate было бы быстрее, чем find если база данных довольно актуальна.

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

find source/ -regex '[?<>\\:*|\"]' -exec rename 's/'[?<>\\:*|\"]'/_/g' {} +

Я рекомендовал бы пробовать это rename -n сначала, хотя в случае, если что-то идет не так, как надо.

2
27.01.2020, 20:18
  • 1
    благодарит заняться расследованиями. Жалость rsync не включала те pataches. Если сценарий будет решением, Ваши идеи войдут очень удобные. –  Frank 12.01.2014, 02:13

Теги

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