syoma 0 Posted May 11, 2016 · Report post Привет. Такая ситуация - в моей системе Распберри работает в режиме 24/7. Управляет всякими девайсами через инет и USB, пишет логи на SD-карту. На этой же самой SD карте хранится операционка и конфигурация. Из того, что я прочитал в инете, ресурс этой самой SD карты в таком режиме не безграничен и рано или поздно она откажет. Поэтому хочу сейчас исключить данную возможность и желательно самым простым способом. Естественно бекап SD карты можно сделать вручную, но мне хочется это как-то автоматизировать, желательно парой команд. В моей сети также присутствует NAS с жестким диском, тоже в 24/7, куда при случае можно бекапить, но хотелось бы не ждать пока карта гавкнется, а вообще исключить поломку. В общем какие посоветуете решения? Например, как вариант вместо карты использовать USB винчестер. Но не знаю можно ли загрузить Расперри с него. Или использовать сетевую загрузку. Также логи, наверное желательно писать на NAS, или USB, а карту чделать Read-only. Share this post Link to post Share on other sites
AlexandrY 0 Posted May 11, 2016 · Report post А поставить Windows 10 на Raspberry? Я использую планшеты с Windows 10, они отлично работают с внешними дисками. Share this post Link to post Share on other sites
muravei 0 Posted May 11, 2016 · Report post Использовать облако с помощью WebDAV. Share this post Link to post Share on other sites
Slash 0 Posted May 11, 2016 · Report post Сделать SD-карту Read-Only. Для этого настраиваете демон логгирования rsyslogd (или используете другой, если настройки не позволяют), чтобы он писал логи на ваш NAS. Отключаете swap файл или перенаправляете его на NAS. В общем, все, что должно писать на SD-карту или отключаете или перенаправляете на NAS. Делаете карту read-only. Share this post Link to post Share on other sites
mantech 0 Posted May 12, 2016 · Report post Управляет всякими девайсами через инет и USB, пишет логи на SD-карту. На этой же самой SD карте хранится операционка и конфигурация Может все-таки логи писать только при ошибках или перезагрузках? Если система работает нормально, то и записей на сд будет немного :laughing: Share this post Link to post Share on other sites
syoma 0 Posted May 12, 2016 · Report post Может все-таки логи писать только при ошибках или перезагрузках? Если система работает нормально, то и записей на сд будет немного :laughing: Не, мне надо логи работы, чтобы знать, например, температуру за последние дни, или насколько часто включалась определенная релюшка. По поводу Read-only, спасибо, буду смотреть, но надо бы, чтобы было как можно меньше возни с конфигурацией и потом не было проблем с системой. Share this post Link to post Share on other sites
Tarbal 0 Posted May 13, 2016 · Report post Да разные есть варианты. Можно с сети загризить ядро по TFTP и смонтировать файловую систему с NFS. Это по поводу вашего вопроса как загрузить с сети. Но для этого нужен работающий компьютер с которого все по сети берется. Если не с сети грузиться: SWAP скоее всего не включен, а если включен то быстро добьет ваш диск. Логи легко перенаправить на другой компьютер и уже там писать.. Share this post Link to post Share on other sites
mantech 0 Posted May 13, 2016 · Report post Не, мне надо логи работы, чтобы знать, например, температуру за последние дни, или насколько часто включалась определенная релюшка. Если ваша система работает стабильно, то такие логи можно сбрасывать на RAM disk например. Или на внешний усб-винт. Share this post Link to post Share on other sites
Овчинников Игорь 0 Posted May 13, 2016 (edited) · Report post Попробуйте если сетевой диск: mkdir /mnt/netdsk mount -t cifs -o username='user',password='password' //<IP>/<path> /mnt/netdsk chmod 777 /mnt/netdsk и сохраняйте данные в /mnt/netdsk просто USB диск: mkdir /mnt/disk mount /dev/sda1 /mnt/disk chmod 777 /mnt/disk где /dev/sda1 ваш USB диск (может быть и sdaN, sdbN, sdc и т.д. и сохраняйте данные в примонтированное устройство /mnt/disk или накапливайте данные в RAM диске и время от времени делайте бекап в примонтированное устройство ну а автобекап примерно так: #!/bin/bash _ps="/home/user/file" #пусть к вашему файлу _pd="/mnt/disk/file" #пуст к вашему примонтированному устройству и файлу ((work = 1)) while ( ((work > 0)) ) do cp $_ps $_pd sleep 100 #интервал бекапа в секундах done запустие подобный скрипт и будет счастье Edited May 13, 2016 by Paramon Share this post Link to post Share on other sites
syoma 0 Posted May 13, 2016 · Report post Paramon, спасибо, буду пробовать. Как я уже говорил в сети есть NAS в режиме 24/7, который бекапится в облако. То есть логи я на него перекинуть могу. А вот можно ли загружаться с него, если там только файловый доступ организован? Share this post Link to post Share on other sites
Овчинников Игорь 0 Posted May 13, 2016 (edited) · Report post Paramon, спасибо, буду пробовать. Как я уже говорил в сети есть NAS в режиме 24/7, который бекапится в облако. То есть логи я на него перекинуть могу. А вот можно ли загружаться с него, если там только файловый доступ организован? Debian (Raspbian) "считает", что примонтированное устройство это его личное и входит в его файловую систему. И он будет в него писать и читать из него - ему до лампочки. Главное чтобы были физические возможности работы с ним и права доступа к этому устройству той программе (пользователю) на чтение и запись. Про загрузку - это не потребуется! Будете грузиться с SD карты как и ранее. Выключите SWAP (swapoff -a). Для работы вам 1 гиг озу вполне хватит да и на APACHE+PHP+MySQL c видео останется. Сам испытывал. Да а если SWAP необходим то настройте также на примонтированном диске, желательно HDD. Edited May 13, 2016 by Paramon Share this post Link to post Share on other sites
syoma 0 Posted May 13, 2016 · Report post Debian (Raspbian) "считает", что примонтированное устройство это его личное и входит в его файловую систему. И он будет в него писать и читать из него - ему до лампочки. Главное чтобы были физические возможности работы с ним и права доступа к этому устройству той программе (пользователю) на чтение и запись. А можно сделать так, чтобы сетевой диск как-то "подменил" SD карту? Просто чтобы перенаправить логи, надо ковыряться в настройках десятка программ, и все они пишут в var/log только разные папки. Вот и хотелось бы эту папку подменить сетевой с помощью одной команды, чтобы в настройках приложений ничего не менять. Это возможно? Share this post Link to post Share on other sites
Овчинников Игорь 0 Posted May 13, 2016 · Report post А можно сделать так, чтобы сетевой диск как-то "подменил" SD карту? Просто чтобы перенаправить логи, надо ковыряться в настройках десятка программ, и все они пишут в var/log только разные папки. Вот и хотелось бы эту папку подменить сетевой с помощью одной команды, чтобы в настройках приложений ничего не менять. Это возможно? Конкретно не испытывал на Raspberry, но на Moxa UC7112LX-plus я подменял родную (встроенную) директорию /home на дубликат на SD карте (SD не жалко было по сравнению с впаянной) 1) коприровал /home на SD, которая была в /mnt (в этой папке все пользователи) не забудьте про принадлежность пользователям и разрешениях 2) делал автомонтирование в /etc/rc.local наподобие о чём писал - команда mount 3) при запуске была подмена, но учтите что исходная /home не будет изменяться - будет в "тени" и при неудачном монтировании всплывёт и будет не очень гуд. Попробуйте сначала просто в "ручном" режиме - понятное дело, что с ROOT правами. Да и все манипуляции с монтированием, о чём говорилось выше, тоже с ROOT. В общем загружать программу если она не в /usr или /lib и не в /bin а где-то в /home (/home/<user>) получиться. А подмена этих путей по моему перебор. Проще настроить (да и правильнее) запуск необходимого софта. Как правило запущенный код "мусорит" в папке пользователя - того кто запустил. Если это не /var - где все оставляют логи. И ещё я не испытывал, но люди говорят про запуск с (USB)Flash/HDD: посмотрите тут Но всё равно начальный старт (загрузчик) с SD карты. Share this post Link to post Share on other sites
halfdoom 0 Posted May 14, 2016 · Report post А можно сделать так, чтобы сетевой диск как-то "подменил" SD карту? Поднимите на NASe NFS сервер, создайте экспорт для корневой системы, залейте туда копию карточки. Затем на RPI поправьте /boot/cmdline.txt: root=/dev/nfs rootfstype=nfs nfsroot=nas-ip:/nfs/rootfs/raspberry ip=rpi-ip:def-gw:broadcast:netmask nas-ip, rpi-ip, def-gw, broadcast и netmask замените на нужные вам значения. После этого карточка будет жить долго и счастливо, а систему можно обновлять хоть 10 раз в сутки. (это рецепт из давно живущей системы, поменялось ли что-то в новых версиях - не знаю). Share this post Link to post Share on other sites
syoma 0 Posted May 19, 2016 · Report post Поднимите на NASe NFS сервер, создайте экспорт для корневой системы, залейте туда копию карточки. Затем на RPI поправьте /boot/cmdline.txt: Выглядит достаточно просто, спасибо. Еще б подсказали, что означает создать экспорт для корневой системы, но помоему я совсем обленился :-) Насчет давно живущей системы - распи, получается, если не насиловать, не использовать всякие GPIO и принять меры к изнашиваемости SD карты, довольно живучая система получается? никаких движущихся частей, не греется сильно. Или все-таки там есть баги по долговременной надежности - перегрев или плохая схемотехника? Share this post Link to post Share on other sites