Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

Delta213

Linux_оводы есть на форуме?

Рекомендуемые сообщения

Я уже себе весь мозг свернул.

Консольный дебиан, нужно сделать автомонтирование/размонтирование юсб носителей. Не через фстаб, а чтобы на лету монтировалось. По разному пробовал, ничего не получается. Нашел пакет udevil, в его составе есть devmon, вот если его в консоли запускаю, то монтируется на лету. Немного криво, но работает. Но как теперь этот devmon автоматом при старте запускать?  Я тоже всяко уже перепробовал, никак не получается. Последнее что делал в rc.local добавлял и просто devmon, и exec devmon, не хочет стартовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не линуксойд. Я просто стоял рядом с ребятами, которые за гаражами пользовались cron'ом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 часов назад, Delta213 сказал:

Я уже себе весь мозг свернул.

Консольный дебиан, нужно сделать автомонтирование/размонтирование юсб носителей. Не через фстаб, а чтобы на лету монтировалось. По разному пробовал, ничего не получается. Нашел пакет udevil, в его составе есть devmon, вот если его в консоли запускаю, то монтируется на лету. Немного криво, но работает. Но как теперь этот devmon автоматом при старте запускать?  Я тоже всяко уже перепробовал, никак не получается. Последнее что делал в rc.local добавлял и просто devmon, и exec devmon, не хочет стартовать.

rc.local норм если он не отключён. Проверь пути и переменные окружения под su. Скорее всего exec не работает. Запускай под тем пользователем по которым точно пашет и в среде которая точно пашет.

например:

sudo -u Delta bash /home/Delta/myUSBMon.sh 

В /var/log/syslog посмотри как все прошло и какие ошибки.

Возможно rc.local слишком рано грузится до каких то необходимых демонов, передвинь очередность загрузки или поставь паузу в стартовом скрипте.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я не совсем уверен что так вообще можно, сделал скрипт /home/user/autoexec.sh, его содержимое:

#!/bin/sh
exec devmon

 

В rc.local прописал:

/home/user/autoexec.sh

вообще так можно запускать?

 

Мне посоветовали для автомонтировки в /etc/udev/rules.d/11-media-by-label-auto-mount.rules прописать:

KERNEL!="sd[a-z][0-9]", GOTO="media_by_label_auto_mount_end" 
# Import FS infos 
IMPORT{program}="/sbin/blkid -o udev -p %N" 
# Get a label if present, otherwise specify one 
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}" 
ENV{ID_FS_LABEL}=="", ENV{dir_name}="usbhd-%k" 
# Global mount options 
ACTION=="add", ENV{mount_options}="relatime" 
# Filesystem-specific mount options 
ACTION=="add", ENV{ID_FS_TYPE}=="vfat|ntfs", ENV{mount_options}="$env{mount_options},utf8,gid=100,umask=002" 
# Mount the device 
ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options} /dev/%k /media/%E{dir_name}" 
# Clean up after removal 
ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" 
# Exit 
LABEL="media_by_label_auto_mount_end"

 

После этого, при подключении диска в media появляется пустая папка с именем=метке диска (ladle). И всё, т-е как бы что-то отрабатывает, но не до конца.

В другой сборке подсмотрел как там диски монтируются, там в 11-media-by-label-auto-mount.rules лежит:

SUBSYSTEM!="block", GOTO="end_rule"
KERNEL!="sd[a-z][0-9]", GOTO="end_rule"
ACTION=="add", RUN+="/home/root/mount_media %k plugdev"
ACTION=="remove", RUN+="/home/root/mount_media %k unplugdev"
LABEL="end_rule"

 

в "/home/root/mount_media лежит:

if [ "$2" = "plugdev" ]; then 
     /home/root/mount.sh
else
TEMPL="^/dev/${1} " 
MOUNT_POINT=$(/bin/cat /proc/mounts | grep -w "$TEMPL" | /usr/bin/cut -d ' ' -f 2)
umount -l /dev/${1}
sleep 1
rmdir --ignore-fail-on-non-empty "$MOUNT_POINT"
fi
exit 0

 

и соответственно  сам скрипт mount.sh во вложении. Так тоже делал, эффект такой-же, пустая папка, имя=LABLE диска  

 

 

mount.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По умолчанию в rc.local интерпретатор не баш и работает он не в окружении твоего пользователя.

Поэтому вместо /home/user/autoexec.sh

Попробуй написать в rc.local

sudo -u user bash /home/user/autoexec.sh &> /home/user/autoexec.log

Перегрузи и посмотри лог

Скорее всего интерпретатор не находит exec

 

В udev все верно. Проверь вообще диск монтируется руками? Смотри суслог при вставлении устройства. Что то идет не так. mount поддерживает ntfs vfat?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 20.03.2021 в 12:07, ГМО сказал:

По умолчанию в rc.local интерпретатор не баш и работает он не в окружении твоего пользователя.

Поэтому вместо /home/user/autoexec.sh

Попробуй написать в rc.local

 

Спасибо! Я свою задачу таки решил, конечно-же помогали, но кое что и сам нарыл.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Delta213 сказал:

 

Спасибо! Я свою задачу таки решил, конечно-же помогали, но кое что и сам нарыл.

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

Монтируй /var и /home и /tmp не с карты. И своп тоже создавай не на ней. Все прописано в /etc/fstab

https://ru.wikipedia.org/wiki/Fstab

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Линукс явно лучше винды, но очень сложный, если не спец в этом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 23.03.2021 в 16:15, Анклав сказал:

Линукс явно лучше винды, но очень сложный, если не спец в этом.

Да чем лучше то? Удел линукса всякие контроллеры, да файлопомойки типа синолоджи.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 23.03.2021 в 16:15, Анклав сказал:

Линукс явно лучше винды, но очень сложный, если не спец в этом.

Линукс для гиков и спецов.

Но на нём почти весь серверный софт бесплатный.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, Мистер Хрюк сказал:

Линукс для гиков и спецов.

Линукс для определенных задач, как молоток для забивания гвоздей, а шуруповерт для саморезов. А гики и спецы есть и Виндовые и Маковые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ты не представляешь, как приятно это слышать от человека, которого я считаю одним из самых умных людей, с кем мне приходилось общаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, Мистер Хрюк сказал:

Нет, ты хороший специалист.

 

 

11 минут назад, Медоед сказал:

Ты не представляешь, как приятно это слышать от человека, которого я считаю одним из самых умных людей, с кем мне приходилось общаться.

now kiss

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите еще по такому вопросу, есть хост на распбиане, к нему нужно подключать сетевую папку по смб, причем сервер может быть выключен/недоступен при загрузке клиента. Как сделать так, чтобы шара автоматом монтировалась, когда сервер поднимется? Сейчас сделал через фстаб, монтируется когда при загрузке сервер на горизонте, но у меня клиент загружается раньше сервера. Пинговать сервер и когда запингуется монтировать и отключать пинговалку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 03.04.2021 в 18:09, Delta213 сказал:

Подскажите еще по такому вопросу, есть хост на распбиане, к нему нужно подключать сетевую папку по смб, причем сервер может быть выключен/недоступен при загрузке клиента. Как сделать так, чтобы шара автоматом монтировалась, когда сервер поднимется? Сейчас сделал через фстаб, монтируется когда при загрузке сервер на горизонте, но у меня клиент загружается раньше сервера. Пинговать сервер и когда запингуется монтировать и отключать пинговалку?

while ! ping -c1АйПиТвоегоСервера &>/dev/null; do echo "Ping Fail - `date`"; sleep 1;  done ; echo "Host Found - `date`" ; mount -a

ремаунт через фстаб.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты