Скрипт быстрого монтирования и размонтирования облачных хранилищ webdav

1 - примонтировать
2 - размонтировать
Просто запустить на центосе в папке в которую хотите подмонтировать яндекс диск.
Скрипт автоматически проверит и установит пакет davfs2 и зависимость neon.
Также если раскомментировать переменную SECRET и указать LOGIN PASSWORD действующей учетки яндекс, то запроса логина пароля не будет

Настройка /etc/davfs2/davfs2.conf
use_locks 0                  # Отключить обязательно 
delay_upload 0               # Уменьшит задержку перед загрузкой файла
Version 6
переделана система монтирования для разных сервисов, пока добавлен один - Cubby

#!/bin/sh
#Version 6
WEBDISK_DIR=webdisk
SECRET="LOGIN PASSWORD"

HOME_DIR=$(cd $(dirname $0)&& pwd)
while :
do
echo -n "[1] - mount, [2] - Umount, [3] - Remove Davfs2, [0] - Exit :"
read NUM
case "$NUM" in
1)
while [ "$MOUNT_POINT" = "" ]
do
echo -n "[1] - Yandex, [2] - Cubby :"
read WEBDISK
case "$WEBDISK" in
1)
MOUNT_POINT=https://webdav.yandex.ru
;;
2)
MOUNT_POINT=https://webdav.cubby.com
;;
esac
done
if !([ -d "$WEBDISK_DIR" ])then
{
mkdir $WEBDISK_DIR
}
fi
if [ "$(rpm -qa |grep neon)" = "" ] ; then
{
yum -y install neon
}
else
{
echo "Neon already installed"
}
fi
if [ "$(rpm -qa |grep davfs2)" = "" ] ; then
{
DAVFS="davfs2-1.4.6-1.el6.rf.x86_64.rpm"
wget http://pkgs.repoforge.org/davfs2/$DAVFS
rpm -i $DAVFS
rm $DAVFS
}
else
{
echo "Davfs2 already installed"
}
fi
if [ "$SECRET" != "" ] ; then
{
if  ! grep -q "$MOUNT_POINT $SECRET" /etc/davfs2/secrets ; then
echo "$MOUNT_POINT $SECRET" >>/etc/davfs2/secrets
fi
}
fi
mount -t davfs $MOUNT_POINT $HOME_DIR/$WEBDISK_DIR
df -h $HOME_DIR/$WEBDISK_DIR
if ( mount -v | grep -q $WEBDISK_DIR ) then
{
echo "mount ok"
}
else
{
echo "mount error"
}
fi
exit
;;
2)
umount -l $HOME_DIR/$WEBDISK_DIR
df -h $HOME_DIR/$WEBDISK_DIR
if ! ( mount -v | grep -q $WEBDISK_DIR ) then
{
echo "Umount ok"
}
else
{
echo "Umount error"
}
fi
exit
;;
3)
echo -n "Remove Davfs2 and Neon packages? (y/n) :"
read REMOVE
if [ "$REMOVE" = "y" -o "$REMOVE" = "Y" ] ; then
{
umount -l $HOME_DIR/$WEBDISK_DIR
yum -y remove davfs2
yum -y remove neon
rmdir $WEBDISK_DIR
exit
}
fi
;;
0)
exit
;;
esac
done
#ENDSCRIPT

Ошибка
Could not authenticate to server: rejected Basic challenge


проверить логин пароль для хранилища  ########################################################################
Version 5
Мелкие правки, вид меню, удаление rpm файла после установки, выход из скрипта после удаления пакетов
#!/bin/sh
#Version 5
YANDEX_DIR=yandex
#SECRET="https://webdav.yandex.ru LOGIN PASSWORD"

HOME_DIR=$(cd $(dirname $0)&& pwd)
while :
do
echo -n "[1] - mount, [2] - Umount, [3] - Remove Davfs2, [0] - Exit :"
read NUM
case "$NUM" in
1)
if !([ -d "$YANDEX_DIR" ])then
{
mkdir $YANDEX_DIR
}
fi
if [ "$(rpm -qa |grep neon)" = "" ] ; then
{
yum -y install neon
}
else
{
echo "Neon already installed"
}
fi
if [ "$(rpm -qa |grep davfs2)" = "" ] ; then
{
DAVFS="davfs2-1.4.6-1.el6.rf.x86_64.rpm"
wget http://pkgs.repoforge.org/davfs2/$DAVFS
rpm -i $DAVFS
rm $DAVFS
}
else
{
echo "Davfs2 already installed"
}
fi
if [ "$SECRET" != "" ] ; then
{
if  ! grep -q "$SECRET" /etc/davfs2/secrets ; then
echo "$SECRET" >>/etc/davfs2/secrets
fi
}
fi
mount -t davfs https://webdav.yandex.ru $HOME_DIR/$YANDEX_DIR
df -h $HOME_DIR/$YANDEX_DIR
if ( mount -v | grep -q $YANDEX_DIR ) then
{
echo "mount ok"
}
else
{
echo "mount error"
}
fi
exit
;;
2)
umount -l $HOME_DIR/$YANDEX_DIR
df -h $HOME_DIR/$YANDEX_DIR
if ! ( mount -v | grep -q $YANDEX_DIR ) then
{
echo "Umount ok"
}
else
{
echo "Umount error"
}
fi
exit
;;
3)
echo -n "Remove Davfs2 and Neon packages? (y/n) :"
read REMOVE
if [ "$REMOVE" = "y" -o "$REMOVE" = "Y" ] ; then
{
umount -l $HOME_DIR/$YANDEX_DIR
yum -y remove davfs2
yum -y remove neon
rmdir $YANDEX_DIR
exit
}
fi
;;
0)
exit
;;
esac
done
#ENDSCRIPT

####################################################################
Version 4
Проверка на установленные пакеты перемещена в меню монтирования
Добавлены сообщения, о том стоят ли уже пакеты
Добавлена возможность подчистки после работы, - размонтирования, удаления пакетов, и каталога яндекс диска

#!/bin/sh
#Version 4
YANDEX_DIR=yandex
#SECRET="https://webdav.yandex.ru LOGIN PASSWORD"
HOME_DIR=$(cd $(dirname $0)&& pwd)

while :
do
echo -n "1 - mount, 2 - Umount, 3 - Remove Davfs2,  0 - Exit :"
read NUM
case "$NUM" in
1)
if !([ -d "$YANDEX_DIR" ])then
{
mkdir $YANDEX_DIR
}
fi
if [ "$(rpm -qa |grep neon)" = "" ] ; then
{
yum -y install neon
}
else
{
echo "Neon already installed"
}
fi
if [ "$(rpm -qa |grep davfs2)" = "" ] ; then
{
wget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.x86_64.rpm
rpm -i davfs2-1.4.6-1.el6.rf.x86_64.rpm
}
else
{
echo "Davfs2 already installed"
}
fi
if [ "$SECRET" != "" ] ; then
{
if  ! grep -q "$SECRET" /etc/davfs2/secrets ; then
echo "$SECRET" >>/etc/davfs2/secrets
fi
}
fi
mount -t davfs https://webdav.yandex.ru $HOME_DIR/$YANDEX_DIR
df -h $HOME_DIR/$YANDEX_DIR
if ( mount -v | grep -q $YANDEX_DIR ) then
{
echo "mount ok"
}
else
{
echo "mount error"
}
fi
exit
;;
2)
umount -l $HOME_DIR/$YANDEX_DIR
df -h $HOME_DIR/$YANDEX_DIR
if ! ( mount -v | grep -q $YANDEX_DIR ) then
{
echo "Umount ok"
}
else
{
echo "Umount error"
}
fi
exit
;;
3)
echo -n "Remove Davfs2 and Neon packages? (y/n) :"
read REMOVE
if [ "$REMOVE" = "y" -o "$REMOVE" = "Y" ] ; then
{
umount -l $HOME_DIR/$YANDEX_DIR
yum -y remove davfs2
yum -y remove neon
rmdir $YANDEX_DIR
}
fi
;;
0)
exit
;;
esac
done
#ENDSCRIPT

###################################################################
#!/bin/sh
#Version 3
YANDEX_DIR=yandex
#SECRET="https://webdav.yandex.ru LOGIN PASSWORD
HOME_DIR=$(cd $(dirname $0)&& pwd)

if [ "$(rpm -qa |grep neon)" = "" ] ; then
{
yum -y install neon
}
fi
if [ "$(rpm -qa |grep davfs2)" = "" ] ; then
{
wget http://pkgs.repoforge.org/davfs2/davfs2-1.4.6-1.el6.rf.x86_64.rpm
rpm -i davfs2-1.4.6-1.el6.rf.x86_64.rpm
}
fi

if [ "$SECRET" != "" ] ; then
{
if  ! grep -q "$SECRET" /etc/davfs2/secrets ; then
echo "$SECRET" >>/etc/davfs2/secrets
fi
}
fi

while :
do
echo -n "1 - mount, 2 - Umount  0 - Exit :"
read NUM
case "$NUM" in
1)
if !([ -d "$YANDEX_DIR" ])then
{
mkdir $YANDEX_DIR
}
fi
mount -t davfs https://webdav.yandex.ru $HOME_DIR/$YANDEX_DIR
df -h $HOME_DIR/$YANDEX_DIR
if ( mount -v | grep -q $YANDEX_DIR ) then
{
echo "mount ok"
}
else
{
echo "mount error"
}
fi
exit
;;
2)
umount -l $HOME_DIR/$YANDEX_DIR
df -h $HOME_DIR/$YANDEX_DIR
if ! ( mount -v | grep -q $YANDEX_DIR ) then
{
echo "Umount ok"
}
else
{
echo "Umount error"
}
fi

exit
;;
0)
exit
;;
esac

done


#############################################################################
Старая версия  

#!/bin/sh
YANDEX_DIR=yandex
HOME_DIR=$(cd $(dirname $0)&& pwd)
while :
do
echo -n "1 - mount, 2 - Umount  0 - Exit :"
read NUM
case "$NUM" in
1)
if !([ -d "$YANDEX_DIR" ])then
{
mkdir $YANDEX_DIR
}
fi
mount -t davfs https://webdav.yandex.ru $HOME_DIR/$YANDEX_DIR
df -h $HOME_DIR/$YANDEX_DIR
if ( mount -v | grep -q $YANDEX_DIR ) then
{
echo "mount ok"
}
else
{
echo "mount error"
}
fi
exit
;;
2)
umount -l $HOME_DIR/$YANDEX_DIR
df -h $HOME_DIR/$YANDEX_DIR
if ! ( mount -v | grep -q $YANDEX_DIR ) then
{
echo "Umount ok"
}
else
{
echo "Umount error"
}
fi

exit
;;
0)
exit
;;
esac
done

Комментарии

Популярные сообщения из этого блога

mikbill расшифровка завершений сессий

Accel-ppp команды

Zabbix agent установка и настройка