(转自: http://hi.baidu.com/enusre/blog/item/48d60cc9b348120601e928dd.html)
FreeBSD 系统管理员都应该知道的那点秘密
2011-04-24 8:50
一、FreeBSD直接可以用命令彪悍的生级的,比如将FreeBSD8.0升级成FreeBSD8.1。
直接在FreeBSD的命令行模式下,输入以下命令
sudo freebsd-update -r 8.1-RELEASE upgrade
中间按提示输入就行了
Does this look reasonable (y/n)? 全 y
大部分都不需要修改,只是文件的版本时间改变
会有一些需要合并的文件,程序会自动用 vi 打开,解决一下就行了
结束后
sudo freebsd-update install
会有如下提示
Installing updates... Kernel updates have been installed. Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates
然后
sudo shutdown -r now
重新启动后
sudo freebsd-update install
uname -a 查看,已经OK了
FreeBSD www.wsck.com 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul 19 02:55:53 UTC 2010 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
※值得注意的是,线上的生产服务器全部用的是FreeBSD8_release AMD64版本,生级过程可能不一样;建议先用虚拟机或拿一些不是特别重要的线上服务器尝试,不建议直接生级,谨慎操作.
二、FreeBSD的vim确实跟Linux下vim有区别。
很多同学都向报怨说FreeBSD下的 vim不好用,特别跟RHEL比起来,这是不争的事实,其实稍为配置下vim用起来一点也不比Linux 差;我的FreeBSD机器,无论是VM学习机, 还是开发机器或线上的系统,均不采用root直接操作,都是用采取用户操作的方式,其vim配置文件如 下vim ~/.vimrc
set nobackup set number set cindent set autoindent set shiftwidth=2 set tabstop=2 set softtabstop=2 set expandtab set ruler syntax on
常用设定
下面说说一些常用的设定及其具体含义
set nobackup 不要备份文件,使用backup备份文件(原文件加后缀~)
set number 显示行号
set cindent 设定c风格缩进,使用nocindent取消设置
set autoindent 设定自动缩进,每行缩进与上一行相等,使用noautoindet取消设置
set shiftwidth=2 设定缩进为两个空格
set tabstop=2 设定制表符为两个空格
set softtabstop=2 设定软制表符为两个空格
set expandtab 缩进和(软)制表符使用空格替代,用noexpandtab取消设置
set ruler 显示光标所在行列号
syntax on 启动语法高亮
其中涉及到的名词术语相关解释
cindent
使用C语言的缩进方式,根据特殊字符如“{”、“}”、“:”和语句是否结束等信息自动调整缩进;在编辑 C/C++ 等类型文件时会自动设定;
softtabstop
软制表符宽度,设置为非零数值后使用Tab键和 Backspace时光标移动的格数等于该数值,但实际插入的字符仍受tabstop和 expandtab控制;这样配置vim比以前好用多了。
三、FreeBSD下配置网络环境,感觉比Centos简单些。
使用sysinstall进行网络配置的优点是所有的网络数据将在同一个界面下进行设置,不容易发生错误和遗漏现象。但熟练的unix用户在平时维护系统的时候更喜欢使用手工配置,因为手工配置有很多优点:
熟悉命令之后,手工配置更快;
能够使用配置命令的高级特性;
更容易维护配置文件,找出系统故障;
能更深刻的了解系统配置是如何进行的。
仅仅使用sysinstall进行设置,不可能对系统设置有深刻的了解,因而一旦发生问 题,就容易束手无策。 对于管理员来讲,不能被动的仅仅停 留在能够使用和操作的阶段,而是要了解系统是如何进行工作的,才能更好的进行系统维 护和管理。因而需要使用命令行方式。一旦熟悉之后,就会发现命令行才 能提供全部灵活的操作能力,而全屏幕方式限制很多 ,过于呆板。另外,为了让配置永久生效,我推荐跟centos5.4一样配置,采用文件配置方式,过程 如下(这里以FreeBSD8.0为例),感觉比 linux 简单,特别对比centos5.4下的网卡配置/etc/sysconfig /network-scripts/ifcfg-eth0而言,目录足足花了 我三天时间记忆:)
#vi /etc/rc.conf hostname="mail.bolaninfo.com" ifconfig_le0="inet 192.168.1.108 netmask 255.255.255.0" defaultrouter="192.168.1.1"
域名解析DNS配置如下
#vi /etc/resolv.conf nameserver 210.5.4.116 nameserver 210.51.176.71
为了让以上过程永久生效,reboot重启服务器后用ifconfig可验证ip地址,netstat -r可验证网关是否生效,nslookup及dig可验证DNS配置是否正确等。
另外这里稍为解释下名字解析hosts,它的执行顺序是优于DNS,现阶段多用于集群环境,如heartbeat、MySQL cluster等,配置过程如下
#vi /etc/hosts 192.168.1.100 HA1 192.168.1.101 HA2 192.168.1.188 vip.balaninfo.com
远程连接管理我工作中用的是Xmanager3的xshell,但FreeBSD8.0默认root是不能在非本地登陆的,这里需要改动下/etc/ssh/sshd_config文件。
※值得注意的是
A、系统需要改动的是/etc/ssh/sshd_config文件,而非/etc/ssh/ssh_config文件,这个问题让我郁闷了很长时间,这里煮酒为自己的大意要作自我批评了;
B、在sshd_config最后添加三项内容:
PermitRootLogin yes #允许root登录 PermitEmptyPasswords no #不允许空密码登录 PasswordAuthentication yes #设置是否使用口令验证
划红线的内容为必填项,然后重启sshd服务即可,/etc/rc.d/sshd restart。
四、强烈建议FreeBSD下采取sudo操作,可能有些玩Linux的同学不习惯;但你用久了就会发现,好处是利大于弊的。
虽然FreeBSD下可以配置成允许root远程ssh,但强烈建议不要这么做;建议还是分配一个有wheel权限的普通用户进行操作的好,如果有 特殊需求就必须要sudo,这样不仅安全,而且遇到毁灭性打击时,起码可以起到一点预警的作用,所以我在FreeBSD下强烈推荐sudo操作。
sudo是一款开源安全工具,它能允许管理员给予某些用户或组以作为root用户或其他用户从而运行特定命令的权利。这个软件还 能记录下特定系统用户的命令和参数。sudo的开发者声明这个软件的基本出发点就是“让人们以尽可能少的权限完成他们的工作。Sudo在1986年夏天首 次发行,Todd Miller先生现在负责这个程序并在BSD方式的许可证下发行它。Sudo主页:http://www.sudo.ws/sudo/ 。Sudo程序是一款在命令行方式下工作的安全工具,并且我们每次只执行一条命令。它支持的功能如表(Sudo几乎支持所有的UNIX类操作系统版本)
五、很多喜欢用adduser在FreeBSD里增加新用户,其实FreeBSD里可以用PW是来创建、删除、修改、显示用户和组的命令行工具。它还有系统用户和组文件编辑器的功能;其具体用法如下:
1、用户管理
1)用户添加
pw [-V etcdir] useradd [name|uid] [-C config] [-q] [-n name] [-u uid] [-c comment] [-d dir] [-e date] [-p date] [-g group] [-G grouplist] [-m] [-k dir] [-w method] [-s shell] [-o] [-L class] [-h fd | -H fd] [-N] [-P] [-Y] [-V etcdir]
默认当新增组和用户时使用/etc/pw.conf作为pw配置文件,也可以指到别的文件上。pw.conf这个文件可以不存在。当使用这个参数时,需要使
用-C config [-C config] [-q] 在交互式环境中,这个选项使pw支持输出错误信息 [-N] 在添加和更改操作时输出结果,而不真正改变组和用户信息。 [-Y] 自动更新yp数据库。 [-n name] 指定用户名 [-u uid]指定用户id(ps:好像没什么用) [-c comment]用户全称等注释信息(ps:没什么用) [-d dir] 指定用户家目录 [-e date]帐号到期时间,时间格式可以是绝对的日-月-年,2为数字年或4位数字年,月可以是数字或英文月份的简写('Jan', 'Feb', etc)
也可以是相对时间,+n[分时天周月年],n可以是十进制、八进制[0开头]或十六进制[0x开头]。
[-p date]密码到期时间,时间格式同上。[-g group]指定组(组名或组id)。[-G grouplist]指定组列表,组以空格分开,如:-G wheel mysql teczm即把某账号置于这三个组内。[-L class]在用户创建时指定登录等级。[-m] 自动创建用户家目录[-s shell]指定用户shell
[-w method]method包括:
no 新创建的账号禁止登录yes 强制新建账号密码和账号一样(ps:这样不安全)none 强制新建账号使用空密码(ps:这样不安全)random 生成一个随机密码pw useradd username -g tests -d /home/test -s /bin/sh -h 0
增加参数 -h 0 可以出来password for user username:这样的提示来让你设定username的密码
2)组操作时常用选项
[-M memberlist] 将用户置于组内,会替换掉已经存在的用户
[-m newmembers] 添加新用户到组内,不会替换掉已经存在的用户
示例:
1.新建一个用户bsder使用cshell,家目录为[color]/home/bsder[/color],属于组[color]wheel[/color],口令交互输入
#pw useradd bsder -s /bin/csh -d /home/bsder -m -g wheel -h 0 或#pw user add bsder -s /bin/csh -d /home/bsder -m g wheel -h 0
注: -h 0 可以出来password for user username:这样的提示来让你设定username的密码
2.将bsder使用的shell改为/bin/sh
#pw usermod bsder -s /bin/sh
3.将bsder置于test组内
#pw groupmod test -m bsder
4.锁定bsder用户帐号
#pw lock bsder
5.对bsder账号解锁
#pw unlock bsder
6.显示bsder用户属性
#pw usershow bsder
7、删除bsder用户
#pw userdel bsder 或#ps user del bsder
六、安装axel优化其ports速度,不要用默认的Fetch工具了。
FreeBSD中的ports安装工具默认工具是用fetch,下载时经常出现龟速现象;为了提高ports安装速度,我推荐axel工具,当然具体还得配置下make.conf文件。
cd /usr/ports/ftp/axel make install
#修改/et/make.conf
vi /etc/make.conf
#加入以下内容
FETCH_CMD=axel FETCH_BEFORE_ARGS= -n 10 -a FETCH_AFTER_ARGS= DISABLE_SIZE=yes MASTER_SITE_OVERRIDE?=\ http://ports.hshh.org/${DIST_SUBDIR}/\ http://ports.cn.freebsd.org/${DIST_SUBDIR}/\ ftp://ftp.freeBSDchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}#以上路径是为了用速度比较快的网站代替程序默认的下载源,达到加速的目的;我在家里没配置前大约是20kb/s左右,配置之后是230kb/s,所以强烈推荐。
七、大家都会用ports及pkg_add在FreeBSD安装软件,但它们的高级用法呢?特收录整理,以备不时之需。
①ports的目录在/usr/ports。
②POSTS安装软件有时可能这个包已经安装过了,会有提示,无法继续安装,能够用提示中的参数
#make install clean FORCE_PKG_REGISTER=yes
这样就能够继续安装了,yes不区分大小写。
③PORTS安装软件时有时能够下载回来的包的md5值不匹配,能够加参数强制安装。
#make install clean NO_CHECKSUM=yes
④如何查找安装一个ports软件
假如知道文件的详细名字,能够直接用whereis
#whereis php5
假如不知道细致文件名,能够用:
#cd /usr/ports #make search name=php
假如只知晓描述性主要字,能够用:
#cd /usr/ports/ #make search key=php
⑤如何查找已完装软件包的信息
#pkg_info
用管道命令过滤定位
#pkg_info grep php
⑥如何删除一个软件包
#pkg_delete 软件包细致名,细致名称能够用pkg_info grep 管道命令查出。
加上-f 参数,能够删除一人别的软件对其有依靠联系的软件包
#pkg_delete -f 软件包细致名
⑦PORTS安装软件后,如何修改配置
有些POST包安装时会有蓝色配置挑选页,通常选过一次后就不会再显示了
#make rmconfig 删除配置,须要有root权限
#make reconfig 重新配置,须要有root权限
⑧重新安装已安装ports软件包
#make reinstall
⑨删险已安装ports软件包
#make deinstall #make clean
⑩如果系统默认的下载地址失效了,你可尝试手动下载tbz软件包,然后用pkg_add 软件包名直接安装。
八、FreeBSD的远程连接
感觉pietty比起xshell来,更轻松和方便,远程ssh的FreeBSD机器也很容易,推荐大家尝试使用;记得在某篇文章里看过,这个工具 好像也是中国雅虎内部员工推荐使用的,因为FreeBSD基本都是隶属于wheel的用户(推荐sudo)来使用,因为不需要记密码,所以pietty使 用起来更实用。
九、FreeBSD下的虚拟机
感觉现在大家较喜欢用Vmwareg下的Exi和Xen来作虚拟机,其实FreeBSD自身就带了jail虚拟机;由于内网开发非常稳定,我们勇敢的将其也用于了生产环境,效果也不是太差,呵呵。
十、FreeBSD下的MySQL
FreeBSD下用MySQL效率确实 比在Centos下差,这个是不争的事实,有兴趣的朋友可对比二个平台环境下进行测试;我的MySQL生产 服务器是清一色的64bit的Centos,如果你需要跑Oracle等大型应用的话,而且Oracle在Linux下是支持的比较好的, 那么使用 Linux是个好的选择,因为在FreeBSD下安装Oracle是个非常麻烦的事情。
分享到:
相关推荐
全书共5部分14章。第一部分包括前3章,是对FreeBSD历史、设计和内核服务的综述性介绍...本书适合FreeBSD操作系统技术支持人员、应用程序开发人员、系统管理员和系统程序员阅读,也可供对学习FreeBSD感兴趣的读者参考。
根据提供的文件信息,我们可以从标题、描述以及部分内容中提取出关于FreeBSD系统结构的重要知识点。 ### 标题:FreeBSD系统结构官方简体中文手册txt 该标题表明这是一份官方发布的、关于FreeBSD系统结构的手册,...
此外,还会涵盖基本的系统配置,如网络设置、时区调整、软件包管理系统(pkgng)的使用,以及更新和维护系统的方法。 三、用户与权限管理 在FreeBSD中,用户和组管理是系统管理的重要部分。这部分内容可能涉及创建...
FreeBSD的系统架构是分层的,由多个层次组成,包括内核层、设备驱动层、文件系统层和用户空间层,每层都负责不同的系统功能,并提供接口供上层调用。 书中提到了FreeBSD内核的一些重要设计点。内核是操作系统的核心...
总之,理解和掌握FREEBSD的文件系统及其相关的浏览工具,对于系统管理员和开发者来说至关重要。通过使用专业的文件系统浏览工具,如UFS Explorer,可以在数据丢失或系统故障时,有效地保护和恢复重要数据。
综上所述,FreeBSD系统编程涉及多个层次的技术和概念,从底层硬件到高层应用,从单机到网络,都需要系统地学习和实践。通过阅读《FreeBSD系统编程》这样的资源,开发者可以逐步掌握这一领域的核心技能。
自己制作的最新版的FreeBSD 系统结构手册
freebsd管理工具,直接解压到freebsd中即可……非常好用的管理软件
### FreeBSD系统结构手册关键知识点解析 #### 一、FreeBSD简介 - **系统定义**:FreeBSD是一款基于Unix的操作系统,其目标在于提供一个稳定、高效且可定制的基础平台,适用于服务器、个人计算机及嵌入式系统等多种...
1. 包管理系统:FreeBSD的ports和pkg系统使得软件安装、更新变得简单,ports提供源代码编译,pkg提供二进制包安装。 2. 文件系统管理:理解UFS、ZFS等文件系统的特性,以及如何进行挂载、卸载、检查和修复。 3. 进程...
FreeBSD系统编程是针对FreeBSD操作系统进行应用程序开发和系统维护的技术。在FreeBSD中,`make`是一个核心的工具,用于...无论是在FreeBSD还是其他类UNIX系统中,掌握`make`的使用都是系统编程和软件开发的基础技能。
这份手册从系统架构的角度出发,详细介绍了FreeBSD的内核、文件系统、网络栈、安全机制等多个方面,旨在帮助开发者和系统管理员深入掌握FreeBSD系统的运作细节。 手册中提到的“FreeBSD Architecture Handbook”是...
这是一个 FreeBSD 9.2 版本的 64位系统镜像文件,文件名为 'mfsbsd-se-9.2-RELEASE-amd64.iso'。这个镜像文件可以用于创建 FreeBSD 9.2 版本的操作系统环境,适用于 64位的硬件架构。下载后,可以通过刻录或者虚拟机...
1. **FreeBSD内核**:FreeBSD内核是操作系统的核心部分,负责管理系统资源。它包括调度器、中断处理、内存管理、进程间通信等关键功能。 2. **进程管理**:FreeBSD如何创建、销毁、调度进程,并处理进程间的通信。...
FreeBSD系统安装手册,便于查询解决查询烦恼。
3. **软件管理**:详述了FreeBSD的包管理系统 ports和pkg,如何查找、安装、更新和删除软件包,以及源码编译软件的方法。 4. **系统维护**:涵盖了日志查看、性能监控、系统更新和安全实践。这部分内容对于保持系统...
Panabit是一款强大的网络行为管理系统,用于监控和控制网络流量。在FreeBSD 8.4上安装Panabit,你需要: 1. 下载Panabit软件包:从官方网站获取适用于FreeBSD的Panabit软件,确保与你的FreeBSD版本兼容。 2. 创建...