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


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

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

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

  • Активист
  • *
  • Сообщений: 267
    • Просмотр профиля
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

  • Активист
  • *
  • Сообщений: 267
    • Просмотр профиля
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"

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #5 : 06 Октября 2016, 21:15:27 »
UniBomb, пропишите монтирование в fstab c параметрами 'noauto,users'.

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн UniBomb

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

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

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6691
  • 20% Cooler
    • Просмотр профиля
Re: скрипт бекапа по крону.
« Ответ #7 : 06 Октября 2016, 22:42:13 »
UniBomb, забыл:
в скрипте команда mount должна выглядеть так:
mount /home/git/gogs/dumps/yd
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн 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.052 секунд. Запросов: 23.