Cerberix 0 Опубликовано 28 июля 2016 Жалоба Рассказать Опубликовано 28 июля 2016 Всем доброго времени суток. Возникла такая проблема. Есть Около 20-ти видео регистраторов с камерами видео наблюдения. Примерно от 8 штук на каждом видео регистраторе. Все настроены сливать видео в свои ftp каталоги. И вот спустя почти пол года, вижу картину, моё хранилище заполнено на все 100% Не беда подумал и удалил старые файлы, по дате более 4-5 месяцев. Удалил ручками. Использовал FTP -клиента FileZilla. Значит тут же появилась желание автоматизировать этот процесс. Тех поддержка в контакте ответила, что Synology не умеет самостоятельно влиять на файлы пользователей. То есть авто удаления нет. Но есть возможность написать скрипт и засунуть его в планировщик. Собственно создал эту тему для того, что опытные люди помогли написать правильный скрипт и корректно его засунуть в планировщик. Мои требования и пожелания к скрипту: 1 - Находил старые файлы не обращая внимание на уровень вложенности в каталоги. Так как видео регистраторы далеки от идеала (все китайское, работает как умеет, на большее не способно). Пути к файлам порой дикие. Пример такой - видео регистратор в своем home каталоге создает такие папки " /M_5 /ftp /192.168.2.100 /192.168.2.112 /2016-06-14/DVR_ch1_20160614084118_20160614084249_0802.dav " /M_5 - это и есть домашний каталог одного из видео регистраторов. /ftp - это походу видео регистратор так обозначает, вид подключения, через которой он сливает видео файлы. Нафига он это делает, кто его знает. /192.168.2.100 - ip значит моего Synology в моей внутренней подсети. На него есть проброс портов с внешнего белого IP /192.168.2.112 - внутренний ip самого видео регистратор, он так же находится в одной подсети /2016-06-14 - ну и собственно сам каталог с датой, в который уже и пишутся файлы с видео регистратора. За каждый день свой каталог с файлами. /DVR_ch1_20160614084118_20160614084249_0802.dav - собственно один из файлов с видео регистратора. Его имя формируется автоматически (ИМЯ регистратора / номер камеры / за период с ГГГГ:ММ:ДД / ЧЧ:ММ:СС по период ГГГГ:ММ:ДД / ЧЧ:ММ:СС_ какой-то проверочный код регистратора или камеры). 2 - Что бы скрипт отрабатывал вне зависимости от того, насколько заполнен раздел. Та как в примере по ссылке ниже, у человека возникли проблемы 3 - Что бы скрипт не выполнялся медленно и забивал весь проц на 100% на пару часов. Так как видео регистраторы активно видосы льют 24/7/365. 4 - видимо сюда стоит написать пожелание, что бы язык скрипта был поддерживаемым самими устройствами Synology 5- Что бы скрипт обходил все домашние каталоги пользователей и удалял файлы по условиям. Собственно для каждого видео регистратора был создан отдельный домашний каталог и отдельный пользователь с правом входа только в свой домашний каталог. У меня куплен - Synology RS2414+ (Версия DSM - DSM 6.0.1-7393 Update 2). С полными корзинами винтов и общим объемом хранилища 44,3Тб. Про скрипты по гуглил и нашел один из примеров тут https://www.linux.org.ru/forum/admin/11261088 Подскажите добрые люди. Давайте напишем вместе классный скрипт, а может и не один. И не только для этой цели. Кому будет полезна данная тема. На этом форуме видел, люди используют Synology в качестве видео регистраторов для дач. Очевидно эта тема для них даст пользу. Кроме видео файлов могут быть и другие файлы. В видео регистраторах бывают косяки, например они забывают правильную дату, хотя есть NTP сервер. Фиг знает почему, приходится ручками менять дату на любую другую, после видео регистратор по NTP протоколу снова начинает получать правильную дату. Исходя их такого глюка, файлы и папки могут получать порой удивительные даты в названиях, например 2000-01-01. Потому хочется что бы срипт умел смотреть дату из файловой системы, а не из имени файла. Цитата Ссылка на сообщение Поделиться на другие сайты
Albion8 0 Опубликовано 27 сентября 2018 Жалоба Рассказать Опубликовано 27 сентября 2018 Возникла аналогичная задача. Говорят есть планировщик на Synology, в нем можно указать про запуск нужно скрипта ежедневно. Но сам скрипт нужно писать и это основная проблема. Кто может помочь? Цитата Ссылка на сообщение Поделиться на другие сайты
qwerty9 0 Опубликовано 25 октября 2018 Жалоба Рассказать Опубликовано 25 октября 2018 Скрипт то достаточно простой: #!/bin/sh find /path/to/your/folder/ -mtime +30 -exec rm -rf {} \; find /path/to/your/folder/ -type d -depth -exec rmdir {} + 2>/dev/null \; Первый find удаляет все файлы старше 30 дней Второй find убивает пустые папки Вам осталось заменить /path/to/your/folder/ на путь к вашему каталогу. Цитата Ссылка на сообщение Поделиться на другие сайты
Albion8 0 Опубликовано 15 ноября 2018 Жалоба Рассказать Опубликовано 15 ноября 2018 Скрипт то достаточно простой: #!/bin/sh find /path/to/your/folder/ -mtime +30 -exec rm -rf {} \; find /path/to/your/folder/ -type d -depth -exec rmdir {} + 2>/dev/null \; Первый find удаляет все файлы старше 30 дней Второй find убивает пустые папки Вам осталось заменить /path/to/your/folder/ на путь к вашему каталогу. Спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
putinpe 0 Опубликовано 9 апреля 2019 Жалоба Рассказать Опубликовано 9 апреля 2019 Сделал так в планировщике но у меня чет не работает. Что может быть? #!/bin/sh find /volume1/BACKUP/Sbis/-mtime +14 -exec rm -rf {} \; find /volume1/BACKUP/Droopbox/-mtime +14 -exec rm -rf {} \; find /volume1/BACKUP/Dsibs/-mtime +14 -exec rm -rf {} \; find /volume1/BACKUP/Promeg/-mtime +14 -exec rm -rf {} \; find /volume1/BACKUP/SQL/-mtime +14 -exec rm -rf {} \; На почту вот что падает Задача: ClearOldFiles Время запуска: Wed, 10 Apr 2019 00:52:44 GMT Время остановки: Wed, 10 Apr 2019 00:52:44 GMT Текущее состояние: 1 (Прервано) Стандартный вывод/ошибка: find: `/volume1/BACKUP/Sbis/-mtime': No such file or directory find: `+14': No such file or directory find: `/volume1/BACKUP/Droopbox/-mtime': No such file or directory find: `+14': No such file or directory find: `/volume1/BACKUP/Dsibs/-mtime': No such file or directory find: `+14': No such file or directory find: `/volume1/BACKUP/Promeg/-mtime': No such file or directory find: `+14': No such file or directory find: `/volume1/BACKUP/SQL/-mtime': No such file or directory find: `+14': No such file or directory Цитата Ссылка на сообщение Поделиться на другие сайты
данила 0 Опубликовано 10 апреля 2019 Жалоба Рассказать Опубликовано 10 апреля 2019 find /volume1/BACKUP/Sbis/ -type d -mtime +14 -exec rm -rf {} \; Цитата Ссылка на сообщение Поделиться на другие сайты
putinpe 0 Опубликовано 11 апреля 2019 Жалоба Рассказать Опубликовано 11 апреля 2019 find /volume1/BACKUP/Sbis/ -type d -mtime +14 -exec rm -rf {} \; Не работает Скрипт сделал так #!/bin/sh find /volume1/BACKUP/Sbis/ -type d -mtime +14 -exec rm -rf {} \; Теперь такое find: `/volume1/BACKUP/Sbis/-type': No such file or directory find: `d': No such file or directory find: `/volume1/BACKUP/Droopbox/-type': No such file or directory find: `d': No such file or directory find: `/volume1/BACKUP/Dsibs/-type': No such file or directory find: `d': No such file or directory find: `/volume1/BACKUP/Promeg/-type': No such file or directory find: `d': No such file or directory find: `/volume1/BACKUP/SQL/-type': No such file or directory find: `d': No such file or directory Цитата Ссылка на сообщение Поделиться на другие сайты
putinpe 0 Опубликовано 12 апреля 2019 Жалоба Рассказать Опубликовано 12 апреля 2019 Если кому будет надо то заработало так #!/bin/sh find /volume1/BACKUP/Sbis/ -type f -mtime +5 -exec rm -rf {} \; Цитата Ссылка на сообщение Поделиться на другие сайты
Фикс 0 Опубликовано 24 января 2020 Жалоба Рассказать Опубликовано 24 января 2020 сделал так. не происходит вообще ничего. что-то не так? русские буквы в пути? и на почту ничего не прилетело. Цитата Ссылка на сообщение Поделиться на другие сайты
kucher 0 Опубликовано 24 января 2020 Жалоба Рассказать Опубликовано 24 января 2020 сделал так. не происходит вообще ничего. что-то не так? русские буквы в пути? и на почту ничего не прилетело. Скрипт от root запускаете? Цитата Ссылка на сообщение Поделиться на другие сайты
Фикс 0 Опубликовано 24 января 2020 Жалоба Рассказать Опубликовано 24 января 2020 Скрипт от root запускаете? да Цитата Ссылка на сообщение Поделиться на другие сайты
Фикс 0 Опубликовано 6 февраля 2020 Жалоба Рассказать Опубликовано 6 февраля 2020 Скрипт от root запускаете? разобрался. кириллица в скрипте. возможно, ещё и пробелы. указал путь, в котором только латиница и нет пробелов, сработало. Цитата Ссылка на сообщение Поделиться на другие сайты
Hael 0 Опубликовано 10 октября 2020 Жалоба Рассказать Опубликовано 10 октября 2020 Скрипт то достаточно простой: #!/bin/sh find /path/to/your/folder/ -mtime +30 -exec rm -rf {} \; find /path/to/your/folder/ -type d -depth -exec rmdir {} + 2>/dev/null \; Первый find удаляет все файлы старше 30 дней Второй find убивает пустые папки Вам осталось заменить /path/to/your/folder/ на путь к вашему каталогу. Подскажите пожалуйста 1) Удаляет ли этот скрипт старые файлы в подпапках? Если да, то насколько глубоко? Если нет, то как это сделать? 2) Тот же вопрос. Удаляются ли пустые папки в подпапках и как это сделать? Цитата Ссылка на сообщение Поделиться на другие сайты
Hael 0 Опубликовано 10 октября 2020 Жалоба Рассказать Опубликовано 10 октября 2020 Так, удаление старых файлов удалось победить. Ура, спасибо за скрипт. Я использовал -atime т.к. отталкиваюсь не от времени создания файла, а от времени его последнего доступа к нему. 15 дней, после того как к нему последний раз обращались. find /volume1/Fileserver/Public/ -atime +15 -exec rm -rf {} \; Скрипт оббегает все вложенные папки до 9 уровня (глубже не стал создавать при тестировании), чему я тоже очень рад. Но вот с удалением пустых папок беда. Не удаляет. Я тут с просторов еще пробовал разные варианты, пару раз удалялся сам просматриваемый каталог, что недопустимо. Подскажите в чем может быть дело? Цитата Ссылка на сообщение Поделиться на другие сайты
Hael 0 Опубликовано 10 октября 2020 Жалоба Рассказать Опубликовано 10 октября 2020 Ура, кажется заработало и с папками в этом виде: find /volume1/Fileserver/Public/ -type d -mindepth 1 -exec rmdir {} 2>/dev/null \; Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.