您的位置:首页 > 其它

高手整理培训笔记(服务篇)

2012-04-14 19:04 288 查看
最近弄linux 看到这个不错,就是存在几百空行 ,影响阅读,自己通过整理,删除了多余的空行,大伙共享

然后再新增加一个目录 加强的它的可读性 NFS , samba , vsftp ,apache,shell 五个 部分

启动NFS时,要先启动RPC
安装:
服务器:nfs-utils
portmap
安装方法:yum install nfs*
yum install portmap*
验证: yum list | grep nfs
yum list | grep portmap
或: rpm -qa | grep nfs
rpm -qa | grep portmap
客户端: portmap
涉及的服务:
nfs
portmap
NFS服务器配置:
vim /etc/exports
配置文件共两段:
/nfs/ *(ro)
/soft/ *(ro)
共享的目录 开放的用户及权限(实际权限与本地权限有关)
客户端的表示:
* 所有主机
10.1.1.0/24 特定网段
10.1.1.100 特定IP
*.uplooking.com 特定的域
权限表示:
ro 只读
rw 读写
root_squash 把root帐号映射成匿名帐号
no_root_squash 不把root帐号映射成匿名帐号
all_squash 把所有用户映身成匿名帐号
anonuid=xxx 指定匿名账号的uid
anongid=xxx 指定匿名帐号的gid
sync 实时同步数据到磁盘
async 异步数据存放
secure 限制客户端只能从小于1024的TCP/IP
端口连服务器
insecure 允许大于1024端口连服务器
subtree_check 若输出目录是一个子目录,则NFS服务器检查
其父目录权限
no_subtree_check
开机启动
查看是否开机自动启动
chkconfig --list | grep nfs
chkconfig --list | grep portmap
设置开机启动
chkconfig --level 35 nfs on
chkconfig --level 35 portmap on
禁止开机启动
chkconfig --level 345 portmap off
chkconfig --level 35 nfs off
手动启动:
启动:service portmap start
停止:service portmap stop
重启:service portmap restart
启动:service nfs start
停止:service nfs stop
重启:service nfs restart
配好后,启动portmap,nfs服务
service portmap start(restart)
service nfs start
相关操作命令:
1、showmount 查看NFS服务器的共享情况
语法: showmount [选项] NFS服务器名或IP
-a 查看NFS服务器的所有客户连接信息
-d 显示NFS服务器中已被挂载的目录
-e 查看NFS服务器所有的共享目录
2、mount 挂载
mount -t nfs 10.1.1.1:/share/rhel_source /mnt
将NFS服务器上共享的文件挂载到本地
3、exportfs 维护NFS服务器的共享目录
-a 输出在/etc/exports中所有设置的目录
-v 在屏幕上显示
-r 重新读取/etc/exports,并使设置生效,不重启nfs服务
-u 停止共享
4、如何将一个NFS服务的共享目录开机挂载
将portmap设置为开机启动
编/etc/fstab,添加
10.1.1.1:/share/rhel_source /mnt nfs defaults 0 0
5、rpcinfo 查看rpc服务的注册状态
-p 显示所有端口与程序
常见问题:
1、portmap 没有启动
2、注意防火墙
service iptables status(看防火墙状态)
service iptables stop (停用防火墙)
samba(用于linux、windows之间的文件共享)
有两个守护进程:smbd、nmbd
安装:yum install samba
samba-client.i386 客户端包
samba-common.i386 公共包
samba.i386 服务器端
samba-swat.i386
system-config-samba
配置samba服务器
vim /etc/samba/smb.conf
security = user/share 共享方式share可匿名访问
添加共享目录
[mysamba]
comment = linux samba server
path = /share/smb 共享路径
browseable = yes 是否可浏览
public = yes 是否匿名访问
writeable = yes 是否可写
再启动服务:
service smb start
测试配置文件是否有语法错误:
testparm
如果采用的是security = user这种模式,则需要
1、为smb建linux用户 useradd samba
2、将此用户加到samba服务器中 smbpasswd -a samba
客户端使用:
share方式:
smbclient -L //10.1.1.125 查看共享
mount -t cifs //10.1.1.125/mysamba /mnt2
user方式:
smbclient -L //10.1.1.125 -U samba 查看
smbclient //10.1.1.125/soft -U samba 登录,象FTP那样使用
mount -t cifs -o username=samba //10.1.1.125/soft /mnt2
练习:
1、在/建share目录,将其共享出去,让10.1.1.x1只读,
10.1.1.X2能读写(X1,X2为自已指定的IP)
2、搭建一个nfs服务器
/share/music 10.1.1.0/24网段下所有人都可只读访问,把管
理员映射成匿名用户
/share/ftp 10.1.1.X可进行读写,其它用户只读,并把所有
用户映射成匿名用户
/share/www 所有人只读,所有用户映射成uid=501,gid=501
3、用share和user方式,搭建一个samba服务器
vsftp
ftp有两种工作模式:主动模式(port模式)和被动模式(pasv模式)
主动模式下:服务器使用20(数据端口)、21(控制端口)端口
被动模式下:服务器使用21(控制端口)、和一个随机端口(数据端口)。
安装:
需要的软件包:vsftpd
安装:yum install vsftpd
配置服务器:
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 是否允许匿名登录
anon_root=/ftp 匿名登录后的FTP根目录,
没设置时/var/ftp
local_enable=YES 是否允许本地用户登录
local_root=/ftp 本地用户登录后的FTP根目录
没设置时在自己的家目录
write_enable=YES 是否允许本地用户可写
chroot_local_user=YES 是否将用户锁定在ftp家目录中
anon_upload_enable=YES 是否允许匿名上传
anon_mkdir_write_enable=YES 是否允许创建目录
anon_other_write_enable=YES 是否允许其它的写(删除)
anon_umask=022 上传的权限掩码(777或666来减)
anon_max_rate=30000 限速,单位Byte/s
local_umask=022 本地用户上传的权限排码
local_max_rate=60000 本地用户限速
max_clients=3 客户端的最大连接数
max_per_ip=2 每个IP的最大连接数
pasv_enable=YES 支持被动模式
pasv_max_port=10240 被动模式的可用的最大端口号
pasv_min_port=1024 被动模式的可用的最小端口号
访问控制:
/etc/vsftpd/ftpusers 此文件中的所有用户不能登录FTP
/etc/vsftpd/user_list 此文件与下面设置有关
userlist_enable=YES 是否启用user_list
userlist_deny=YES 为YES时,不允许user_list中的用
户登录ftp,为NO时,只允许
user_list中的用户登录
会话设置:
idle_session_timeout=600 空闲会话超时
data_connection_timeout=600 数据传输超时
启动服务器:
service vsftpd start
apache
需要安装的包:httpd、httpd-devel、httpd-manual
安装:yum install httpd*
服务器配置:
vim /etc/httpd/conf/httpd.conf
Listen 80 监听端口
User apache 运行的身份(用户)
Group apache 运行的身份(组)
ServerAdmin root@localhost 管理员邮箱
ServerName www.example.com:80</a> 服务器默认绑定的域名
DocumentRoot "/var/www/html" 网站页面存放路径
DirectoryIndex aa.html index.html 定义网站首页
去掉apache自己的测试页:
方法一:将/etc/httpd/conf.d/welcome.conf 改后辍名
方法一:将/var/www/error/noindex.html 改名
服务器做多个网站(虚拟主机)
方案一:基于IP
1、添加一个IP
ifconfig eth0:0 192.168.1.125 netmask 255.255.255.0
2、vim /etc/httpd/conf/httpd.conf
NameVirtualHost 10.1.1.125:80
NameVirtualHost 192.168.1.125:80
<VirtualHost 10.1.1.125:80>
DocumentRoot /www/163
ServerName www.163.com</a>
ErrorLog logs/163.com-error_log
CustomLog logs/163.com-access_log common
<VirtualHost 192.168.1.125:80>
DocumentRoot /www/sina
ServerName www.sina.com</a>
ErrorLog logs/sina.com-error_log
CustomLog logs/sina.com-access_log common
确保DocumentRoot及其下面的文档存在
3、重启服务
4、访问 http://10.1.1.125</a> --->163.com http://192.168.1.125</a> --->sina.com
方案二:基于端口
1、vim /etc/httpd/conf/httpd.conf
Listen 80
Listen 81 -->添加滥听的端口
Listen 82
NameVirtualHost 10.1.1.125:80
NameVirtualHost 10.1.1.125:81
<VirtualHost 10.1.1.125:80>
DocumentRoot /www/163
ServerName www.163.com</a>
ErrorLog logs/163.com-error_log
CustomLog logs/163.com-access_log common
<VirtualHost 10.1.1.125:81>
DocumentRoot /www/sina
ServerName www.sina.com</a>
ErrorLog logs/sina.com-error_log
CustomLog logs/sina.com-access_log common
方案三:基于域名
1、vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/163
ServerName www.163.com</a>
ErrorLog logs/163.com-error_log
CustomLog logs/163.com-access_log common
<VirtualHost *:80>
DocumentRoot /www/sina
ServerName www.sina.com</a>
ErrorLog logs/sina.com-error_log
CustomLog logs/sina.com-access_log common
2、vim /etc/hosts
10.1.1.125 www.163.com</a> 163.com
10.1.1.125 www.sina.com</a> sina.com
练习:1、做一个能让匿名用户上传下载的FTP站点,限制最大下载速度为50K,
最大用户连接数为5个,上传后的文件权限为644。
2、架设一FTP服务器,关闭被动模式的连接,只允许mary和ftp两个用户
连接,空闲会话时间120秒。
3、搭建三个网站,用基于IP、基于端口、基于域名三种方式分别实现。
shell编程
shell:是一个命令解释器,侦听用户指令、启动这些命令所指定的进程,
并将结果返回给用户(交互式shell)
同时shell也是一种程序设计语言,它有变量、关键字,各种控制语句
有自己的语法结构,利用它可以编写功能很强、代码简短的程
序(shell脚本)
shell很多,cat /etc/shells查看当前支持的shell
echo $SHELL 查看当前使用的shell
bash的初始化过程:
用户登录linux时,会依次执行以几个文件:
/etc/profile --> ~/.bash_profile --> ~/.bashrc
--> /etc/bashrc
其中/etc/profile 会调用/etc/profile.d下的所有.sh
~/.bash_logout 退出时会执行的
~/.bash_history 记录了用户最近执行的命令
关于历史记录的操作:
history 显示历史记录
! ! 执行上一个命令
!n 执行第n号的历史记录
!-n 执行历史中倒数的第n条命令
!command 执行历史记录中最后一个command
与history有关的变量
HISTFILE 历史记录文件
HISTFILESIZE 历史记录文件中保存的历史记录数
HISTSIZE 退出时写到HISTFILE中最大记录数
如何不写历史记录?
一次执行多条命令:
1、无条件执行
将所有命令写在一行上,用;将要执行的命令分开
用()括起来时,会在子shell中执行,执行完时子shell会关闭掉
父shell不受影响。
2、有条件执行
后一条的执行受前一条的影响
&& 逻辑与,第一个执行成功时,才执行第二个
| | 逻辑或,第一个执行不成功时,才执行第二个
重定向:>
0 正常的输入
1 正常的输出
2 错误输出
返回值:
linux每个进程执行完退出后,都会返回一些信息给父进程,叫返回状态,
用整数表示,范围一在0-255之间。0表示执行成功,非0的话,就表示有
某种形式的错误。
如何查看返回值状态?
返回值的保存有一个变量 ?,用于保存上次执行的返回值。
通过 echo $? 可查看上次执行成功与否
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: