Sambashadow_copy2 и снимки не отображаются в Windows

Я настраиваю сервер Ubuntu с Samba. Файловая система — BTRFS, и я не могу заставить Windows увидеть предыдущие версии из снимков.

В моем smb.conf есть это для общего доступа:

      [Backup]
    path = /mnt/pool1/backup
    comment = Share for backups
    writeable = yes
    delete readonly = yes
    browseable = yes

    vfs object = recycle shadow_copy2

    recycle:repository = /mnt/pool1/backup/.recycle/%U
    recycle:touch = Yes
    recycle:keeptree = Yes
    recycle:versions = Yes
    recycle:noversions = *.tmp,*.temp,*.o,*.obj,*.TMP,*.TEMP
    recycle:exclude = *.tmp,*.temp,*.o,*.obj,*.TMP,*.TEMP
    recycle:excludedir = /.recycle,/tmp,/temp,/TMP,/TEMP

    shadow:snapdir = /mnt/pool1/snapshots/backup
    shadow:basedir = /mnt/pool1/backup
    shadow:sort = desc
    shadow:format = GMT-%Y.%m.%d-%H.%M.%S

Структура каталогов следующая: том BTRFS монтируется в /mnt/pool1, а общие ресурсы и каталог моментальных снимков находятся на этом уровне:

      ll /mnt/pool1
total 20
drwxr-xr-x 1 root root    98 Jul 14 09:14 ./
drwxr-xr-x 4 root root  4096 Jul 14 09:13 ../
drwxrwxr-x 1 root users   74 Jul 14 11:28 backup/
drwxrwxr-x 1 root users    0 Jul 13 16:50 docker/
drwxrwxr-x 1 root users    0 Jul 13 16:49 homes/
drwxrwxr-x 1 root users    0 Jul 13 16:51 install/
drwxrwxr-x 1 root users    0 Jul 13 16:51 media/
drwxrwxr-x 1 root users   80 Jul 13 16:58 snapshots/
drwxrwxr-x 1 root users    0 Jul 13 16:51 timemachine/

ll /mnt/pool1/snapshots
total 16
drwxrwxr-x 1 root users  80 Jul 13 16:58 ./
drwxr-xr-x 1 root root   98 Jul 14 09:14 ../
drwxrwxr-x 1 root users 184 Jul 14 11:55 backup/
drwxrwxr-x 1 root users   0 Jul 13 16:58 docker/
drwxrwxr-x 1 root users   0 Jul 13 16:58 homes/
drwxrwxr-x 1 root users   0 Jul 13 16:58 install/
drwxrwxr-x 1 root users   0 Jul 13 16:58 media/
drwxrwxr-x 1 root users   0 Jul 13 16:58 timemachine/

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

      tree -a
.
├── backup
│   ├── .recycle
│   │   └── ubuntu
│   │       └── File from windows - Copy.txt
│   ├── File from windows.txt
│   └── test.txt
├── docker
├── homes
├── install
├── media
├── snapshots
│   ├── backup
│   │   ├── GMT-2023.07.14-09.19.31
│   │   │   └── test.txt
│   │   ├── GMT-2023.07.14-09.30.57
│   │   │   └── test.txt
│   │   ├── GMT-2023.07.14-09.57.41
│   │   │   └── test.txt
│   │   └── GMT-2023.07.14-10.48.31
│   │       └── test.txt
│   ├── docker
│   ├── homes
│   ├── install
│   ├── media
│   └── timemachine
└── timemachine

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

1 ответ

Я потратил много времени на это и наконец нашел решение. Подробности здесь:https://github.com/ArthurMitchell42/BTRFS_Snapshots , включая пример сценария для правильного создания снимков.

Ключевые настройки smbd.conf:

      [global]
   vfs object = recycle shadow_copy2 btrfs fruit cap catia

   recycle:repository = /mnt/pool1/%S/.recycle/%U 
   recycle:touch = Yes 
   recycle:keeptree = Yes 
   recycle:versions = Yes 
   recycle:noversions = *.tmp,*.temp,*.o,*.obj,*.TMP,*.TEMP 
   recycle:exclude = *.tmp,*.temp,*.o,*.obj,*.TMP,*.TEMP 
   recycle:excludedir = /.recycle,/tmp,/temp,/TMP,/TEMP 

;   shadow:localtime = yes
   shadow:sort = desc
   shadow:format = GMT-%Y.%m.%d-%H.%M.%S
   shadow:snapprefix = ^[A-Za-z0-9_]\{0,\}$
   shadow:delimiter = GMT-

ПРИМЕЧАНИЕ . Shadow:localtime необходимо закомментировать, иначе вы ничего не увидите и в каждом общем доступе:

      [Media]
   path = /mnt/pool1/Media
   shadow:snapdir = /mnt/pool1/.snapshots/Media
   shadow:basedir = /mnt/pool1/Media
    comment = Music, video and books
    writeable = yes 
    delete readonly = yes 
    browseable = yes
;    recycle:exclude = *,*.*,.*,.*.* 
Другие вопросы по тегам