Задать вопрос

Выполнение скриптов после полной загрузки Linux?

Задача автоматически монтировать при старте системы, ftp папку
Имеется скрипт который монтирует ftp папку
#!/bin/bash
#HOST=
#FOLDER=
curlftpfs $HOST/$FOLDER /mnt/ftp -o allow_other,codepage=windows-1251[,iocharset=utf8] 2>>/adminfolder/log/error.log
exit 0

Скрипт добавлен в crontab
@reboot root /adminfolder/scripts/ftp_conn.sh #Выполнять после рестарта
Вопрос: Каким образом можно заставить выполняться скрип только после полной загрузки сети? Или может существует другой вариант монтирования ftp после рестарта системы. (Есть вариант с добавлением строчки в /etc/fstab)

При таких параметрах в crontab, в логе ошибки связанные с сетью:
Error connecting to ftp: Could not resolve host: @hostname@; Unknown error
Error connecting to ftp: Failed to connect to @ip@: Network is unreachable

Система CentOS 7.3

P.S.
Есть вариант с добавлением строчки в /etc/fstab
curlftpfs#ftp://ftp.host.ru/folder/ /mnt/ftp fuse rw,nosuid,nodev,allow_other,codepage=windows-1251[,iocharset=utf8] 0 0

Этот вариант не устраивает да и не заработал он хотя команда mount -a выполняется нормально, но после рестарта система ругается на fstab

Спасибо заранее за совет!
  • Вопрос задан
  • 1354 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@pfg21
ex-турист
Написать скрипт системд, в котором прописать необходимые требования в After ??
Ответ написан
Комментировать
icCE
@icCE
youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
ну вообще строка для fstab примерно такая

curlftpfs#ftp://{пользователь}:{пароль}@{адрес сервера}/{папка}/ {путь к точке монтирования} fuse rw,allow_other,noauto,user 0 0

соответственно должен быть fuse
modprobe fuse

Это самый правильный способ монтирование после загрузки.
Иначе писать скрипт и добавлять его в init часть как сервис.
Ответ написан
siderson
@siderson Автор вопроса
Love Linux
Отвечу сам на свой вопрос!
Все предложенные варианты выше не походят для более менее павильной реализации задачи.

Пришлось еще раз прочитать про systemd, после этого был создан юнит и написан скрипт коннекта и монтирования ftp.
В юните были указнны параметры
В секции [Unit] указываем что скрипт должен запускаться только после старта сети After=network.target
В секции [Service] указываем тип oneshot и добавляем путь к нашему скрипту ExecStart=/usr/bin/sh /adminfolder/scripts/conn_ftp1.sh), так же я указал параметр что бы systemd не считал что сервис не работает RemainAfterExit=yes
И в секции [Install] указываем multi-user.target

После этого добавляем в авто запуск и стартуем, проверяем что наш юнит работает и запустился без ошибок systemctl status nameservice.service
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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