Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: не срабатывает скрипт монтирования папки через sshfs через crontab  (Прочитано 2157 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн igogo56136

  • Автор темы
  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
Здравствуйте. Написал скрипт который монтирует удаленную папку с linux на linux.

(Нажмите, чтобы показать/скрыть)
чтобы скрыть этот скрипт от всех пользователей создал его от рута в папке /root/ запихнул задание через crontab -e
@reboot root /bin/sleep 20 ; sh /root/script.sh
В итоге у пользователя user папка не монтируется после ребута. Вручную запускаю - работает. Подскажите как это исправить?

ТС не появлялся на Форуме более полугода по состоянию на 14/07/2019 (последняя явка: 04/12/2017). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 14 Июля 2019, 04:46:22 от zg_nico »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
имхо, проблема в окружении. cron не находит используемые утилиты. Либо добавьте окружение (PATH=blablabla), либо расписывайте полный путь

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
ИМХО: сеть не успевает запуститься… Попробуйте поставить задержку (или проверку) в скрипт
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
ИМХО: сеть не успевает запуститься… Попробуйте поставить задержку (или проверку) в скрипт
У меня тоже такое мнение, но я бы решал это иным способом - не скрипт с задержкой в cron, а юнит systemd с условием
After=network.target

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
юнит systemd с условием
Сеть может и подняться, а вот доступность ресурса это немного другое…
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн igogo56136

  • Автор темы
  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
ИМХО: сеть не успевает запуститься… Попробуйте поставить задержку (или проверку) в скрипт
а /bin/sleep 20 дает задержку 20 сек же или нет? поставить большее число? А может sshfs работает только от пользователя который сделал монтирование? Например рут сделал монтирование а юзер не видит это? и подскажите как вывести лог срабатывания скрипта выполнился или нет или может ошибки какие? или все в суслог пишется?

Пользователь добавил сообщение 17 Апреля 2017, 16:53:54:
имхо, проблема в окружении. cron не находит используемые утилиты. Либо добавьте окружение (PATH=blablabla), либо расписывайте полный путь
я пробовал запускать скрипт через крон в таком виде :
/bin/bash /root/script.sh и так же не сработало
« Последнее редактирование: 17 Апреля 2017, 16:54:28 от igogo56136 »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
igogo56136,
Почитай про окружение bash и PATH. А в скрипт после шабанга нужно добавить:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Оффлайн igogo56136

  • Автор темы
  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
igogo56136,
Почитай про окружение bash и PATH. А в скрипт после шабанга нужно добавить:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Добавил Вашу строку после #!/bin/bash не сработало

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Вручную запускаю - работает.
Как (какой командой) запускаете?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Raf73

  • Активист
  • *
  • Сообщений: 740
    • Просмотр профиля
В чей крон добавлена команда? Если в крон пользователя, то папка /root для него недоступна и скрипт тоже не будет доступен. Попробуй из-под sudo добавить в крон.

Оффлайн igogo56136

  • Автор темы
  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
Вручную запускаю - работает.
Как (какой командой) запускаете?
Двойным кликом

Пользователь добавил сообщение 18 Апреля 2017, 12:27:37:
В чей крон добавлена команда? Если в крон пользователя, то папка /root для него недоступна и скрипт тоже не будет доступен. Попробуй из-под sudo добавить в крон.
я делаю вот как
sudo su
ввожу пароль рута
далее cd ~
в домашнем каталоге создаю файл touch scripts.sh
далее nano scripts.sh
пишу туда
#!/bin/bash
fusermount -u /home/user/papka
echo 'пароль к ssh' | sshfs user@IP:/home/user1/papka1/ /home/user/papka -o password_stdin
сохраняю, делаю исполняемым
Далее набираю crontab -e
там ввожу @reboot root /bin/sleep 20 ; sh /root/script.sh
создаю пустую строку ниже сохраняю Еsc :wq
делаю ребут, захожу под пользователем user захожу в /home/user/papka и там папка пуста
Точно такой же скрипт делаю из под user в /home/user/scripts.sh делаю исполняемым  тыкаю два раза все работает.
« Последнее редактирование: 18 Апреля 2017, 12:36:47 от igogo56136 »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
делаю из под user
т.е под user срабатывает, а из-под root нет. Дальше продолжать?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн igogo56136

  • Автор темы
  • Участник
  • *
  • Сообщений: 136
    • Просмотр профиля
делаю из под user
т.е под user срабатывает, а из-под root нет. Дальше продолжать?
под user срабатывает двойным кликом, под user не срабатывает через crontab -e . под рутом я могу зайти только командой sudo su. Под рутом выполняю ./script.sh тоже не пашет. Я в линуксе новичок знал бы как я бы сделал. Мне надо тупо спрятать скрипт от юзера чтобы он не смог его прочитать(там пароль от сервера прописан) но чтобы в тоже время скрипт выполнился при старте компьютера и user мог работать с примонтированной папкой. Подскажите как это сделать? может есть другие способы раз этот способ не работает?
« Последнее редактирование: 18 Апреля 2017, 14:08:14 от igogo56136 »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
@reboot root /bin/sleep 20 ; sh /root/script.sh
Не надо сочинять бред, запись в рутовом кроне (sudo crontab -e) должна быть такой:
@reboot /root/script.shзадержку
sleep 20можешь добавть в скрипт после
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ Установить скрипту бит Х (executive)
sudo chmod +x /root/script.sh

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Простой вопрос: монтирование через fstab отменили? Для чего такие костыли?

Код: (ini) [Выделить]
USER@HOSTNAME:/REMOTE/ /LOCAL/ fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/root/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

 

Страница сгенерирована за 0.047 секунд. Запросов: 23.