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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: скрипт бекапа по крону.  (Прочитано 390 раз)

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

Оффлайн UniBomb

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
скрипт бекапа по крону.
« : 06 Октябрь 2016, 15:18:22 »
Здравствуйте. Прошу помощи.

Диспозиция такая: а сервере (ubuntu 16.04 x64) поставил gogs (по всем руководствам советуют работать из-под пользователя git), написал скрипт, что бы всё бекапилось на яндекс-диск:

(Нажмите, чтобы показать/скрыть)

Если скрипт выполнять вручную, то он даже работает. Не могу заставить его работать по крону.

Пишу так:

*/5 * * * * sh -c "/home/git/gogs/dumps/backup.sh >/tmp/all 2>&1"
Понятное дело не работает. В таком виде не работает монтирование:

mount: использовать опцию "--types" может только root
Добавляю sudo -u git перед mount и umount, в кронтабе прописываю так (этот костыль я где-то тут на форуме откопал):

*/5 * * * * echo "MyPassword" | sh -c "/home/git/gogs/dumps/backup.sh >/tmp/all 2>&1"
Тоже ничего не дало.

В общем, как бы мне сделать задуманное?

Спасибо за внимание

Оффлайн kalek

  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #1 : 06 Октябрь 2016, 16:16:21 »
Почему бы не запустить по крону этот скрипт от root'а, а те операции, которые лучше делать от имени обычного пользователя в самом скрипте прописать через sudo или su?

Оффлайн UniBomb

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #2 : 06 Октябрь 2016, 17:08:10 »
kalek, так я тоже пробовал. Ну, по крайней мере я так думаю, что именно так пробовал. В скрипте важно, что бы от имени пользователя была выполнен одна команда:

sudo -u git /home/git/gogs/gogs dump
Поэтому ничего не меняя добавляю по sudo crontab -e это же задание и получаю:

panic: error getting work directory: stat .: permission denied

Оффлайн kalek

  • Активист
  • *
  • Сообщений: 268
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #3 : 06 Октябрь 2016, 17:35:37 »
Я вовсе не имел в виду sudo crontab -e.
Я говорил про другое: прописываем этот скрипт в системный крон, то есть в /etc/crontab, там кроме обычных 6 полей есть еще поле user - пользователь, от имени которого будет выполняться задание, пишем  там root и радуемся жизни.

Оффлайн UniBomb

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #4 : 06 Октябрь 2016, 19:13:54 »
kalek, не помогло

panic: error getting work directory: stat .: permission denied
(Нажмите, чтобы показать/скрыть)

прописывал так:

*/5 * * * * root sh -c "/home/git/gogs/dumps/backup.sh >/tmp/all 2>&1"

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2200
  • X-9000SC
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #5 : 06 Октябрь 2016, 21:15:27 »
UniBomb, пропишите монтирование в fstab c параметрами 'noauto,users'.

Благодарности на Yandex 41001488642430. Cпасибо.

Оффлайн UniBomb

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #6 : 06 Октябрь 2016, 21:40:51 »
ALiEN175, прописал так:

webdav.yandex.ru /home/git/gogs/dumps/yd davfs user,rw,noauto 0 0
Но что делать дальше? Всё остальное без изменений.

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2200
  • X-9000SC
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #7 : 06 Октябрь 2016, 22:42:13 »
UniBomb, забыл:
в скрипте команда mount должна выглядеть так:
mount /home/git/gogs/dumps/yd
Благодарности на Yandex 41001488642430. Cпасибо.

Оффлайн UniBomb

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #8 : 15 Октябрь 2016, 16:47:54 »
Прошу прощения за долгое отсутствие.

Сделал всё как говоритALiEN175, но теперь:

...
/sbin/mount.davfs: user git must be member of group davfs2
...
git@G$ sudo adduser git davfs2
Пользователь «git» уже является членом группы «davfs2».

Мне теперь надо перезагрузиться?  :)

Оффлайн UniBomb

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #9 : 19 Октябрь 2016, 13:24:12 »
И снова здравствуйте. Таки да, мне действительно надо было "перезагрузиться", т.е. обновить сессию. Теперь всё работает. Товарищи ALiEN175 и kalek, большое вам спасибо за помощь  :)

 

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