由于大硬盘存储系统是windows系统,需要将本地的备份拷贝到该存储上。可以在存储服务器上安装ftp、http等等来上传,这也是一种解决办法。存储服务器已经将硬盘共享出去了,就不想在服务器上安装配置ftp等等,同时,我对windows服务器不熟。
那么该如何在Linux系统下,挂载windows共享呢?
首先来看看CIFS协议,http://zh.wikipedia.org/wiki/CIFS
服务器信息区块(Server Message Block,缩写为SMB,服务器消息区块,又称Common Internet File System(CIFS)),又称网络文件共享系统(英语:Common Internet File System,缩写为CIFS)[来源请求],一种应用层网络传输协议,由微软开发,主要用来使得一个网络上的机器共享计算机文件、打印机、串行端口和通讯等资源。它也提供认证的进程间通信机能。它主要用在装有Microsoft Windows的机器上,在这样的机器上被称为Microsoft Windows Network。
经过Unix服务器厂商重新开发后,它可以用于连接Unix服务器和Windows客户机,执行打印和文件共享等任务。
CIFS的消息格式不同与NFS的固定长度格式,大多数消息体都包含可变长的数据,这带来一定的协议复杂性。CIFS消息一般在netbios或Tcp协议层上,分别使用不同的端口139或445,目前倾向于使用445端口。CIFS的消息包括一个消息头(32字节)和消息体(1个或多个,可变长)。
实现方式就是遵循上面的理论。
关于windows下的共享设置就不在这里啰嗦累赘了。
挂载方式如下:
# mount -t cifs -o username=ttlsa,password='www.ttlsa.com',nodev,noexec,nosuid //10.0.0.8/database_backup/mysql /remotebackup
# mount | grep cifs
//10.0.0.8/database_backup/mysql on /remotebackup type cifs (rw,noexec,nosuid,nodev,username=ttlsa,password=www.ttlsa.com)
1
2
3
# mount -t cifs -o username=ttlsa,password='www.ttlsa.com',nodev,noexec,nosuid //10.0.0.8/database_backup/mysql /remotebackup
# mount | grep cifs
//10.0.0.8/database_backup/mysql on /remotebackup type cifs (rw,noexec,nosuid,nodev,username=ttlsa,password=www.ttlsa.com)
说明:
1. -t 指定类型。 cifs是MS的一种通用的协议,Windows下的网上邻居访问其它计算机就是使用cifs协议的。
2. username=ttlsa, password='www.ttlsa.com' Windows共享的用户名和密码,在Windows下创建的用户,并将赋予该用户database_backup/mysql读写权限。
3. noexec 不允许直接执行挂载的文件系统上的任何二进制文件。可以防止远程用户从你的系统上执行不必要的二进制文件。
4. nodev 在该文件系统上不解释字符或特殊设备。
5. nosuid 禁止设置set-user-identifier或 set-group-identifier标识符位。可以防止远程用户通过运行一个setuid程序获得更高的权限。
noexec、nodev、nosuid主要是用来增强安全性的。