Сетевая корзина (Recycle Bin) на файловом сервере в Samba 4.5
По различными причинам, случается так что какой то файл может быть удален с файлового сервера и в этом случае он будет потерян на всегда. Для того чтобы иметь возможность восстановить удаленный файл на файловом сервере samba предусмотрен модуль VFS (Virtual File System) — recycle (сетевая корзина), рассмотрим его применение.
Мое личное мнение что не стоит давать повсеместный доступ к сетевой корзине, а лучше ее вынести в отдельную общую папку и по необходимости подключать тому или иному человеку, а лучше всегда процесс восстановления удаленных файлов оставить на системном администраторе. Исходя из этого ниже будет рассмотрен именно такой сценарий, с выносом сетевой корзины в отдельную папку.
В файле конфигурации samba /etc/samba/smb.conf
в секцию [global]
добавим следующие параметры:
vfs object = recycle
recycle:repository = /samba/recycle/%S
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:exclude = ~$* *.tmp *.TMP *.temp *.bak *.log .DS_Store
[RECYCLE$]
path = /samba/recycle
read only = no
recycle:exclude = *.*
Пояснения по параметрам:
recycle:repository
— задаем каталог расположения сетевой корзины. Если параметр не задан, то по-умолчанию сетевая корзина (.recycle) будет располагаться в корне каждой общей папки.recycle:keeptree
— сохранять структуру каталогов для удаленных файлов.recycle:versions
— в случае если у удаленных файлов их имена совпадают, то к удаленном файлу в начале имени будет добавляться Copy #N of.recycle:touch
— задавать дату изменения файла на время удаления файла.recycle:exclude
— список исключений для файлов.
vfs object
перечисляем все объекты через пробелЕсли необходимо включение сетевой корзины для какой то определенной общей папке, то тогда выше описанные параметры необходимо прописывать в секцию описания общей папки.
Скрипт очистки
Что бы сетевая корзина не разрасталась, ее необходимо чистить. Для примера создадим скрипт (прим. recycle-clean.sh
) для автоматического удаления файлов старше 30 дней.
#!/bin/bash
find /samba/recycle/ -type f -mtime +30 -exec rm -rf {} \;
Добавим в cron выполнение созданного скрипта каждый день в 21:00:
7 21 * * * root /root/recycle-clean.sh
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.