DeepinV20自动挂载webdav脚本有时间再换成一键的
Tofloor
poster avatar
一一网络
deepin
2020-11-20 00:18
Author

DeepinV20自动挂载webdav脚本,有时间再换成一键的脚本吧

by 一一网络 admin@proyy.com

原文:

https://www.proyy.com/9517.html

deepin v20 开机联网自动挂载webdav,不会开机卡死。


1、安装webdav支持

sudo apt-get install davfs2 -y


2、配置webdav免密码登录

sudo echo "use_locks 0"  >>/etc/davfs2/davfs2.conf

sudo echo "webdav的地址 用户名 密码" >>/etc/davfs2/secrets

sudo chmod 0600 /etc/davfs2/secrets


3、配置webdav 开机自启动

3.1 webdav 自启项

touch  ~/.config/autostart/mount_auto_boot.desktop

dedit ~/.config/autostart/mount_auto_boot.desktop

内容如下:

[Desktop Entry]
Type=Application
Exec="/opt/mount_auto_boot/mount_auto_boot.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_IN]=mount-auto
Name=mount-auto
Comment[en_IN]=mount-auto
Comment=mount-auto


3.2 webdav 自启脚本 这里需要修改实际webdav的地址跟实际挂载目录

sudo mkdir /opt/mount_auto_boot/

sudo touch /opt/mount_auto_boot/mount_auto_boot.sh

dedit /opt/mount_auto_boot/mount_auto_boot.sh

内容如下:

#!/bin/bash
#moount webdav
#随便设置两个可以ping通的ip或者地址,联网检测,IP2为webdav地址
IP1="180.76.76.76"
IP2="www.proyy.com"
mount_count=1

#设置webdav的地址:
webdav='https://www.proyy.com'

#webdav='https://www.proyy.com:5006'


#设置webdav挂载目的地址:
mnt_webdav='/mnt/webdav'
mkdir $mnt_webdav >/dev/null 2>&1

while true
do
df -Th|grep $webdav
if [ "$?" != "0" ]
then
echo "mount webdav..........fail" >>/opt/mount_auto_boot/mount_auto_boot.log
sleep 1
ping -s 1 -c 1 $IP1 #去PING第1个IP
if [ "$?" = "0" ]
then
echo "ping $IP1 Success" >>/opt/mount_auto_boot/mount_auto_boot.log
ping -s 1 -c 2 $IP2 #去PING第2个IP
if [ "$?" != "0" ]
then
echo "ping $IP2 ERROR" >>/opt/mount_auto_boot/mount_auto_boot.log
else
echo "ping $IP2 SUCCESS,mount webdav.........." >>/opt/mount_auto_boot/mount_auto_boot.log
sudo /usr/bin/mount -t davfs $webdav /mnt/webdav >>/opt/mount_auto_boot/mount_auto_boot.log 2>&1
sleep 3
df -Th|grep $webdav
if [ "$?" != "0" ]
then
echo "mount webdav..........fail" >>/opt/mount_auto_boot/mount_auto_boot.log
continue
else
echo "mount_count:$mount_count"
echo "mount webdav..........done" >>/opt/mount_auto_boot/mount_auto_boot.log
df -Th|grep $webdav >>/opt/mount_auto_boot/mount_auto_boot.log
echo "mount_count:$mount_count" >>/opt/mount_auto_boot/mount_auto_boot.log
break
fi
fi
else
echo "ping IP1 ERROR"
mount_count=$[$mount_count+1]
sleep 5 #设置多长时间去PING一次
continue
fi
else
echo "mount_count:$mount_count"
echo "mount webdav..........done" >>/opt/mount_auto_boot/mount_auto_boot.log
df -Th|grep $webdav >>/opt/mount_auto_boot/mount_auto_boot.log
echo "mount_count:$mount_count" >>/opt/mount_auto_boot/mount_auto_boot.log
break
fi
done

exit 0

保存一下,重启电脑登录,连接网络,就自动挂载好了。

小白脚本,大神无喷哈,嘿嘿。



Reply Favorite View the author
All Replies
liwl
deepin
2020-11-20 01:03
#1

deepin文管访问webdev挂载的目录,是不是比较慢?

我试过坚果云,挺慢的

Reply View the author
一一网络
deepin
2020-11-27 06:17
#2

慢得吐血

Reply View the author
shmj
deepin
2021-02-07 04:03
#3

可以非root用户可以运行起来吗?

Reply View the author
shmj
deepin
2021-02-07 06:38
#4

请教个问题,根据文章操作,并不能开机启动,因为Deepin使用的是非root用户,而mount需要sudo后输入密码才可使用,这个问题有什么解决方法吗

Reply View the author
ender049
deepin
2021-12-08 07:15
#5
shmj

请教个问题,根据文章操作,并不能开机启动,因为Deepin使用的是非root用户,而mount需要sudo后输入密码才可使用,这个问题有什么解决方法吗

文章有几个问题

好久没弄linux,搞了我半小时。

1。 别忘了给脚本添加执行权限…………这玩意儿

/opt/mount_auto_boot/mount_auto_boot.sh

2。脚本中这行没有使用变量……

sudo /usr/bin/mount -t davfs $webdav /mnt/webdav >>/opt/mount_auto_boot/mount_auto_boot.log 2>&1

搞得我重启几次。

sudo /usr/bin/mount -t davfs $webdav $mnt_webdav >>/opt/mount_auto_boot/mount_auto_boot.log 2>&1

3。desktop桌面文件的启动有问题的话

可以自己建一个rc.local文件在/etc下,一样记得执行权限设置。

deepin自启动官方wiki

Reply View the author