Что такое корзина в TrueNAS и зачем она нужна?
Представь, что ты работаешь с файловым сервером и случайно удалил важный документ или целую директорию. В обычной системе эти файлы исчезли бы навсегда. Корзина в TrueNAS — это твой спасательный круг, механизм, который временно сохраняет удаленные файлы, прежде чем они будут окончательно стерты из системы.
.recycle или .windows_recycle_bin внутри датасета.
Как включить и настроить корзину в TrueNAS
Давай разберем пошаговый процесс настройки корзины через веб-интерфейс TrueNAS Scale или Core.
Шаг 1: Настройка через веб-интерфейс
- Зайди в раздел «Доступ к данным» (Shares) → «Общие ресурсы Windows (SMB)»
- Выбери существующий SMB-шаринг или создай новый
- В настройках шаринга найди параметр «Включить корзину» (Enable Recycle Bin)
- Активируй переключатель
- Настрой дополнительные параметры (опционально):
- Период хранения — сколько дней хранить файлы в корзине
- Исключить файлы — паттерны файлов, которые не нужно помещать в корзину
- Запретить удаление — предотвратить ручное удаление файлов из корзины
- Сохрани изменения и перезапусти SMB-сервис
// Пример конфигурации 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 и выполни:
# Просмотр текущих 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"
}'
Где хранятся файлы из корзины TrueNAS
Файлы из корзины хранятся в специальных директориях внутри датасета. Структура зависит от протокола:
| Протокол | Путь к корзине | Особенности |
|---|---|---|
| SMB/CIFS (Windows) | /mnt/pool/dataset/.recycle/username |
Отдельная папка для каждого пользователя |
| NFS | /mnt/pool/dataset/.recycle |
Общая папка для всех пользователей |
| WebDAV | /mnt/pool/dataset/.recycle |
Требуется отдельная настройка в Nextcloud/ownCloud |
Как посмотреть содержимое корзины
# Просмотр корзины для 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
- Подключись к SMB-шарингу с включенной корзиной
- В корне шаринга появится папка «$RECYCLE.BIN» (может быть скрытой)
- Зайди в папку → найди свою подпапку с именем пользователя
- Скопируй нужные файлы обратно в рабочую директорию
Способ 2: Через командную строку
# Восстановление файла в исходное место
cp /mnt/pool/dataset/.recycle/john/important.docx /mnt/pool/dataset/documents/
# Восстановление с сохранением структуры каталогов
# (если был удален целый каталог)
rsync -av /mnt/pool/dataset/.recycle/john/project/ /mnt/pool/dataset/projects/
Очистка корзины и управление хранением
Корзина может занимать значительное место. Важно настроить автоматическую очистку:
Настройка автоматической очистки
# Создаем задание в 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
Ручная очистка корзины
# Полная очистка корзины (осторожно!)
rm -rf /mnt/pool/dataset/.recycle/*
# Очистка корзины конкретного пользователя
rm -rf /mnt/pool/dataset/.recycle/john/*
Проблемы и решения
Корзина не работает или не отображается
- Проверь настройки SMB:
bash
testparm -s | grep recycle - Проверь права доступа:
bash
ls -ld /mnt/pool/dataset/.recycle/ # Должно быть: drwxrwx--- или drwxrwxrwt - Перезапусти SMB-сервис:
bash
midclt call service.restart cifs
Файлы не помещаются в корзину
- Проверь, не превышен ли лимит размера корзины (если настроен)
- Убедись, что файл не попадает под исключения (recyclebin_exclude)
- Проверь, достаточно ли свободного места в датасете
- Убедись, что удаление происходит через SMB/NFS, а не напрямую через shell
Часто задаваемые вопросы (FAQ)
В чем разница между корзиной и снапшотами ZFS?
Это разные механизмы защиты данных:
| Критерий | Корзина (Recycle Bin) | Снапшоты ZFS |
|---|---|---|
| Уровень работы | Файловая система/протокол | Блоки данных/ZFS |
| Восстановление | Ручное, файл за файлом | Полное восстановление состояния датасета |
| Потребление места | Дублирует удаленные файлы | Только изменения (Copy-on-Write) |
| Лучшее применение | Случайное удаление файлов пользователями | Резервное копирование, откат изменений |
Как настроить корзину для NFS?
Для NFS нет встроенной корзины, но можно эмулировать функциональность:
# Создаем скрипт-обертку для команды 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 можно задать разные параметры:
# В 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)
Теперь ты знаешь все о корзине в TrueNAS — от базовой настройки до продвинутых сценариев использования. Начни с простого включения функции для одного шаринга, а затем масштабируй решение на всю инфраструктуру. Удачи в настройке!