Здравствуйте. Прошу помощи.
Диспозиция такая: а сервере (ubuntu 16.04 x64) поставил gogs (по всем руководствам советуют работать из-под пользователя git), написал скрипт, что бы всё бекапилось на яндекс-диск:
#!/bin/bash
T=$(date +%Y-%V)
TDIR="/home/git/gogs/dumps/yd"
#удаляем (если есть) предыдущие файлы дампов
for F in *.zip
do
if test -f $F; then
rm $F
fi
done
sudo -u git /home/git/gogs/gogs dump
if [ ! -d $TDIR ]; then
mkdir $TDIR
fi
mount -t davfs https://webdav.yandex.ru $TDIR
for F in *.zip
do
if test -f $F; then
rsync --progress $F "$TDIR/weekly/$T.zip"
fi
done
umount $TDIR
if [ -d $TDIR ]; then
rm -r -f $TDIR
fi
for F in *.zip
do
if test -f $F; then
rm $F
fi
done
Если скрипт выполнять вручную, то он даже работает. Не могу заставить его работать по крону.
Пишу так:
*/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"
Тоже ничего не дало.
В общем, как бы мне сделать задуманное?
Спасибо за внимание