数据共享或数据传输往往采用client/server 机制, 而server 又常常采用服务的形式。
众多的 client/server server服务的形式就出现了。
1. 服务的管理;
linux 启停服务脚本均在/etc/init.d/ 目录下。直接执行
/ect/init.d/network start
/ect/init.d/network stop
/ect/init.d/network restart
linux 下有service 程序, 方便服务调度。例如
service network start
service network stop
service network restart
2. 服务的安装,配置,调度,测试,使用,查错。
以nfs 和 samba 服务为例:
----------------------------------------
centos 上安装samba 服务
----------------------------------------
1. yum install samba
---------------------------------------
ubuntu 上安装samba 服务
----------------------------------------
1. sudo apt-get install samba
sudo apt-get install smbfs
-----------------------------------------------------------------------------
2. 修改 /etc/samba/smb.conf 文件
security = share
增加共享目录项, 例如:
[adtv1]
path = /home/hjj/code/android4.0.3/external/adtv1
writeable = yes
guest ok = yes
[android4.0.3]
path = /home/hjj/code/android4.0.3
writeable = yes
guest ok = yes
3. 重启samba 服务
service smb restart
或者
/etc/rc.d/init.d/smb restart
4. 内部测试: testparm, 可显示samba 配置
5. 使用测试:
5.1 windows 访问smb. 从windows 用 ip 来访问共享文件夹
问题:centos 上由于开启了selinux, 使得不能访问共享。
不重启机器: setenforce 0
重启机器: 查man setenforce, 修改/etc/selinux/config 关闭selinux
这样windows 可以看到linux 下共享的文件。
还可以在windows 下设置虚拟硬盘方便访问
5.2 linux 访问samba:
smbclient //192.168.11.238/samba
由于设置的security 是share, 当要求密码时,直接按回车,无密码。
可以用smbclient 操作文件
或者把远程访问挂载到一个mnt 点上。
例如:
mount -t smbfs //192.168.11.238/samba /mnt/samba -o username="" passwd=""
sudo mount -t cifs //192.168.200.128/hjj /mnt -o username="hjj",password="hjj"
每次都让我折腾mount, linux 访问windows 共享已改为上述样式。看dmesg 帮助定位。
处理一个mount cifs 时出现的小问题. 示例:
执行如下命令,出错
$ sudo mount -t cifs //192.168.0.144/Downloads /mnt
mount: /mnt: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
看了一下,/sbin/下有如下mount 文件
mount.fuse mount.lowntfs-3g mount.nfs mount.nfs4 mount.ntfs mount.ntfs-3g
解决方法:
其实, 加上一个用户名选项就可以通过:, 所以上面提示有点迷惑人!
sudo mount -t cifs //192.168.0.144/Downloads /mnt -o username=tw
windows 上查看都共享了哪些文件夹: 用win-r 打开命令行输入, \\自己的IP 地址可以看到共享的文件夹。
如果是虚拟机,虚拟机中windows共享文件夹会直接指向linux 文件夹, 而且windows 中一般会映射成一个盘符。
linux 上由于有nfs, ssh 等, 一般可不使用samba
灵活运用:
samba 服务包里还有一些有用的工具。例如smbstatus.查看服务器状态
client 包里也有一些工具,例如 nmblookup 由IP 查看主机名
common 包里有testparm 查看共享信息等工具。
----------------------------------------
ubuntu 上安装 nfs
----------------------------------------
1、安装nfs服务版
apt-get install nfs-kernel-server
----------------------------------------
centos 上安装 nfs
----------------------------------------
centos 6 :
1. yum install nfs-utils rpcbind
----------------------------------------
2、修改nsf配置文件
vi /etc/exports
在文件中添加nfs的目录格式如下
/nfs *(rw,no_root_squash)
4、重新启动nfs
/etc/init.d/nfs-kernel-server restart
service nfs restart
5 查看状态
5.1 showmount -e [ip-addr]
Export list for localhost.localdomain
/home/nfs *
# /etc/init.d/nfs start 正常
# showmount -e localhost 报错:
clnt_create:RPC:Unknown host
解决:
# /etc/init.d/rpcsvrgssd status
rpc.svrgssd is stopped
# /etc/init.d/rpcsvrgssd start
# /etc/init.d/nfs restart
如果实在解决不了, rpcsvrgssd 启动不起来也没关系。不影响nfs 使用。
但是shoumount -e 就不能正常显示了。
5.2 exportfs
5.3 chkconfig --status-all | grep nfs
6. 使服务开机自动启动:
chkconfig --level 35 nfs on
7、终极测试(使用):从另一台机器上测试nfs
mount -t nfs 192.168.11.238:/home/nfs /mnt
如果安装,使用中遇到问题,google,baidu 是必需的。
syslog 是一个重要的参考信息,可以帮助你节省时间!!!(刚意识到)。
在安装,启动isc-dhcp-server 时遇到了一些问题,启动就是看不见服务进程,
当然是配置文件的问题,通过分析syslog 找到了线索而解决来问题.
------------------------------------------------------------
;; 补充一个tftp 服务器(ubuntu)
------------------------------------------------------------
1. apt-get install tftpd-hpa
2. dpkg -L tftpd-hpa
/etc/init/tftpd-hpa.conf
/etc/init.d/tftpd-hpa //脚本文件, 服务启动文件
service (是一个脚本文件): 是对/etc/init.d 下服务的管理, 它会使用/etc/init.d/配置文件
chkconfig (是一个perl 脚本文件): 它可以在/etc/rc*.d 目录下创建链接,指向服务脚本.
用S,K打头区分是启动还是关闭, 完成启动时自动加载问题。