![]() |
|
![]() |
#1 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Доброе время суток коллеги
![]() Имеется девайс 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 Код:
/etc/init.d/cron start Код:
top Код:
SHELL=/bin/sh PATH=/bin:/usr/bin 3 * * * * root /usr/bin/y.sh > /etc/crontabs/log.cron ![]() Код:
cd /etc/crontabs && ls Не работает Пробывал: Код:
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. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Код:
/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 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
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 {} \; ![]() === Вообщем, конечно отчасти не по заявленной теме ![]() Буду благодарен, за помощь в написании скриптов - для оптимизации работы с архивами видеорегистратора ![]() Последний раз редактировалось sunny; 28.10.2015 в 21:28. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Попробуйте не напрямую из крона это делать, а из скрипта запускаемого из крона. Так же попробуйте работать с файлами "пофайлово", а не рекурсивно.
Вот мой скрипт: PHP код:
Создаёт очередной дамп с датой вместо названия. На опенврт не пробовал.
__________________
istarik.ru Последний раз редактировалось stD; 24.10.2015 в 06:59. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
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 Код:
#!/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 Код:
#!/bin/sh cd /mnt/ya && mkdir $(date +%Y-%m-%d) Последний раз редактировалось sunny; 28.10.2015 в 20:39. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Спасибо 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 Код:
#!/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. Причина: так нуно |
![]() |
![]() |
![]() |
#8 |
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
А ведь motion вроде сам умеет много чего делать, включая запуск скриптов.
... Какие обиды, отнюдь, спасибо Вам за то, что тут всё запостили.
__________________
istarik.ru Последний раз редактировалось stD; 25.10.2015 в 19:28. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
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 Может им 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. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1601 ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Результаты работы скриптов 1.sh и 2.sh выглядят так
![]() ![]() === ![]() === ![]() === Можно конечно шифрование "замутить" ![]() Но спецам проще это сделать по вашему сотовому, зато у вас ничего не крутиться и не потребляет электричества. Так же, хранение данных на удаленном носителе, позволяет восстановить хронику событий - в случае например пожара или поджога (не дай бог конечно). Последний раз редактировалось sunny; 29.10.2015 в 15:11. |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|