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


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

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

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

Оффлайн igogo56136

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

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

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13236
    • Просмотр профиля
имхо, проблема в окружении. cron не находит используемые утилиты. Либо добавьте окружение (PATH=blablabla), либо расписывайте полный путь
Принимаю благодарности в WMR,WMZ и WME на кошельки:
R117026374371, Z308262888445 и E397246163411

Оффлайн Azure

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

Оффлайн Haron Prime

  • INQUISITOR
  • Администратор
  • Старожил
  • *
  • Сообщений: 10638
  • Arch Linux & XMonad
    • Просмотр профиля
ИМХО: сеть не успевает запуститься… Попробуйте поставить задержку (или проверку) в скрипт
У меня тоже такое мнение, но я бы решал это иным способом - не скрипт с задержкой в cron, а юнит systemd с условием
After=network.target
У НАС ТУТ НЕ ДЕМОКРАТИЯ!
HP © 2017 WTFPL

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4987
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
юнит systemd с условием
Сеть может и подняться, а вот доступность ресурса это немного другое…
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн igogo56136

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

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

Оффлайн renzrv

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

Оффлайн igogo56136

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

Оффлайн Azure

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

Оффлайн Raf73

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

Оффлайн igogo56136

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

Пользователь добавил сообщение 18 Апрель 2017, 13: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, 13:36:47 от igogo56136 »

Оффлайн Azure

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

Оффлайн igogo56136

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

Оффлайн renzrv

  • Старожил
  • *
  • Сообщений: 1420
    • Просмотр профиля
@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

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

Код: INI
  1. 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
  2.  
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB / Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus / Ubuntu 14.04 Mate

 

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