一、优先使用mount 方式进行挂盘,记得使用sync参数,如果对方网络限制了445端口,我们被迫采用第二种办法。
mount -t cifs -o sync,username='Administrator',password='dsideal' //10.10.14.240/down /usr/local/tomcat7/webapps/dsideal_yy/html/down
(1)一定要检查 /etc/rc.d/rc.local 中开机启动是不是按上面进行的配置!!!
(2)一定要检查 /etc/crontab 中是不是有定时任务,检查 checkdisk.sh ,要是有,一定要保证 checkdisk.sh的内容是和挂载方式一致的,不能启动的是A方式,检查的是B方式。
(3) 还要注意检查 service crontab restart
二、在Windows中创建sftp服务器,为Linux主机配置共享磁盘
1、下载地址: https://www.minixiazai.com/soft/28343.html
Bitvise SSH Server 7.15 windows
下载一个flashfxp用来检查 serv-u是不是安装正确!
https://www.cr173.com/soft/15632.html
2、
yum -y install epel-release # 安装epel 源码
yum -y install fuse-sshfs # 安装sshfs
#映射磁盘 #测试时创建一下目录 mkdir /usr/local/tomcat7/webapps/dsideal_yy/html/down -p umount -l /usr/local/tomcat7/webapps/dsideal_yy/html/down
# 看不到也要解挂一次!
umount -l /usr/local/tomcat7/webapps/dsideal_yy/html/down
echo ''>>/root/.ssh/known_hosts
sshfs -C -o nonempty,allow_other,sshfs_sync,reconnect,cache=yes root@10.10.14.240:/ /usr/local/tomcat7/webapps/dsideal_yy/html/down
输入yes,再以后挂盘,用下面的语句就可以了!
echo "dsideal"|sshfs -C -o nonempty,allow_other,sshfs_sync,reconnect,cache=yes,password_stdin root@10.10.14.240:/ /usr/local/tomcat7/webapps/dsideal_yy/html/down =============================================================================================================================== 常见错误1: [root@huanghai ~]# df -h fuse: bad mount point `/usr/local/tomcat7/webapps/dsideal_yy/html/down': Transport endpoint is not connected 这样解决: # umount -l /usr/local/tomcat7/webapps/dsideal_yy/html/down ============================================================================================================================== 常见错误2: read: Connection reset by peer 这种情况我们可以通过 ssh -v root@192.168.1.210 来检查原因。 一般可能的原因是/root/.ssh/known_hosts 这个文件中存在以了前的ssh key ,vi编辑后,删除内容应该就行了。 ==============================================================================================================================
3、加入到系统自动启动中,注意echo的shell转义
echo ''>>/root/.ssh/known_hosts
echo "echo "dsideal"|sshfs -C -o nonempty,allow_other,sshfs_sync,reconnect,cache=yes,password_stdin root@192.168.1.210:/ /usr/local/tomcat7/dsideal_yy/html/down" >> /etc/rc.d/rc.local
4、可靠性测试
重启Tomcat后,注意执行以下指令,防止磁盘丢失! umount -l /usr/local/tomcat7/webapps/dsideal_yy/html/down
echo ''>>/root/.ssh/known_hosts
echo "dsideal"|sshfs -C -o nonempty,allow_other,sshfs_sync,reconnect,cache=yes,password_stdin root@10.10.14.240:/ /usr/local/tomcat7/webapps/dsideal_yy/html/down
df -h
附 /usr/local/tomcat7/bin/restart.sh #如果需要重新启动tomcat,那个需要 ./restart.sh,不要使用 ./shutdown.sh,防止出现tomcat僵死。
/usr/local/tomcat7/bin/shutdown.sh sleep 5 #具体时间就看你得webapp在调用shutdown.sh后多久后处于僵死状态 ps -ef | grep 'tomcat' | grep -v grep| awk '{print $2}' | xargs kill -9 sleep 2 /usr/local/tomcat7/bin/startup.sh
当然,也可以开发一个检查的脚本
vi /usr/local/checkdisk.sh #!/bin/bash /bin/df -h > /tmp/df.txt if cat /tmp/df.txt | grep /usr/local/tomcat7/webapps/dsideal_yy/ >/dev/null then echo "磁盘挂载正常!" else echo "磁盘挂载异常,正在重新挂载!"umount -l /usr/local/tomcat7/webapps/dsideal_yy/html/down
echo ''>>/root/.ssh/known_hosts
echo "dsideal"|sshfs -C -o nonempty,allow_other,sshfs_sync,reconnect,cache=yes,password_stdin root@10.10.14.240:/ /usr/local/tomcat7/webapps/dsideal_yy/html/down echo "恭喜,挂载已成功完成!" fi
chmod +x /usr/local/checkdisk.sh
添加到定时任务中进行检查
echo "0/2 * * * * root /usr/local/checkdisk.sh > /dev/null 2>&1">>/etc/crontab
service crond restart
每2分钟执行一次检查磁盘动作也是可以的。
反复重启Linux,磁盘挂载正常。
停止SFTP服务器,再次打开SFTP服务器,磁盘挂载正常。