Вы должны добавить порт или службу в доверенную
зону и перезагрузить конфигурацию брандмауэра.
Вот пример:
Чтобы временно разрешить порт 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
Учитывая, что папка Backup создана, вы знаете, что сценарий успешно выполняется, когда вы подключаете устройство. Я подозреваю, что сценарий выполняется до того, как устройство действительно завершит монтирование. Таким образом, файлы для cp
пока недоступны.
Что произойдет, если вы добавите sleep 5
после mkdir $ a
? Или что, если вы вместо этого попытаетесь скопировать существующие файлы?
Эта ссылка также очень полезна в качестве справочного материала.
Я также использую:
udevadm monitor --udev
Для просмотра событий udev в реальном времени.
udevadm test /path/to/dev
Чтобы смоделировать запуск события udev для устройства. Обратите внимание, что при этом не выполняется какая-либо программа, указанная клавишей RUN.
РЕДАКТИРОВАТЬ: Как любезно отмечает Жиль, моя идея не сработает. И я не знаю решения. Вот почему:
Udev сделает USB-устройство доступным для ОС. Затем ОС поймет, что ОС содержит монтируемую файловую систему, и смонтирует ее. В этот момент файлы на USB-устройстве действительно доступны.
Любой сценарий, запущенный правилом udev, выполнит до фактического монтирования файловой системы. Если я подумаю об альтернативе, я обновлю пост.