1.检测安装Samba服务
(1).检查Samba服务包是否已安装:
rpm -qa grep samba
(2).如未安装,则插入第一张安装盘,执行:
mount /mnt/cdrom
cd /cdrom/Redhat/RPMS
(3).进入目录后安装Samba文件:
注意:运Samba至少需要三个文件,分别为:
samba-common-2.2.7a-7.9.0.i386.rpm //服务器和客户端均需要的文件
samba-2.2.7a-7.9.0.i386.rpm //服务器端文件
samba-client-2.27a-7.9.0.i386.rpm //客户端文件
安装上述3个文件.
rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm //另外两个省略不写
(4).安装完成后弹出光驱:
cd;eject
2.设置密码文件.
(1).此设置的作用是将Linux中的系统用户(/etc/passwd)导入到samba密码文件中
(/etc/samba/smbpasswd)
cat /etc/passwd mksmbpasswd.sh > /etc/samba/smbpasswd
(2).接下来给smbpasswd等文件及文件夹设置访问权限.
chown root.root /etc/samba/smbpasswd
chmod 600 /etc/samba/smbpasswd
chmod 600 /etc/samba
查看一下:
ll -d samba
(3).如果您想手动添加一个用户,则首先要保证Linux中该用户存在,步骤:
useradd liu
passwd liu
smbpasswd -a liu //此步为添加Samba用户
3. 配置/etc/samba/smb.conf文件.
虽然文件内容众多,但需要改动的不多,一般为按需所配:
(1).修改[global](全局配置参数)
workgroup = workgroup //工作组名称
server string = samba server %v at %h //设置服务器名称.%v为版本号,%h为运行
smb服务的主机名
host allow = 192.168.80. 192.168.70. //允许访问服务器的主机
client code page = 939 //支持简体中文共享名
上述四条为比较重要的.其他配置大家可按需按情况修改.
(2).创建共享文件夹.
由于用户使用权限有多种(读,写,执行),而又访问者又有多种(用户,组),所以创建共享资源的访问方式有多种,下面暂举几例:
例一: 建立资源,使登陆到该服务器的用户均有权使用该空间(包括读,写)
<1>.编辑smb.conf文件
vi smb.conf
[resource]
comment = local resource
path = /var/samba/resource
read only = no
public = yes //允许guest用户访问
<2>. 建立共享文件夹
mkdir -p /var/samba/resource
<3>. 由于任何人都能使用,所以得给该文件夹设置访问权限.
chmod 707 /var/samba/resource
<4>. 如果想在该文件夹中放置预共享文件,而又不想花
时间从别的文件夹中cp过来,此时可以使用指针.
比如想共享/usr/share/doc中的文件,则可以:
ln -s /usr/share/doc /var/samba/resource/doc
进入/var/samba/resource ls一下,是不是出现指针文件了!
例二: 建立一资源,只能让用户liu全权访问.
<1>. 编辑smb.conf文件
vi smb.conf
[liu]
comment = liu
path = /var/samba/liu
vaild users = smz //只允许liu访问
public = no
writable = yes
<2>. 建立共享文件夹
mkdir -p /var/samba/liu
<3>. 由于只能让liu使用,所以得给该文件夹设置访问权限.
chown liu.liu /var/samba/liu
chmod 700 /var/samba/liu
此时该文件夹属于liu用户,并且只能由liu用户访问.
例三: 建立一资源,只能让root,zhang和wang访问.
<1>. 编辑smb.conf文件
vi smb.conf
[zhang wang]
comment = zhang wang
path = /var/samba/liu
vaild users = zhang wang
public = no
writable = yes
creat mask = 0707
<2>. 建立共享文件夹
mkdir -p /var/samba/zhangwang
<3>. 给该文件夹设置访问权限.
chmod 707 /var/samba/zhangwang
此时该文件夹只能root,zhang,wang访问了.
例四: 建立一资源,让指定的组group2中的用户访问.
<1>. 编辑smb.conf文件
vi smb.conf
[group]
comment = group2
path = /var/samba/group2
public = yes
writable = yes
write list = @group2 //设置读写访问用户列表
<2>. 建立共享文件夹
mkdir -p /var/samba/group2
<3>. 给该文件夹设置访问权限.
chown group2.group2 /var/samba/group2
chmod 770 /var/samba/group2
此时该文件夹只能由group2中的用户访问了.
(3). 以上为创建共享文件夹,下面为创建共享打印机.
<1>. 配置打印机的方面有很多,比如使用redhat-config-printer命令即可调出配置
菜单.
<2>. 当然smb.conf中也要设置啊:
[global]
printcap name = /etc/printcap //配置文件路径
[printers]
writable = no
guest ok = yes //guest可用
browseable = no //不可浏览
ptrintable = yes
path = /var/spool/samba //队列位置
printer admin = root //打印机管理员
其他配置不变或按情配置
接下来再添加print驱动设置:
[print$]
comment = printer drivers
path = /etc/samba/drivers
browseable = yes
guest ok = no
read only = yes
write list = root
接着创建drivers文件夹:mkdir -p /etc/samba/drivers
最后给用户准备打印机驱动,并启动打印共享:
cupsaddsmb -a -U root //-a为共享所有打印机 -U为以root身份执行
cupsaddsmb命令
4. 测试并启动Samba服务器.
testparm //测试
service smb start
pstree grep mbd //查看是否启动
5. 访问Samba
(1). 从Windows端访问.
使用"网络邻居"访问即可.
(2). 访问时可以使用IP地址,也可以使用主机名访问.
vi /etc/samba/lmhosts
192.168.80.35 smz_f91 //创建主机名与IP的映射
访问时,使用smbclient命令,使用方法如下:
smbclient -L IP/主机名 [-U 用户名] //浏览Linux/Windows资源列表
smbclient -L 192.168.80.35 //浏览Linux
smbclient -L 192.168.80.45 -U administrator //浏览Windows
smbclient //IP/共享文件夹名 -U 系统用户名 //详细查看某一共享资源的内容
smbclient //192.168.80.45/123 -U root/administrator //以root或administrator身份
登陆45主机访问共享文件夹123
至此,Samba服务器的简单创建到此结束。
三、使甩vmstat命令监视虚拟内存使用情况
vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、CPU活动进行监视。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。通常使用vmstat 5 5(表示在5秒时间内进行5次采样)命令测试。将得到一个数据汇总它可以反映真正的系统情况。
#vmstat 5 5 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 62792 3460 9116 88092 6 30 189 89 1061 569 17 28 54 2 0 0 62792 3400 9124 88092 0 0 0 14 884 434 4 14 81 0 0 0 62792 3400 9132 88092 0 0 0 14 877 424 4 15 81 0 1 0 62792 3400 9140 88092 0 0 0 14 868 418 6 20 74 0 1 0 62792 3400 9148 88092 0 0 0 15 847 400 9 25 67 0
vmstat命令输出分成六个部分:
(1)进程procs:
r:在运行队列中等待的进程数 。
b:在等待io的进程数 。
(2)内存memoy:
swpd:现时可用的交换内存(单位KB)。
free:空闲的内存(单位KB)。
buff: 缓冲去中的内存数(单位:KB)。
cache:被用来做为高速缓存的内存数(单位:KB)。
(3) swap交换页面
si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
so: 从内存交换到磁盘的交换页数量,单位:KB/秒。
(4) io块设备:
bi: 发送到块设备的块数,单位:块/秒。
bo: 从块设备接收到的块数,单位:块/秒。
(5)system系统:
in: 每秒的中断数,包括时钟中断。
cs: 每秒的环境(上下文)切换次数。
(6)cpu中央处理器:
cs:用户进程使用的时间 。以百分比表示。
sy:系统进程使用的时间。 以百分比表示。
id:中央处理器的空闲时间 。以百分比表示。
如果 r经常大于 4 ,且id经常小于40,表示中央处理器的负荷很重。 如果bi,bo 长期不等于0,表示物理内存容量太小。
四、Linux 服务器的内存泄露和回收内存的方法
1、内存泄漏的定义:
一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。
2、内存泄露的危害
从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。从这个角度来说,一次性内存泄漏并没有什么危害,因为它不会堆积,而隐式内存泄漏危害性则非常大,因为较之于常发性和偶发性内存泄漏它更难被检测到。存在内存泄漏问题的程序除了会占用更多的内存外,还会使程序的性能急剧下降。对于服务器而言,如果出现这种情况,即使系统不崩溃,也会严重影响使用。
3、内存泄露的检测和回收
对于内存溢出之类的麻烦可能大家在编写指针比较多的复杂的程序的时候就会遇到。在 Linux 或者 unix 下,C、C++语言是最使用工具。但是我们的 C++ 程序缺乏相应的手段来检测内存信息,而只能使用 top 指令观察进程的动态内存总额。而且程序退出时,我们无法获知任何内存泄漏信息。
使用kill命令
使用Linux命令回收内存,我们可以使用Ps、Kill两个命令检测内存使用情况和进行回收。在使用超级用户权限时使用命令“Ps”,它会列出所有正在运行的程序名称,和对应的进程号(PID)。Kill命令的工作原理是:向Linux操作系统的内核送出一个系统操作信号和程序的进程号(PID)。
应用例子:
为了高效率回收内存可以使用命令ps 参数v:
然后如果想回收Ping命令的内存的话,使用命令:[root@www ~]# ps v PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND 2542 tty1 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty1 2543 tty2 Ss+ 0:00 0 8 1631 428 0.1 /sbin/mingetty tty2 2547 tty3 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty3 2548 tty4 Ss+ 0:00 0 8 1627 428 0.1 /sbin/mingetty tty4 2574 tty5 Ss+ 0:00 0 8 1631 432 0.1 /sbin/mingetty tty5 2587 tty6 Ss+ 0:00 0 8 1627 424 0.1 /sbin/mingetty tty6 2657 tty7 Ss+ 1:18 12 1710 29981 7040 3.0 /usr/bin/Xorg :0 -br -a 2670 pts/2 Ss 0:01 2 682 6213 1496 0.6 -bash 3008 pts/4 Ss 0:00 2 682 6221 1472 0.6 /bin/bash 3029 pts/4 S+ 0:00 2 32 1783 548 0.2 ping 192.168.1.12 3030 pts/2 R+ 0:00 2 73 5134 768 0.3 ps v
# Kill -9 3029
使用工具软件
Memprof是一个非常具有吸引力且非常易于使用的软件,它由Red Hat的Owen Talyor创立。这个工具是用于GNOME前端的Boehm-Demers-Weiser垃圾回收器。这个工具直接就可以执行,并且其工作起来无需对源代码进行任何修改。在程序执行时,这个工具会以图形化的方式显示内存的使用情况。


