NAS Synology автоматическое удаление старых файлов через bash скрипт

11.10.2019

NAS Synology

Данную задачу я буду реализовывать на том сервере, который у меня есть в данный момент: Synology RS2416+ с операционной системой конечно же DSM но версии 6.2-23739. Хотя на всех предыдущих и последующих версиях данный метод будет себя чувствовать просто замечательно и работать как часы!

Немного о методе

Так как система DSM (DiskStation Manager) основана на всеми любимом Linux, то и прекрасно понимает bash команды. Собственно мы собираемся прописать простейший скрипт для автоматического удаления файлов старше N количества дней. Вообще удаление старых файлов при резервном копировании не менее важная функция после создания самого резервного копирования. Думаю вопросов "Почему" у читающего человека не должно возникать.

Пишем скрипт для планировщика задач Synology

Для написания скрипта будем использовать команду FIND, так как у неё очень гибкие возможности. Если есть желание более подробно с ней ознакомится, то не составит труда эту информацию найти через поисковик. 😎 Я для вас подготовил небольшую фичу для формирования скрипта (смотрите ниже). Пример скрипта планировщика Synology:


find /volume1//ИМЯ_ДИРЕКТОРИИ/ -mmin +10080 -delete

Верхний скрипт удаляет ☕ только файлы, а если вам необходимо удалить директории вместе с файлами старше N дней, то вам необходим скрипт ниже

find /volume1//ИМЯ_ДИРЕКТОРИИ/ -type d -mmin +10080 -exec rm -rf {} \;

Почему в минутах? Точно не знаю почему, но -mtime +7 никак не хотел работать. Выводилась ошибка:

find: `+7': No such file or directory

А так, mmin это минуты, mtime это дни.

Настройка расписания скрипта удаления старых файлов с NAS Synology

И так. Скрипт есть, осталось дело за малым — настройка планировщика задач. Заходим на NAS Synology и далее в раздел Панель управления 👉🏻 Планировщик задач 👉🏻 Создать 👉🏻 Запланированная задача 👉🏻 Скрипт, заданный пользователем Даём имя скрипту в основной вкладке, а затем вставляем сгенерированный ранее нами скрипт в поле Скрипт, заданный пользователем по вкладке Настройки задач. Теперь настраиваем расписание через вкладку Расписание (логично же 😂). Думаю там у вас вопросов не возникнет, а если вдруг, то пишите в комментарии!

Панель управления NAS Synology
Панель управления NAS Synology
Расписание задачи
Расписание задачи

Если вы затрудняетесь на каком у вас разделе лежит та или иная папка общего доступа, то вы можете посмотреть тут: Панель управления 👉🏻 Папка общего доступа. Там под названием каждого каталога будет указано на каком разделе он находится!

Заключение

Вот и всё! Вы за 5 минут настроили скрипт удаления старых файлов с NAS сервера Synology по расписанию. Было просто.

Автору на кофе ☕ или просто поднять мотивацию писать больше статей и заметок для вас 😉 !

Комментари 4:

avatar
Дмитрий - 30 декабря 2019, 11:26
Доброго времени суток, скрипт отрабатывает прекрасно, только после выходных суб. вс. папки для сканирования не доступны, слетают права и помогает только пересоздание папок
avatar
itlocate.ru - 30 декабря 2019, 13:14 1
От какого пользователя запускаете задачу (я запускаю от root)? Вот как у меня на двух Synology настроен скрипт (https://prnt.sc/qhgg75) всё проходит без ошибок и папки всегда остаются доступными. Попробуйте обновить систему и посмотреть как будет себя вести скрипт.
avatar
Дмитрий - 09 января 2020, 11:52 1
Скрипт отрабатывает тоже от root ошибок нет просто папка SCAN становится не доступна, в течении недели если в нее сканируют то все прекрасно чистится, а после выходных суб. вс. папку не видит не один скан, а когда заходишь в раздел прав доступа папки SCAN там нет ни пользоков ни групп, помогает только пересоздания папки, сейчас отрубил этот скрипт и папка работает но соответственно не чистится. DSM 6.2.2-24922 Update 4 новее нет версии, модель RS816
avatar
itlocate.ru - 09 января 2020, 15:21 1
А можно скрины посмотреть как у вас настроено расписание? Дмитрий, можете прислать доступ к NAS мне на почту (см в разделе контакты), если есть такая возможность конечно
avatar
Дмитрий - 13 января 2020, 15:34 1
Делюсь скрином расписания prnt.sc/qn0l8i
avatar
itlocate.ru - 13 января 2020, 15:49 1
Может быть конфликтуют задачи. Я так понял, что ты хочешь сначала удалить, а потом очистить корзину. Верно? Сделай как у меня на этом скрине и на этом скрине (разница в 40 минут перед запуском следующей задачи). А чтобы хомячки не паниковали создай тестовую папку и в течении недели/двух сам понаблюдай.
avatar
Дмитрий - 15 января 2020, 09:20 1
Да, я тоже склоняюсь к тому что задачи конфликтуют, спасибо за совет попробую затестить отпишу после теста
avatar
Дмитрий - 15 января 2020, 11:47 1
А есть еще вопрос а на USB диски как применить эту задачу? Есть еще 2 а USB для Backup как бы их победить, чтоб не ручками))
avatar
itlocate.ru - 15 января 2020, 14:34 1
Там по идеи том (volume1, 2, 3 ...) меняется
find /volume2/scan_usb/ -mmin +10080 -delete
посмотри в диспетчере хранения
avatar
Дмитрий - 20 января 2020, 14:42 1
Не помогло все ровно после суб. вс. папки упали, попробую убрать корзину и исключу суб. вс
avatar
itlocate.ru - 26 января 2020, 17:43 1
А в логах чего пишет? Логи смотрели за пятницу — понедельник? У вас лицензионная операционка или xpenology?
avatar
Дмитрий - 03 февраля 2020, 17:01 1
Вот что выдает папка prnt.sc/qwvuo8
avatar
itlocate.ru - 04 февраля 2020, 10:22 1
Я написал вам на почту. Для дальнейшего решения я бы хотел всё таки взглянуть на систему и пробежаться по настройкам. Сам лично с подобной проблемой не сталкивался.
avatar
Дмитрий - 14 февраля 2020, 11:15 1
В почте нет письма(( Можете продублировать. Я постараюсь согласовать доступ.
avatar
itlocate.ru - 14 февраля 2020, 11:57 1
напишите на inform@itlocate.ru
avatar
Дмитрий - 24 марта 2020, 12:41 1
написал еще 26 фев в 12:10
avatar
itlocate.ru - 12 апреля 2020, 17:00 1
Я конечно ответил). Мне написал на почту ещё один пользователь, у него был вопрос про удаление старых директорий. Статью дописал itlocate.ru/blog/linux/synology-avtomaticheskoe-udalenie-staryix-fajlov.html#step2

Написать комментарий

Ваш email не будет опубликован

13768