Bash-скрипт не копирует файлы с помощью udev

Вы должны добавить порт или службу в доверенную зону и перезагрузить конфигурацию брандмауэра.

Вот пример:

Чтобы временно разрешить порт 443/tcp во внутренней зоне, введите:

systemctl start firewalld
systemctl enable firewalld
firewall-cmd --zone=trusted --add-port=443/tcp
firewall-cmd --reload

Проверьте это:

firewall-cmd --get-active-zones

Разрешение порта на постоянной основе с:

firewall-cmd --permanent --zone=trusted --add-port=443/tcp

Также следующая команда должна вернуть :

firewall-cmd --get-zone-of-interface=docker0
trusted 
2
02.11.2016, 04:58
1 ответ

Учитывая, что папка Backup создана, вы знаете, что сценарий успешно выполняется, когда вы подключаете устройство. Я подозреваю, что сценарий выполняется до того, как устройство действительно завершит монтирование. Таким образом, файлы для cp пока недоступны.

Что произойдет, если вы добавите sleep 5 после mkdir $ a ? Или что, если вы вместо этого попытаетесь скопировать существующие файлы?

Эта ссылка также очень полезна в качестве справочного материала.

Я также использую:

udevadm monitor --udev

Для просмотра событий udev в реальном времени.

udevadm test /path/to/dev

Чтобы смоделировать запуск события udev для устройства. Обратите внимание, что при этом не выполняется какая-либо программа, указанная клавишей RUN.

РЕДАКТИРОВАТЬ: Как любезно отмечает Жиль, моя идея не сработает. И я не знаю решения. Вот почему:

Udev сделает USB-устройство доступным для ОС. Затем ОС поймет, что ОС содержит монтируемую файловую систему, и смонтирует ее. В этот момент файлы на USB-устройстве действительно доступны.

Любой сценарий, запущенный правилом udev, выполнит до фактического монтирования файловой системы. Если я подумаю об альтернативе, я обновлю пост.

0
27.01.2020, 22:44

Теги

Похожие вопросы