Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.10.2015, 11:04   #1
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
Post Настройка cron

Доброе время суток коллеги
Имеется девайс Asus rt-n14u c самостоятельно собранной прошивкой Chaos Calmer 15.05.
===
Необходимо организовать выполнение скрипта, который перемещен в /usr/bin/y.sh c с помощью:
Код:
scp /home/user/y.sh [email protected].*.*:/usr/bin
Скрипт проверен запуском
Код:
sh /usr/bin/y.sh
Запускаю cron:
Код:
/etc/init.d/cron start
Cron видится при выполнении
Код:
top
Настраиваю cron через люсю на выполнение скрипта:
Код:
SHELL=/bin/sh
PATH=/bin:/usr/bin

3 *    * * *   root	/usr/bin/y.sh  > /etc/crontabs/log.cron
Иду посмотреть где этот файл
Код:
cd /etc/crontabs && ls
нахожу файл root с прописанными мной настройками.

Не работает
Пробывал:
Код:
chmod 600 /etc/crontabs/root
chmod 700 /etc/crontabs/root
Естественно выполняя
Код:
/etc/init.d/cron restart
Облазил кучу сайтов, пробывал по всякому.
До этого на ubuntu cron-ом толком не пользовался...

Может все дело в настройке /etc/init.d/cron, содержимое моего:
Код:
#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2011 OpenWrt.org

START=50

USE_PROCD=1
PROG=/usr/sbin/crond

validate_cron_section() {
        uci_validate_section system system "${1}" \
                'cronloglevel:uinteger'
}

start_service () {
        [ -z "$(ls /etc/crontabs/)" ] && return 1

        loglevel=$(uci_get "system.@system[0].cronloglevel")

        [ -z "${loglevel}" ] || {
                /sbin/validate_data uinteger "${loglevel}" 2>/dev/null
                [ "$?" -eq 0 ] || {
                        echo "validation failed"
                        return 1
                }
        }

        mkdir -p /var/spool/cron
        ln -s /etc/crontabs /var/spool/cron/ 2>/dev/null

        procd_open_instance
        procd_set_param command "$PROG" -f -c /etc/crontabs -l ${loglevel:-5}
        procd_close_instance
}

service_triggers()
{
        procd_add_validation validate_cron_section

Буду благодарен за помощь в решении проблемы

Последний раз редактировалось sunny; 23.10.2015 в 09:34.
sunny вне форума   Ответить с цитированием
Старый 22.10.2015, 12:42   #2
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Настройка cron

Вроде разобрался , нашел адекватную ссылку:
http://sc-blog.ru/%D0%BD%D0%B0%D1%81...D0%B0-openwrt/
sunny вне форума   Ответить с цитированием
Старый 22.10.2015, 18:19   #3
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Настройка cron

Код:
/etc/init.d/cron stop
echo "3 *    * * *   root	/usr/bin/y.sh  > /etc/crontabs/log.cron" >> /etc/crontabs/root
/etc/init.d/cron enable
/etc/init.d/cron start
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 23.10.2015, 10:03   #4
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Настройка cron

stD
Спасибо
Ссылка свежая, "методика" 100% рабочая...
===
Немного по технической части (вариант для тех кто умеет работать не только головой, но руками и паяльником):

Роутер-видеорегистратор
© зы, мое название

разнообразные вебкамера+роутер в сети давно, мой вдохновитель:
http://dimio.org/videoregistraciya-v-linux.html

Роутер вешается в районе входной двери (бп - его плата на нажимных вагах, прячется в полупустую разветвительную коробку 220V расположенную поблизости).
В подъезд, через канал слаботочки - в щиток слаботочки, выводится usb удлинитель (если разъем не лезет, обрезать и паять разборный + термоусадка).
Монтируется в зависимости от инд.тех условий и проекта дома учитывая что, чем меньше длина usb кабеля тем лучше.
Камера - качественная вебка (ее начинка) помещается в корпус купольной камеры (камера обманка-пустышка-манекен, там используются стандартные корпуса), в принципе можно заменить на обычную ip камеру с ali.
Объектив можно заменить, например поставить с минимальным фокусным расстоянием: http://ru.aliexpress.com/item/1-8mm-...456403935.html, здесь подробнее: http://corptech.ru/vybiraem-kameru-v...nie-do-obekta/
Обеспечивает запись программа motion, ffmpeg - пока заставить работать не смог, хотя делал тоже: https://forum.openwrt.org/viewtopic.php?id=56786
===
По тому же принципу, можно организовать наблюдение за своей машиной во дворе дома например.
===
Контент пишется непосредственно на Яндекс Диск (за это отвечает davfs2)

Скриптописатель из меня слабый, почитываю пока:
http://www.opennet.ru/docs/RUS/bash_scripting_guide/

Удалось добиться скриптами:

Каждый час автоматически создается оперативная папка (одно название) куда motion пишет контент.
Незадолго до этого motion останавливается, оперативная папка переименовывается в 22-10-15_15:**:** (вместо * естественно цифры ).
Создается оперативная папка (с тем же названием) и motion снова стартует.
Один раз в сутки, создается папка 22-10-15.

Это все реализовать я смог.
===
Не получается переместить все папки за сутки формата 22-10-15_15:**:**, 22-10-15_16:**:**, 22-10-15_17:**:** - $(date +%d-%m-%y_%T)
в папку 22-10-15 - $(date +%d-%m-%y)

Также нужно организовать автоматическое удаление старых файлов, чтобы сохранять оперативное пространство на Яндекс Диске.

Можно через cron:
Код:
17 3 * * * find /mnt/ya -type d -mtime +35 -exec rm -R {} \;
но на openwrt -mtime +35 не работает

===
Вообщем, конечно отчасти не по заявленной теме , но нужно было дать "полную картину".
Буду благодарен, за помощь в написании скриптов - для оптимизации работы с архивами видеорегистратора

Последний раз редактировалось sunny; 28.10.2015 в 21:28.
sunny вне форума   Ответить с цитированием
Старый 24.10.2015, 06:56   #5
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Настройка cron

Попробуйте не напрямую из крона это делать, а из скрипта запускаемого из крона. Так же попробуйте работать с файлами "пофайлово", а не рекурсивно.

Вот мой скрипт:
PHP код:
#!/bin/bash

find ~/mnt -name "*.sql" -mtime +-exec rm -{} \;
sleep 2
mysqldump 
-uroot  -pПАРОЛЬ -A  > /mnt/`date "+%Y-%m-%d"`.sql 
Удаляет дампы базы из каталога /mnt если этих файлов больше семи.
Создаёт очередной дамп с датой вместо названия.


На опенврт не пробовал.
__________________
istarik.ru

Последний раз редактировалось stD; 24.10.2015 в 06:59.
stD вне форума   Ответить с цитированием
Старый 24.10.2015, 10:55   #6
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Настройка cron

stD
Попробую

Создал тему на самом посещаемом linux ресурсе в зоне ru http://forum.ubuntu.ru/index.php?topic=267647.0
без обид

Реализовал все кроме удаления старых файлов.

Cron запускает два скрипта вида:
Код:
58 */1 * * * /usr/bin/1.sh
1 0 * * * /usr/bin/2.sh
Содержимое скрипта 1.sh:
Код:
#!/bin/sh
killall motion && cd /mnt/ya
sleep 2
mv a $(date +%Y-%m-%d_%H)
sleep 40
mkdir a
sleep 2
mv $(date +%Y-%m-%d_%H)/ $(date +%Y-%m-%d)
sleep 40 
motion
Содержимое скрипта 2.sh:
Код:
#!/bin/sh
cd /mnt/ya && mkdir $(date +%Y-%m-%d)
Не нравиться конечно, что motion бездействует чуть больше минуты, но если не делать пауз, операции с контентом на Яндекс Диске не выполняются...

Последний раз редактировалось sunny; 28.10.2015 в 20:39.
sunny вне форума   Ответить с цитированием
Старый 24.10.2015, 12:46   #7
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Настройка cron

Спасибо Azure

Поиск старых фалов для 3.sh:

Код:
find /mnt/ya -type d -exec sh -c '[ $(date -r "$0" +%s) -lt $(($(date +%s) - 2592000)) ]' {} \; -print
Секунд:
В дне 86.400
В неделе 604.800
В месяце (30 дней) 2.592.000
В квартале (91 день) 7.862.400
В году (365 дней) 31.536.000

Останется заменить -print на -exec rm -R {} \; и прописать в cron запуск в 2-3 часа ночи, для поиска и удаления старых файлов.

Cron:
Код:
58 */1 * * * /usr/bin/1.sh
1 0 * * * /usr/bin/2.sh
2 3 * * * /usr/bin/3.sh
Скрипт 3.sh
Код:
#!/bin/sh
cd /mnt/ya
find /mnt/ya -type d -exec sh -c '[ $(date -r "$0" +%s) -lt $(($(date +%s) - 2592000)) ]' {} \; -exec rm -R {} \;
Удаляет все что больше месяца.

Последний раз редактировалось sunny; 25.10.2015 в 11:41. Причина: так нуно
sunny вне форума   Ответить с цитированием
Старый 25.10.2015, 19:26   #8
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Настройка cron

А ведь motion вроде сам умеет много чего делать, включая запуск скриптов.
...
Какие обиды, отнюдь, спасибо Вам за то, что тут всё запостили.
__________________
istarik.ru

Последний раз редактировалось stD; 25.10.2015 в 19:28.
stD вне форума   Ответить с цитированием
Старый 26.10.2015, 14:06   #9
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Настройка cron

stD
Да, по идее поддерживает.
Пользовался им последний раз в году 9-10 м, записи утрачены.
По идее должно работать:

Код:
target_dir /mnt/ya
snapshot_filename %Y%m%d
jpeg_filename %Y%m%d
movie_filename %Y%m%d
По факту добиться необходимого функционала не получилось.
Так дежурная папка "a", если прописываем
Код:
target_dir /mnt/ya/a
создается в директории motion-ом самостоятельно, но только до 12:00
Может им AM или PM нужно указывать не знаю....
===
Нужно учесть, что версия в git-e openwtrt motion вроде как "допиленная".
Она должна быть адаптирована к работе на слабом железе роутеров и поддерживать современный ffmpeg.
Лишний функционал из него могли просто вырезать - чтобы уменьшить нагрузку на железо.
===
Костыль с двумя скриптами кривоват конечно
Правильнее было писать в одну папку и оттуда растаскивать файлы по нужным папкам, но костыль рабочий, и это все что у меня есть.
===
Еще важный момент при работе с Яндекс Диском - идет заметная задержка:
- вновь созданный файл сразу видится в кэше роутера
- но на сайте Яндекса появляется в течении минуты
===
Ну и мои скрипты старта сервисов после перезагрузки роутера.
Можно прописать выполнение sh с веб морды люси - пакет - luci-app-commands
Код:
#!/bin/sh
echo 'y' | mount.davfs https://webdav.yandex.ru /mnt/ya
/etc/init.d/cron start && /etc/init.d/cron enable
motion
Проверка подключен ли Яндекс диск:
Код:
#!/bin/sh
if grep -q 'https://webdav.yandex.ru' /proc/mounts
then
    echo 'OK'
else
    echo "Trouble"
fi 
killallmotion
echo 'y' | mount.davfs https://webdav.yandex.ru /mnt/ya
motion
===
Если кто знает, как сделать лучше, и Главное чтобы все работало.
Буду только рад

Последний раз редактировалось sunny; 28.10.2015 в 20:41.
sunny вне форума   Ответить с цитированием
Старый 29.10.2015, 12:29   #10
sunny
Senior Member
 
Аватар для sunny
 
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600
sunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to allsunny is a name known to all
По умолчанию Re: Настройка cron

Результаты работы скриптов 1.sh и 2.sh выглядят так :

===

===


===
Можно конечно шифрование "замутить" , если вас волнует, что те кто имеют доступ к вашему ЯД - могут контролировать ваш суточный график передвижения.

Но спецам проще это сделать по вашему сотовому, зато у вас ничего не крутиться и не потребляет электричества.

Так же, хранение данных на удаленном носителе, позволяет восстановить хронику событий - в случае например пожара или поджога (не дай бог конечно).

Последний раз редактировалось sunny; 29.10.2015 в 15:11.
sunny вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:52. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика