Корзина TrueNAS: настройка, удаление файлов, восстановление данных | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Корзина в TrueNAS: полное руководство по настройке и использованию

06 марта 2026 7 мин. чтения #nfs #recycle bin #samba #truenas #zfs #восстановление файлов #корзина #настройка truenas

Что такое корзина в TrueNAS и зачем она нужна?

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

Корзина в TrueNAS работает на уровне файловой системы ZFS и тесно интегрирована с протоколами общего доступа (SMB/CIFS, NFS). При удалении файла он не стирается физически, а перемещается в специальную скрытую папку .recycle или .windows_recycle_bin внутри датасета.

Как включить и настроить корзину в TrueNAS

Давай разберем пошаговый процесс настройки корзины через веб-интерфейс TrueNAS Scale или Core.

Шаг 1: Настройка через веб-интерфейс

  1. Зайди в раздел «Доступ к данным» (Shares)«Общие ресурсы Windows (SMB)»
  2. Выбери существующий SMB-шаринг или создай новый
  3. В настройках шаринга найди параметр «Включить корзину» (Enable Recycle Bin)
  4. Активируй переключатель
  5. Настрой дополнительные параметры (опционально):
    • Период хранения — сколько дней хранить файлы в корзине
    • Исключить файлы — паттерны файлов, которые не нужно помещать в корзину
    • Запретить удаление — предотвратить ручное удаление файлов из корзины
  6. Сохрани изменения и перезапусти SMB-сервис
config
// Пример конфигурации SMB-шаринга с корзиной
{
    "path": "/mnt/pool/dataset",
    "purpose": "MULTI_PROTOCOL_NFS",
    "smb": true,
    "recyclebin": true,
    "recyclebin_exclude": [".tmp$", ".log$"],
    "recyclebin_retention": 30,
    "recyclebin_prohibit_purge": false
}

Шаг 2: Настройка через командную строку (CLI)

Для продвинутых пользователей или автоматизации можно использовать CLI. Подключись к TrueNAS по SSH и выполни:

bash
# Просмотр текущих SMB-шарингов
midclt call sharing.smb.query

# Включение корзины для конкретного шаринга
midclt call sharing.smb.update 1 '{
    "recyclebin": true,
    "recyclebin_retention": 14,
    "auxsmbconf": "vfs objects = recycle\nrecycle:repository = .recycle/%U\nrecycle:keeptree = yes\nrecycle:versions = yes\nrecycle:exclude = *.tmp,*.temp,*.log"
}'
Внимание! При настройке через CLI убедись, что ты понимаешь синтаксис параметров Samba. Неправильная конфигурация может нарушить работу общего доступа.

Где хранятся файлы из корзины TrueNAS

Файлы из корзины хранятся в специальных директориях внутри датасета. Структура зависит от протокола:

Протокол Путь к корзине Особенности
SMB/CIFS (Windows) /mnt/pool/dataset/.recycle/username Отдельная папка для каждого пользователя
NFS /mnt/pool/dataset/.recycle Общая папка для всех пользователей
WebDAV /mnt/pool/dataset/.recycle Требуется отдельная настройка в Nextcloud/ownCloud

Как посмотреть содержимое корзины

bash
# Просмотр корзины для SMB
ls -la /mnt/pool/dataset/.recycle/

# Просмотр корзины конкретного пользователя
ls -la /mnt/pool/dataset/.recycle/john/

# Поиск удаленных файлов по дате
find /mnt/pool/dataset/.recycle/ -type f -mtime -7 -name "*.docx"

Восстановление файлов из корзины TrueNAS

Есть несколько способов восстановить удаленные файлы:

Способ 1: Через проводник Windows

  1. Подключись к SMB-шарингу с включенной корзиной
  2. В корне шаринга появится папка «$RECYCLE.BIN» (может быть скрытой)
  3. Зайди в папку → найди свою подпапку с именем пользователя
  4. Скопируй нужные файлы обратно в рабочую директорию

Способ 2: Через командную строку

bash
# Восстановление файла в исходное место
cp /mnt/pool/dataset/.recycle/john/important.docx /mnt/pool/dataset/documents/

# Восстановление с сохранением структуры каталогов
# (если был удален целый каталог)
rsync -av /mnt/pool/dataset/.recycle/john/project/ /mnt/pool/dataset/projects/

Очистка корзины и управление хранением

Корзина может занимать значительное место. Важно настроить автоматическую очистку:

Настройка автоматической очистки

bash
# Создаем задание в Cron через веб-интерфейс
# Или создаем скрипт очистки:

#!/bin/bash
# Очистка файлов старше 30 дней
find /mnt/pool/dataset/.recycle/ -type f -mtime +30 -delete
find /mnt/pool/dataset/.recycle/ -type d -empty -delete

# Добавляем в Cron (ежедневно в 3:00)
# crontab -e
# 0 3 * * * /path/to/clean_recycle.sh

Ручная очистка корзины

bash
# Полная очистка корзины (осторожно!)
rm -rf /mnt/pool/dataset/.recycle/*

# Очистка корзины конкретного пользователя
rm -rf /mnt/pool/dataset/.recycle/john/*
Удаление файлов из корзины через командную строку необратимо! Эти файлы невозможно восстановить даже с помощью ZFS snapshots, так как они уже были удалены из файловой системы.

Проблемы и решения

Корзина не работает или не отображается

  1. Проверь настройки SMB:
    bash
    testparm -s | grep recycle
  2. Проверь права доступа:
    bash
    ls -ld /mnt/pool/dataset/.recycle/
    # Должно быть: drwxrwx--- или drwxrwxrwt
  3. Перезапусти SMB-сервис:
    bash
    midclt call service.restart cifs

Файлы не помещаются в корзину

  • Проверь, не превышен ли лимит размера корзины (если настроен)
  • Убедись, что файл не попадает под исключения (recyclebin_exclude)
  • Проверь, достаточно ли свободного места в датасете
  • Убедись, что удаление происходит через SMB/NFS, а не напрямую через shell

Часто задаваемые вопросы (FAQ)

В чем разница между корзиной и снапшотами ZFS?

Это разные механизмы защиты данных:

Критерий Корзина (Recycle Bin) Снапшоты ZFS
Уровень работы Файловая система/протокол Блоки данных/ZFS
Восстановление Ручное, файл за файлом Полное восстановление состояния датасета
Потребление места Дублирует удаленные файлы Только изменения (Copy-on-Write)
Лучшее применение Случайное удаление файлов пользователями Резервное копирование, откат изменений

Как настроить корзину для NFS?

Для NFS нет встроенной корзины, но можно эмулировать функциональность:

bash
# Создаем скрипт-обертку для команды rm
cat > /usr/local/bin/safe_rm << 'EOF'
#!/bin/bash
RECYCLE_DIR="/mnt/pool/dataset/.recycle/$(whoami)"
mkdir -p "$RECYCLE_DIR"
for file in "$@"; do
    mv "$file" "$RECYCLE_DIR/"
done
EOF

chmod +x /usr/local/bin/safe_rm
# На всех клиентах заменить rm на safe_rm через alias

Можно ли настроить разные политики для разных пользователей?

Да, через Samba VFS модуль recycle можно задать разные параметры:

config
# В auxsmbconf шаринга
[share]
    path = /mnt/pool/dataset
    vfs objects = recycle
    recycle:repository = .recycle/%U
    recycle:maxsize = 0
    recycle:exclude = *.tmp,*.temp
    recycle:noversions = yes
    recycle:directory_mode = 0770
    recycle:subdir_mode = 0700

# Для конкретных пользователей через include
include = /usr/local/etc/smb.conf.%U

Заключение

Корзина в TrueNAS — это мощный инструмент защиты от случайного удаления файлов. Правильная настройка позволяет:

  • Снизить нагрузку на администратора (меньше запросов на восстановление)
  • Дать пользователям возможность самостоятельно восстанавливать файлы
  • Гибко управлять политиками хранения удаленных данных
  • Интегрироваться с существующей инфраструктурой (Active Directory, LDAP)
Помни: корзина — это дополнительный уровень защиты, но не замена полноценной стратегии резервного копирования. Всегда используй ZFS снапшоты и внешние бэкапы для критически важных данных.

Теперь ты знаешь все о корзине в TrueNAS — от базовой настройки до продвинутых сценариев использования. Начни с простого включения функции для одного шаринга, а затем масштабируй решение на всю инфраструктуру. Удачи в настройке!

Поделиться:
Сохранить гайд? В закладки браузера