Сron – задачи, или как я организовал хранение записей с камер видеонаблюдения
В недавно построенном доме я решил организовать внешнее видеонаблюдение, так скажем, один из этапов в постройке «умного» дома.
Камеры были установлены и передавали видео в реальном времени, под хранение я использовал свой старый системный блок под операционной системой Ubuntu. Настроив камеры на сохранения записей по движению на компьютер, я был доволен проделанной работой. Но прошло время, и я столкнулся с тем, что свободное место на моем ПК закончилось и я начал чистить старые видеозаписи. Вот тут меня посетила идея автоматизировать удаление старых файлов самой системой. На помощь мне пришел Cron – он позволяет по расписанию запускать запрограммированные процедуры на ПК под управлением операционной системы под unix. Чтобы посмотреть существующий список Cron-задач, необходимо ввести в командной строке crontab -l, и в командной строке отобразится вся информация, связанная с cron-задачами, в том числе с примерами:
Сейчас я вам кратко расскажу о задаче в примере, первые пять параметров отвечают за время запуска, шестой параметр за запуск команды:
- Первый параметр – минуты (0-59);
- Второй параметр – часы (0-23);
- Третий параметр – день месяца (1-31);
- Четвертый параметр – месяц (1-12);
- Пятый параметр – день недели (0-7) (0 или 7 понедельник);
- Шестой параметр – команда для выполнения.
Соответственно, мы уже можем расшифровать пример – задача запускает архивацию домашней директории каждый вторник в пять утра.
С задачами понятно, а как удалить сами файлы, спросите вы?
Создадим скрипт вроде bat-ника на windows и будем cron’ом запускать.
На мое удивление, командная строка в unix-системах оказалась довольно-таки мощным инструментом, и решить мою задачу по поиску и удалению старых файлов оказалось очень просто. Создадим текстовый файл с расширением скрипта - .sh.
Внутри скрипта прописываем команды. Обратите внимание, что в начале файла должна быть строка «#!/bin/bash»:
· Find – поиск объектов;
· Rm – удаление объектов.
Этот скрипт выполняет поиск объектов, которые были созданы больше 15 дней назад и удаляет их без подтверждения. Этот скрипт удаляет все объекты: и файлы, и директории. Обратите внимание на то, что некоторым камерам для записи необходимо наличие директории. Плюсом в этом скрипте я выдаю права на чтения. Всё, наш файл готов, теперь сохраняем его в своей директории и прописываем запуск этого файла в cron.
Для редактирования cron-задач необходимо в консоли запустить crontab с параметром -e, с этим параметром мы сможем вносить изменения.
Запускаем команду, спускаемся в самый низ и вставляем следующую строку:
Сохраняем изменения, и всё готово. Задача по удалению старых файлов будет запускаться каждый день ровно в 23 часа.
Понадобилось немного строк кода для решения поставленной задачи, но у новичков в системах unix на поиск решения ушло бы время. Я надеюсь, мой опыт будет вам полезен. Если возникнут вопросы, пишите в комментарии, постараюсь оперативно ответить. А также, если будет интересен мой опыт в создании сервера на старом ПК и настройке камер, я с радостью отвечу. А если будет много вопросов, обязательно прокомментирую в новом посте.
Спасибо за прочтение!