免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1455 | 回复: 0
打印 上一主题 下一主题

Solaris 达内听课笔记第一册整理 [复制链接]

论坛徽章:
1
巨蟹座
日期:2014-02-11 14:21:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-26 13:59 |只看该作者 |倒序浏览
达内听课笔记第一册整理
用户及系统环境管理
1.su - 读取root 配置文件
2.uid 0-99 系统用户101-60000 自建用户
3.一个用户如何属于多个组:/etc/group 文件的第4 项表示以第二组身份存在于该组的用
户.
4./etc/shadow 文件第2 列空(无口令,登陆时提示输入新口令) NP (没密码) LK(锁定,即
不能登陆)
5.新建一个用户并不用passwd 命令设置密码,其密码在/etc/shadow 文件中的状态为LK
6.useradd 添加用户
-u uid
-g gid 用户所属主组
-G gid,gid 用户所属其他组
-d 用户主目录
-m 若用户主目录不存在则创建
-s 用户的shell
-c 说明
-o 允许多个用户用同样的uid(指本用户的uid)
-e 用户帐户的使用时间限制
-f 多长时间提醒
-k 不使用旧的模版文件(/etc/skel 下),而指明新的模版文件
7.usermod -l yej yeji (把yeji 用户改名为yej)
8.userdel -r 附带删除根目录
9.passwd -d yeji,使yeji 用户的密码为空.
例子:useradd -d /export/home/yeji -m -s /usr/bin/ksh ;passwd -d yeji
10.把shadow 文件中的密文拷贝到另一系统中,密码仍然有效.Shadow 文件中的密码加密规

1
2
1) 密文一样,明文一定一样.
2) 明文一样,密文不一定一样.
/etc/shadow 文件在密文之后几列的作用,都是存放该用户有关修改密码的时间限制.
11.passwd 文件与shadow 文件是一行一行对应的,有时候可能会出现因为两个文件中的同一
用户行数不对应,所以一批用户无法登陆的情况.
12./var/adm/utmpx 文件保存当前系统信息,如who 命令查看当前登陆用户,即通过调用这个
文件实现.
11.var/adm/wtmpx 文件保存历史系统信息,如last 命令查看过去的用户登陆情况,即通过调
用这个文件实现.
13.手工建立/var/adm/loginlog,可以用来查看失败登陆记录.
/var/adm/loginlog 是基于/bin/login 程序进行日志的,与syslogd 无关.建立时需注意
1.loginlog 文件属于root/sys,并且只有属主对该文件可读写
2.登陆失败5 次以上,才会记录.
14.修改/etc/inetd.conf 把默认启动的finger 关掉
15.last 命令
last: 查看历史登陆记录
last reboot: 记录重启信息
last yeji: 查看yeji 用户最后登陆的情况
16.rusers 查看局网内所有开rusers 服务机器的当前在线用户
17.几种查看当前用户的命令
1)who am i: 显示自己的登陆用户(uid)
2)whoami: 显示自己的当前有效果用户(euid)
如果用yeji 用户登陆,而su 成root 用户,则yeji 为登陆用户(uid),root 为当前有效用户
(euid)
3)id: 显示自己的当前用户以及uid,gid
id -a 显示自己所在的所有的组以及euid,egid
提示:只打cd 命令回到登陆用户的主目录,即uid 的主目录,因为环境变量$HOME 始终是登陆
用户的shell 带来的
18.sysadmin 组,GID=14,作用是启动与运行admintool.其权限仅限于图形界面的admintool.
19.关于su 命令
1)/etc/default/su 是su 命令的配置文件
2
3
2)/var/adm/sulog 是su 命令的日志文件,记录su 登陆事件
- 代表登陆失败+ 代表登陆成功
20.pts/n 伪终端,位于/dev/pts 下,表示外部用户登陆的设备文件. 外部登陆者依登陆顺序,
号码加1.
21.如何让root 从远端登陆
修改/etc/default/login 文件,取消CONSOLE=/dev/console 的注释,否则root 只能从
console 登陆.
设置CONSOLE=/dev/null,root 不能从任何地方的功能路,只能由普通用户su 过来.用于加强
管理.
22./var/adm/messages 文件存放一些系统日志信息.
在crontab 中系统自动有一条脚本,使5 个messages.n 文件循环使用,当周的日志则存放在
messages 文件中.
messages.0 文件是保存上一周的meassges 文件,而messages.1 是保存上上周的meassges 文
件,以次类推.这个动作是通过crontab 计划任务实现的.
23./etc/default/passwd 文件,规定默认密码性质
1)PASSLENGTH=X 规定密码长度
2)MAXWEEKS 与MINWEEKS 规定最长与最短更改密码时间.若此处没有的话,则系统寻找
/etc/shadow 中第4,5 列值.
24.查看系统资源的几个命令
1)prstat
2)/usr/ucb/ps -auwx (/usr/ucb 下存放一些BSD 的工具)
25.Chown 命令
1)chown -R 递归改变目录下所有文件的属主
2)chown user:group file 同时改变拥有者和拥有主
26.理解setuid 位:当普通用户执行设有suid 位的文件时,可以拥有文件属主的权限,典型的
例子是su 与passwd,做为[普通用户本身是无法读写/etc/shadow 文件的,可是但他们执行这
两个命令时,他们在执行命令的时候拥有了部分root(/etc/shadow 文件属主)的权限.
27.几个命令存放的路径
1)/usr/bin 中是普通命令
2)/usr/sbin 中是系统命令.
3)/bin 是/usr/bin 的连接./sbin 是独立的少数命令.
28.find / -perm -4000 查看所有有setuid 位的文件,000 代表任意.
解释:这里涉及一个权限位的问题,权限位本来是有12 个2 进制位,4 个10 进制位的,前3 个
2 进制位分别表示setuid setgid sticky bit.上例中的4000 即表示匹配setuid 文件的意思.
3
4
7777=rws-rws-rwt
29.关于sticky bit 粘贴位.
这个特殊权限位,更多针对于目录,比如/tmp 目录.如果设置有粘贴位,用户在该目录内只能
对自己拥有权限的文件进行操作.
解释:对一个文件的删除权限是取决于对文件所在的目录的写权限,因为文件名只是存放于目
录数据块中的一段信息而已,能否删除文件,取决于对这个数据块的写权限.
/tmp 目录,是任何人都是拥有写权限的目录,如果没有sticky bit 位,那么任何用户都可以删
除其中的文件,势必会造成误删他人的文件.
Ls -l /tmp
drwxrwxrwt 6 root sys 288 Mar 14 07:54 tmp
/tmp 目录是有sticky bit 位的.也就是说,任何用户在这个目录下想删除一个文件,除了对这
个目录拥有写权限之外,还有对那个文件拥有写权限.
30.file access control list 文件访问控制列表,规定权限位以外的用户权限
建立facl 之后的文件,在rwx-rwx-rwx 权限位之后会多一个'+'号
如:-r-sr-x---+ 1 root root 17568 11 月5 2001 /usr/bin/su
命令:
getfacl 查看一个文件的facl
getfacl /usr/bin/su
查看一个文件的facl
setfacl -m 建立,修改一个文件的facl
setfacl -m u::perm file 设置所有者的权限,与chmod 效果相同
setfacl -m g::perm file 设置所有组的权限,与chmod 效果相同
setfacl -m u:yeji:7 file 设置用户yeji 对file 有完全权限
说明:第二列的位置既可以放用户名组名也可以放uid,gid,相比之下,我觉得放uid,gid 更
加可靠
当普通权限与facl 权限发生冲突的时候,取facl 权限,即facl 权限高于普通权限位.两者并
非取最小值.
setfacl -m m(mask):7 file 设置facl mask
facl mask 与受影响的facl 值做and 运算,产生有效的facl 值.
facl mask 只影响特定用户(other)以及同组人(group)
例子:
user:openlab:rwx #effective:r--
mask:r--
setfacl -d 删除一项facl,-d 动作即-m 动做的反动作,需要一项一项地删除.命令格式完
全一样.
4
5
例子:
www.openlab.com.cn
上限制用户使用su 命令
openlab.tarena.ca% ls -l /usr/bin/su
-r-sr-x---+ 1 root root 17568 11 月5 2001 /usr/bin/su
openlab.tarena.ca% getfacl /usr/bin/su
# file: /usr/bin/su
# owner: root
# group: root
user::r-x
user:gzhu:r-x #effective:r-x
user:hansy:r-x #effective:r-x
user:oracle:r-x #effective:r-x
user:tarena:r-x #effective:r-x
user:1041:r-x #effective:r-x
user:jerry:r-x #effective:r-x
user:minzhao:r-x #effective:r-x
user:liuzhib:r-x #effective:r-x
group::r-x #effective:r-x
mask:r-x
other:---
解释:先使用chmod 命令去处普通用户对su 命令的执行权限,再使用setfacl 命令添加部分
普通用户对su 的执行权限.
简单系统安全
1.r 系列服务
1)rlogin,rsh,rcp 与telnet 的区别.
r 系列服务比较方便,可以不用验证,安全性比较低.r 系列服务仅限于局域网.不能跨网段.
2)root 的主目录,绝对不允许存在/.rhost 文件,极大的安全隐患.
3)r 系列服务登陆过程.
a)检查clinet 的用户是否存在于server 中.
b)如果是root 用户,则只检查$HOME/.rhosts(/.rhosts)文件
如果是非root 用户,则先检查/etc/hosts.equiv 文件,后检查$HOME/.rhosts
c)如果这两个文件中有client 端的hostname,则client 端可以无须密码认证便登陆.
d)在这两个文件中,"+"号代表任意主机
2.网站或者数据库主机的/etc/passwd 中用户数量很少.大两的普通用户通过服务与数据库
5
6
来进行管理的.
3./etc/ftpusers 拒绝系统用户访问系统自带的ftp.
# more /etc/ftpusers
root
daemon
bin
sys
adm
lp
uucp
nuucp
listen
nobody
noaccess
nobody4
文件系统
1.Unix 为什么不能非法关机?
因为在内存中改写的inode 对data block 的对应信息没能回写到硬盘中.非法关机会造成
inode 对应信息丢失,从而造成文件丢失.
solaris 每5 分钟内存inode 对应信息回写硬盘一次.
2.目录是一个文件,该文件的数据块中保存的信息,是该目录的文件绝对路径以及该目录下的
文件名与文件inode 号.
3.ln 文件连接
ln -s 创建一个软连接
例子:ln -s /etc 1 将1 文件连接到/etc 目录,当然也可以连接到一个文件.
软连接文件有自己的文件名,inode,数据块.在数据块中存放一个文件路径,可以理解成快捷
方式.
软连接基于路径,所以可以跨分区进行连接.在父目录空间满的情况下,以软连接形式存在的
子目录依然可以向另一个分区写入数据.
ln 默认创建的是一个硬连接
硬连接文件有自己的文件名,没有自己的inode 与数据块.硬连接文件与原文件两个文件名指
向同一个inode.删除一个文件名之后,该文件还可以通过另一个文件名来访问.因为这种连
接根据的是inode 号,所以不能跨分区.
6
7
4.ls -l 的信息
-rw-r--r-- 1 root other 0 Mar 15 15:12 1
文件名信息存在于目录文件的数据快里,inode 里存放其他信息.
5. solaris 的一个特性: /home 目录是只读的,所以一般建主目录都在/export/home 下.
6.一些存放命令的目录
/usr/bin 普通unix 命令
/opt 存放第三方软件
/usr/local 也可以放第三方软件
/usr/ucb 放的是一些bsd 的工具
7./var/spool 队列任务目录
/var/spool/lp 打印任务队列
/var/spool/cron 计划任务cron 队列
/var/spool/mail 邮件队列mail.
硬件设备
1.块设备与裸设备
/dev/dsk 该目录存放块设备设备
/dev/rdsk 该目录存放裸设备
块设备使用data buffer,速度慢,但可以防止丢失数据
裸设备不使用data buffer,速度块,常用于大量的IO 读取
两个文件夹中的设备文件都是指向同一个物理分区,只是访问方式不同而已.
2.文件系统的命名方式
如:/dev/dsk/c0t0d0s0
第一个控制器的第一块硬盘的第一个分区
c controler 主版上的插槽
t target 数据线上的插槽
d disk (现无用,一个t 上一般只有一个d)
s slice (相当于windows 中的分区)
在solaris 中
一个controler 可以接15 个target,分别是1-15,0 代表该controler 本身
一个target 上只放一个disk
一个disk 上可以分7 个slice,0-7,2 被预留名为backup,表示整个硬盘.
7
8
3.在分配硬盘与分区的时候来考虑性能优化
1)从机器的角度考虑,把比较繁忙的硬盘放在不同的control 中
2)从硬盘的角度考虑,把比较繁忙的分区放在不同的disk 中,同样的道理,与其买一块72G 的
硬盘,不如买两块36G 的硬盘,可以负载平衡
3)从分区的角度考虑,把比较繁忙负载较重的分区放在s0,s1 等靠外的位置,常将/分区与
swap 分区分到s0 与s1 上
4.关于设备文件
/dev 是逻辑设备文件
/devices 是物理设备
/dev 都是指向/devices 的连接文件
5.关于scsi 设备,按pin 数分,50pin,68ping,80ping.80pin 以上支持热插拔
6./etc/path_to_inst 保存instance name 与物理名字的映射,不要手工改动这个文件.
7.几个查看硬件信息的命令
1) prtconf 可以看见cpu 类型和内存容量.
2) /usr/platform/sun4u/sbin/prtdiag 查看更加详细的cpu 信息.和io 状态.
3) psrinfo -v 查看包括主频与cpu 类型在内的cpu 信
息,sparc 32 位, sparcv9 代表64 位系统.另外可以看见这台机器已经开机多久.
4) isainfo 查看cpu 的类型
8.Solaris 挂载新硬盘的三种方法,无论哪种方法,安装新硬件的本质即是重新配置/dev 与
/devices 目录,这里指的安装新硬件,更多的是指安装硬盘,磁带机.
1) touch /reconfigure 之后(给系统一个信号),关机(init 5),安装硬件,起动,系统自动安
装新硬件驱动.
2) 关机进入ok 状态(stop-A)(系统低级别状态)中boot -r 同样进行(系统自动安装新硬件
驱动.
3) 先插硬件,再打devfsadm 针对热插拔设备,不需要关机重起,直接执行同样动作,配置硬
件,只有solaris8 以后才有这个命令.
9.Windows 下与Unix 下挂载新硬盘比较.
win unix
分区fdisk format
ufs在使用format 修改分区大小后,如
Windows 下的fdisk 一般,原分区数据必
然全部丢失
8
9
格式化
format newfs(solaris 专用)/mkfs(通用)
mkdir 手动创建mount point
mount
df -k 检查
修改vfstab,使之自动挂载
10. 硬盘单位.
在format 进行分区,可以看见硬盘的信息.
cyl x hd x sec x 512B = 容量
Cylinders x Heads x Sectors x 512B
磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片, 最大
为255 (用8 个二进制位存储)
柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为1023
(用10 个二进制位存储)
扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为63(用6
个二进制位存储)
每个扇区一般是512 个字节即0.5KB, 理论上讲这不是必须的,但好象没有取
别的值的.
理论上硬盘的最大值是:
255 * 1023 * 63 * 512 / 1048576 = 8024 GB ( 1M =1048576 Bytes )
或硬盘厂商常用的单位:
255 * 1023 * 63 * 512 / 1000000 = 8414 GB ( 1M =1000000 Bytes )
(厂商标识硬盘大小与硬盘实际大小有区别,就是因为这种原因)
11.光驱的设备文件.
/dev/sr0 and /dev/rsr0 文件都是光驱的逻辑名,两种访问方式.
前者是块设备后者是裸设备
12.format 的几个技巧
format 将一个分区容量修改为0 即删除这个分区.
在分配空间时cyl 数之间不能交叉重复,否则称之为overlap
在label 之前的动作都是保存在buffer 中,label 动作之后把buffer 中内容写入VTOC.
9
1
若不保存,则quit 后重进,仍然回复原来的分区格式.
13.关于安装时分区的安排
以下目录考虑单分一个分区
/ 安排足够的空间,因为如果某一个文件系统没有安排独立的分区则使用的是根分区
的容量,因为任何文件的寻址都是从根开始的,所以这个分区的负载较重,所以经常放在最靠
外的slice 中
swap 很多书上说是内存的两倍,但也有人说照物理内存的大小以及实际使用下内存
占用情况来决定
(通常的情况是把这两个分区放在s0 与s1 的位置)
/usr Solaris 安装完之后默认是1.5G,/usr 下的/usr/local 子目录也经常用来安装
一些第三方软件,所以仍然有可能增长容量,程序文件存放的空间占很大,但是访问起来并不
是很占IO.所以这个区可以放在比较靠后的slice 中.
/var 日志目录,除了日志的增长,邮件队列也是很耗空间的,也是个吃硬盘的目录
/opt 安装第三方软件的目录,言下之意就是安装oracle 的地方,所以也单分一个区
/export/home 用户主目录文件夹
补充:
1)如果可能的话把/分区与/usr 分区做为系统盘放在一块硬盘上,因为/usr 区的访问量有限,
所以并不会造成IO 访问瓶径.把/var 分区与/opt 分区放在一块硬盘上,并分开做备份
2)在分区的时候cyl 号不能重叠,否则造成overlap,会造成文件丢失.
3)cyl 数字越小,在硬盘上的物理位置越靠外,性能越好,在分区的时候,一定要将忙碌的分区
放在不同的硬盘,并把负载重的分区放在靠外的分区
4)在删除与改变分区容量大小的时候,分区内的数据会完全丢失,所以一定要事先备份
将'/'与'/usr'区放在同两个硬盘上,会造成潜在的危险.
14.format 命令
1) format 命令用于修改位于VTOC 中的分区表
2) 用format 命令所做的修改全部存储于内存中,用label 命令则写入到硬盘上的VTOC 中
3) name 命令(对某个硬盘的分区表进行命名)
save 命令(保存某个硬盘的分区表信息,是保存到当前目录)
用这两个命令将VTOC 中的分区表备份到一个硬盘文件,如/etc/format.dat
select 命令(从/etc/format.dat 文件中读取分区信息)
从硬盘文件中恢复硬盘分区表的信息,但不推荐使用这种方法
4)设置partition 分区时的选项
10
1
tag
无意义
flag
wm 可写可挂
wu 可写不可挂
rm 只读可挂
ru 只读不可挂
cylinders 起始位置
size 大小
15.几种文件系统类型
ufs solaris 的标准文件系统
hsfs cd-rom 用
pcfs 软盘用与FAT32 兼容!
udf 一般用于dvd
使用哪种文件系统取决于操作系统,比如碰到硬盘就用ufs 碰到软盘就用pcfs.
ufs 文件系统
1. ufs 的硬盘结构
disk label(VTOC) 0 sector
(ufs 的VTOC 相当于Windows 的分区表,存放分区信息)
bootblk 1-15 sector
(启动区)
primary superblock 16-31 sector
(存放硬盘中cylinder group 与data block 的数量,data block 的大小,挂载点,硬盘的描述,
文件系统状态等,十分关键,不能损坏,损坏则不能启动系统)
!!(以上32 个sector 在每一块硬盘中只有一份)
!!(以下硬盘空间全部以cylinder group 为单位,并重复这种结构)
backup superblock
(备份superblock,每cylinder group 一个,在cylinder group 的最靠前的位置,由于之前的
各个块使用了0-31 的sector,所以第一个sector 一定在第32 个sector 的位置上)
cylinder group block
inode table
(存放ls –l 除了文件名之外的信息,并指向具体数据块)
11
1
data block
(每一个data block 8Kbytes,即块设备一次能读取的大小)
2.几种文件系统比较
solaris ufs(ext2 与之相似)
aix jfs(ext3 与之相似)
ufs 与jfs 相比
jfs 称为日志文件系统,将操作系统对文件系统进行的操作进行日志.如果系统突然停机,在
重启之后,操作系统会自动执行停机前对文件系统执行的若干个操作,从而达到防止数据丢失
的目的.
ufs 没有日志功能,因此ufs 速度更快,而且因为有fragmentation 这种比data block 更小的
单位存在,所以ufs 无碎片.这里体现出Solaris 更注重性能,而不是稳定的特点.ufs 的缺点
是在不借助其他工具的情况下无法动态修改分区大小.
3.facl 的存储方式
ls –l 显示存在facl 的文件,会出现一个+符号,表示该文件存在facl
文件inode 指向facl 的inode
facl inode 指向的数据块是实际存放的facl 信息
4.文件系统损坏,系统不能正常运行之后用fsck 修复的过程
!!注意:fsck 某个文件系统之前,一定要umount 该文件系统
1) 系统自动修复
2) 打fsck 命令手动修复
fsck /dev/rdsk/c0t0d0s2 –y
-y 表示所有的问题都回答yes ,这里可以节省很多次按y 的时间
3) 手工修复仍然不行,系统应该提示superblock 损坏,则需要从backup superblock 恢复
命令为:fsck -F ufs -o b=32 [需要修复的分区]
4)如果恢复superblock 仍然不行,那就表示系统crash 了,只能重新newfs.
crash 之后产生/var/crash/`hostname`/vmcore.0 文件.可以发给Sun 客服.
5)如果是根分区损坏,需要用光盘重新启动再修复.
12
1
关于系统crash 的原因
一:安装不知名硬件
二:打错内核级补丁
三:对硬件进行非法操作
预防方法
一:打补丁前做备份
二:先拿机器做测试。
5.硬盘设备文件何时用rdsk,dsk
tunefs rdsk
newfs rdsk
fsck rdsk
mount dsk
umount dsk
可以看出几乎只有mount 与umount 命令在使用dsk 块设备
6.关于ufs 预留空间与tunefs 命令
ufs 在每个文件系统上预留10% 的空间
如果分区空间满,但仍有预留空间.会造成普通用户不可以写入,但是管理员仍然可以写入.
比如普通用户不能修改密码,不能打开文件之类的事情.
tunefs 可以用来改变预留空间.
例:
tunefs -m 1 /dev/dsk/c0d1s0
minimum percentage of free space changes from 10% to 1%
7.newfs 新建文件系统
newfs /dev/rdsk/c0t0d0s0
8.Mount 挂载文件系统
mount /dev/dsk/c0d1s0 /disk1
9.关于mount 的几个文件
配置文件/etc/mnttab 存当前挂载信息,动态文件,不可手动编辑.
配置文件/etc/vfstab 启动时自动挂接的文件系统,静态的配置文件.
13
1
在启动过程中是先挂上/区与/usr 区,然后依路径路径寻找vfstab 这个文件,再根据这个文件
挂载其他文件系统.
mount 之后编辑vfstab 文件.日后自动挂载
10.关于手动修改配置文件
1)如果是脚本的话,没有任何限制
2)如果是配置文件的话
不可以用空格,只能用tab 隔开各项
只能用一个tab 隔开,不可以用多个tab 隔开两个值
为了不使配置失效,宁可对不齐,也只能用一个tab
11.vfstab 文件中部分选项的意义
1)fsck pass
-,默认不检查
1,只查一次
2)mount at boot
yes 启动后自动挂接
no 在启动之前就挂接
包括/ ,/usr,因为启动之前就挂接了,否则无法启动!如果填yes 则会挂两次,就会出错,所以
这两个分区一定要选no.
3) mount options(等价于命令中的mount -o options)
-,默认可读可写
其他的mount options
ro read-only
noatime 不记录访问时间
loging/nologing 是否对文件系统进行日志,如果进行日志,在系统当机重启后,系统会根据
日志自动执行关机前对文件系统执行的若干动作,从而防止数据丢失.
12. mountall 读取/etc/vfstab,mount 其中未mount 的文件系统
umountall 根据/etc/vfstab,umount 其中不存在的文件系统
mount 与umount 分区的技巧
1)修改vfstab.
2)umountall.
14
1
3)mountall.
统一干净地管理文件系统
13.umount 卸载一个文件系统
强制卸载一个文件系统的方法,因为绝对不能fsck 一个busy 的文件系统,所以需要强行卸载
改文件系统.
1)umount -f 强制umount 一个系统
2)fuser -cu mount point 检查一个文件系统的用户
fuser -ck mount point 将用户从该文件系统中杀除
fuser -cu mount point 再检查
(如果是用root 直接登陆的,即登陆id 是root,则不能被kick;如果是用普通用户su 成为
root 的,则会被kick,因为登陆id 并非root.说明fuser 根据登陆id kick 用户)
umount mount point 卸载
更推荐使用第二种方法
umountall 卸载所有系统中不在使用的文件系统,至少'/','/usr' 不能被卸载
14.mount 与umount 分区的技巧
1).修改vfstab.
2)umountall.
3)mountall.
统一管理文件系统
15./usr/sbin/vold 管理cd-rom 与fdd
功能
1)自动挂接cd-rom
2)使普通用户也可以访问cd-rom,涉及mount 动作
系统自动存在/cdrom,插入光盘后自动生成/cdrom/cdrom0 目录
使用完之后,用eject 命令弹出光盘
在solaris 中,vold 经常会出现问题.
在'/'目录下操作vold 动作,会比较正常.
如果出现问题的话,重启vold 服务
/etc/init.d/volmgt stop
/etc/init.d/volmgt start
16.各种存储设备的位置
/dev/(r)dsk 硬盘
/dev/rmt 磁带
15
1
/dev/(r)sr0 光驱
17.规定了操作系统默认使用的各种文件系统
/etc/default/fs
/etc/dfs/fstypes
fstyp 查看一个分区的文件系统类型
18.关于fsck
1)不要fsck 一个正在运行的fs.会造成数据损失.
2)fsck 的实质是,检查文件系统中各种数据块的连贯性
3)非法关机后,fsck 修复文件系统,一些inode 与数据块失去连接的文件会被存放到分区根目
录下的lost+found 目录中
4)fsck -y /dev/rdsk/c0t1d0s3 所有的交互回答都选y,可以节省很多时间
5)开机后完整的fsck 修复过程
a)自动fsck
b)手工fsck
c)报superblock 损坏,准备恢复superblock
newfs -N /dev/rdsk/c0t0d0s0 查看该分区有多少个backup superblock
fsck -o b=32 /dev/dsk/c0t0d0s0 从第32 个byte 的位置,恢复superblock
d)如果是'/'分区损坏,是不能进入单用户状态进行fsck 的,需要放入soft1 光盘,进入
mini-root 状态,再进行手工fsck
19.几个查看文件系统的命令
1)df 属于文件系统一级的命令
df -k 查看所有已挂接的文件系统使用情况
df -k . 查看当前所在目录,或者可以指定一个目录
注意:df -k 的硬盘空间数据只可看个大概,并非十分准确
tunefs,文件系统预留空间对df -k 的查看结果造成的影响
a)# df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0d0s1 3597566 1173206 2388385 33% /
b)# tunefs -m 50 /dev/rdsk/c0d0s1
16
1
minimum percentage of free space changes from 1% to 50%
c)# df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0d0s1 3597566 1173206 625577 66% /
2)du 属于文件一级的命令
du -sk 查看一个目录或者文件的大小,以KB 为单位,十分准确
du -k 查看当前目录下所有文件的大小
3)ff
显示该文件系统的所有文件及目录inode 号
同样功能更常用的的命令是ls -i
4)quot
显示文件系统中,各用户占用硬盘空间的情况
quot -f /dev/dsk/c0t0d0s0
查看一个分区
quot -a
-a = report all
进程与计划任务
1.几种查看/控制进程的命令
1)ps -efl
2)prstat
3)/usr/ucb/ps -auwx
4)kill,发送一个信号量给一个进程
kill -l 显示所有的信号量
kill -HUP 重新启动deamon
kill -9 杀死该进程
2.crontab 的使用,循环计划任务
crontab
-l 显示计划任务
-r 取消计划任务
17
1
-e 修改计划任务
1)设置默认编辑器
csh: setenv EDITOR vi
bash,ksh set EDITOR=vi;export EDITO
2)crontab 中的信息格式
分钟小时日月周几命令
数字的格式细节需要注意
分钟:0-59 60 分钟
小时:0-23 24 小时
日:1-31 31 天
月:1-12 12 个月
周几:0-6 7 天
作用,当前5 个条件都满足的时候执行第6 个位置的命令
*的意思表示通配,任何条件都可以.
例子
0 2 * * * ls
每天两点整,执行ls 命令
* * * * * ls
每分钟执行一次ls 命令
0,15,30,45 * * * * ls
每15 分钟执行一次ls 命令
0 8-17 * * * * ls
在8-17 点中,每个整点执行一次.
*/12 * * * * * ls
以除法的形式表示每5 分钟执行一次(只有linux 支持)
3)编辑完之后,在/var/spool/cron/crontabs 中存在以用户名命名的文件,表示当条件符合
时,以该用户的身份运行一个进程.直接改文件内容与用crontab 得到的结果是一样的,但不
推荐直接手动编辑这个文件.
4)cron 命令一般用于
日志记录,文件备份.
18
1
5)cron 动作的权限问题
/etc/cron.d/cron.deny
/etc/cron.d/cron.allow
规则
a)如果两个文件都不存在,默认只有root 可以执行.
b)推荐的设置cron 权限方法,只创建一个cron.allow.默认情况下普通用户没有cron 与at
权限,单独分配需要cron 权限的用户
3.at 的使用,一次性计划任务
1)使用方法
#at 8:45
>cd;touch atfile
ctrl-d 退出
2)查看队列
at -l
atq
3)删除任务
at -r
4)任务文件存放在
/var/spool/cron/atjobs
5)权限文件在
/etc/cron.d/at.allow
/etc/cron.d/at.deny
权限规则与crontab 同
4.cron 与at 执行的任务都是在后台执行的.
Sparc 硬件
1.如果某种配置文件如果找不到,可以去google 上找模版或者范例.或者到doc.sun.com 里查
找各个配置文件的模版与详细解释.
2.sparc 机器的两种非丢失性存储器
1)boot prom
19
2
solaris 的boot prom 相当于pc 的bios,简单称=OBP
prom=programable read-only memory.
其中的内容
power on self test 自检程序
generic device drivers 常见设备驱动
user interface commands ok 状态下用户命令
default prarmeters 启动变量
在ok 状态与一些特殊命令可以修改其中的内容.
2)nvram
其中的内容包括
time of day 日期
ethernet address mac 地址
hostid 主机id,默认为mac 地址的后24 位.
3.sprac 机器分类
1)主流四代
一代sun SPARC 机器4,5,10,20
二代Ultra SPARC 1,2,5,10,30,60,80,220,250,420,450
一位数与二位数的机器一般会做工作站
三位数机器性能比较强,做服务器用
250,450 比较常见
三代Enterprise 3500,4500,10k(中国一年卖8 台,高端产品),15k
现在比较主流的产品
四代SunFire 422,480,3500,4500
2)非主流
Blade 100,200,1000,1500
用于低端产品
Colcalt 停产
Netra 主要用于u1,u2 系列产品
20
2
ok 状态下的命令
1.ok 状态是sprac 特有的交互界面
2.热键stop
1)stop -a 进入ok 状态,在ok 状态下打go,可以回到之前的状态
2)stop -n 将ok 状态下修改的启动变量恢复到缺省值
3)stop -d 进入debug 诊断模式
3.ok 状态下的命令列表
1)显示banner
ok banner 可以看见一些硬件信息
2)关于启动
ok boot 启动系统
参数
ok boot -r 检测新硬件
ok boot -s 启动到单用户状态
ok boot -a 进入交互式单步启动状态,类似于Windows 的F8 启动方式
ok boot cdrom -s 从光盘启动,并且进入单用户状态
ok boot net -install 从网络启动,进行jumpstart 安装
3)关于帮助
ok help 查看命令列表
ok help 关键字显示具体一类命令列表
4)关于启动变量
ok printenv (name) 显示启动变量,全部或某一个.
ok setenv name value 设置启动变量
几个重要的启动变量
boot-device 启动设备顺序
input-device 标准输入设备
output-device 标准输出设备
auto-boot 自动启动,true 比较合理.假设成false,会每次进入ok 状态然后必须敲
boot 才能启动.
diag-switch? 布尔值,false 则使用boot-device 启动.ture 则使用diag-device 启
动.
diag-device 备用诊断设备
security-mode none:不需要密码;full:所有的命令都需要密码;command:除了boot
与go 之外的所有命令都需要密码
security-password 设置密码
21
2
5)重新启动
ok reset 重新启动,但不推荐使用,更推荐使用boot 命令
6)恢复默认值
ok set-defaults 与stop -n 一样的效果,恢复默认值.
7)查看设备
ok probe-scsi(ide) 检测scsi(ide)设备的信息
ok watch-net 检测物理网络设备,这句命令在网络排错时有用
注意:只能在启动开始时进入ok 状态可以使用这条命令,如果在多用户状态下转入,用这条命
令可能会造成死机.
8)关于设备与别名
ok show-devs 显示所有硬件设备
ok devalias 查看设备别名
ok nvalias mydisk /pci@1f,0/pci@1/pci@1/SUNW,isptw0@4/d 设置一个别名
ok nvalias mydisk 后头不跟硬件设备,是删除一个别名的方法.
设备别名作用范围只在于ok 状态下,目的是简写过长的硬件设备名
9)保存信息
ok sync 保存内存中的inode 对应信息到硬盘.
在多用户状态下stop -a 进入ok 状态,会有一定的风险,造成丢失inode 对应信息.用这句命
令将内存inode 对应信息回写硬盘,如果没有用sync 回写,多用户状态进入ok 状态,转而重启
之后会有丢失inode 对应信息,而不能启动的风险.不仅是在ok 状态下,在普通状态中也有这
个命令,但是在ok 状态下系统内存静止,用sync 保存inode 对应信息更加保险.
man page : sync - update the super block
4.一个备份系统的技巧:
将'/','/usr'等分区放在一个硬盘中,然后用另一个硬盘完全备份这块硬盘
如果第一个硬盘损坏,则立即用boot diskn 从备用盘启动.
5.在多用户状态下查看与修改启动变量
eeprom 查看所有启动变量.
eeprom boot-device 查看一个值
eeprom boot-device=disk2 设置一个值
22
2
eeprom auto-boot?=ture 设置一个布尔值
6.ok 状态下的任何命令都是在OBP 中进行的,与disk 毫无关系,所以在资源耗尽的时候也是
可以进入ok 状态的.进入ok 状态后,系统所有当前进行全部停止,但是打go 回来之后,所有进
程照样运行.比如当前的telnet 连接会立即中断,但是用go 恢复之后,当前telnet 连接继续
生效.
启动过程
1.who -r 显示当前运行级别
2.Solaris 启动过程
1)boot PORM phase PORM 中的启动过程
a)PROM runs POST 自检
b)boot locates boot-device 选择启动设备
c)boot reads boot-device's bootblk 读取启动设备的boot block
2)boot programes phase
a)bootblk loads secondary boot program (ufsboot)
b)ufsboot loads kernel (32bit or 64bit) 读取内核文件
32 位机器读取位于/platform/`uname -m`/kernel
64 位机器读取位于/platform/`uname -m`/kernel/sparcv9
3)Kernel Initalization phase 内核初始化
a)kernel initalizes itself and load modules 载入其他内核模块
b)read configureaton file /etc/system 执行/etc/system
这个文件中保存系统环境设置,OS 内核一级的环境变量,在系统调优时可能会用到设置这
里的变量.重启之后才能启动.修改这个文件危险性比较大.尽量不要改动.
4)init phase
a)kernel start /etc/init 执行init 这个程序
b)init start rc scripts 依次执行rc 脚本
3.人数,企业规模,应用
50 人,200 人,500 人(大型系统),3000 人(需要做集群)
4.unix 内核文件
1)/kernel/genunix 所有把本solaris 通性
23
2
2)unix 当前版本solaris 特性
32 位与64 位内核的放置位置不同
32-bit
/platform/`uname -m`/kernel/unix
64-bit
/platform/`uname -m`/kernel/sparcv9/unix
其他内核模块
/kernel
/usr/kernel
/platform/`uname -m`/kernel/
/platform/`uname -i`/kernel/
5.init 启动过程
调用过程:init 执行-->读取inittab-->依次执行/sbin/rc*-->调用读取/etc/rc*.d 中的脚

1)/etc/inittab 中各项的解释.
id 运行级别状态命令位置
运行级别在哪一级别运行
状态
sysinit 在inittab 中的其他内容之前执行
wait 在当前进程完成后才运行下一个进程
respawn 该进程被杀后自动重新启动
powerfail 接受到关机信号后执行
initdefault 默认启动级别
6.关于/etc/rc*.d 中的启动脚本
1)/etc/rc*.d 中的脚本都是/etc/init.d 中脚本的连接文件
/etc/init 中的脚本文件分2 段,start 部分和stop 部分.在$1 为start 与stop 时执行的不
同段落
每一个init.d 中的脚本,在rc*.d 中只有一个S 脚本与一个K 脚本
在启动的时候,系统按inittab 依次执行rc*.d
24
2
2)/etc/rc*.d 中的脚本
以S 开头执行脚本start 部分
以K 开始执行脚本stop 部分
3)S 与K 后数字的执行顺序,按数字越小先执行,越大后执行
技巧:如果在启动过程中不想让S80lp 启动,就改成s80lp.改成小写使进程失效,而且可以不
使自己忘记.
7.安装一个新的启动脚本过程
1)先在/etc/init.d 目录放置脚本的原文件
a)先创建一个/etc/init.d/file
b)chmod 744
c)chown root:sys file
2)在/etc/rc*.d/下制作连接文件
a)ln /etc/init.d/file /etc/rc2.d/S25file
b)ln /etc/init.d/file /etc/rc0.d/K0file
8.转换启动级别的命令
1)init * 读取rc*.d,干净地转换到*级别
2)shutdown 一个强大的脚本命令
a)shutdown -in 转换到n 级别
shutdown 如果不加-i 参数的话,默认转换级别到1
b)shutdown -g 60 60 秒后执行
c)shutdown !!!!! 在关机前发送!!!!!信息
d)shutdown -y 自动回答任何问题为y.
例子:shutdown -y -i 0 -g 300 System will be down!!
3)reboot
4)halt
5)poweroff
更推荐使用init 与shutdown,会执行rc*.d,更加稳定,不会造成数据丢失.
不推荐使用reboot 与halt,不执行rc*.d,可能会造成数据丢失.
启动级别
0,S,s 安全地关闭系统并切换到ok 状态
1 单用户,只有root 可以登陆
25
2
2 作为client 身份的多用户状态
3 作为server 身份的多用户状态
4 保留
5 关闭电源
6 切换到级别0,然后再切换回多用户状态
在一个用户重多的机器上关机
1)事先用邮件通知用户停机信息
2)用wall 通知用户停机信息
3)用fuser 杀除没有反映的用户
4)sync;sync
5)一条完善的shutdown 命令
安装系统,补丁,软件包
1.安装前的预备知识
1)Solaris 按CPU 分类,分SPARC 与Inter 芯片两种版本
支持Inter 芯片的主流Unix,主要是Solaris,Linux
2)内存
需要128 以上,厂商推荐64,但肯定不够用.
3)硬盘空间
自己用vmware 装完是1.7G
厂商推荐2.3G
实际规划最好是4.6G 以上
5)Solaris 版本信息,如03/01 表示三月一日更新版本.
6)Solaris 安装盘
a)Install 安装盘,构成webstart 图形界面.
b)Software1 软件1
c)Software2 软件2
d)Language 语言盘,有亚洲与东欧两张
e)Documentation 文档盘,是一个网页形式的Answerbook,不推荐使用(man page 在前三张中)
f)Supplements 附件盘
一共七张,前三张是必须的.
7)软件单位
Software Packages 是安装的最小单位
26
2
Software Cluster 若干个功能类似的Software Packages 组成一个Software
Cluster
Cluster Configuration 若干个功能类似的Software Cluster 组成一个Cluster
Configuration
Packages 的明明
SUNW 开头,Sun 公司开发的Package.
非SUNW 开头的,可能是第三方公司开发的.
8)Install 与Software1 CD
放入Install boot cdrom 进行安装
放入Software1 boot cdrom 进入mini-root
2.安装时需要注意的选项
1)Cluster Configuartion 安装方式,在安装的时候可以选择
Core Solaris Software Group - SUNWCreq 最小化的Unix
End User Solaris - SUNWCusr 用户
Developer - SUNWCprog 程序员
Entire Solaris Software Group - SUNWCall 完全安装
Entire Solaris Software Group Plus OEM - SUNWXall 企业版
推荐使用完全安装
2)Power Management Dialog Box 省电选项
缺省是On,如果是On 的话,若干时间没人用时,会自动关机省电.
应该选成Off,选择不省电,一直开着.
3)关于安装的时间
安装系统的时间要尽量短,所以只选择nstall,SW1,SW2 三张盘进行安装,其他的在系统完成
后再加.
4)关于升级安装
如果旧系统中仍然有重要数据,应该如何安装新系统
最推荐a)安装前做规划将系统盘和数据盘分在两个硬盘,重装时不用备份数据.
推荐b)全新安装将重要文件复制出来,然后重新安装.
不推荐C)升级安装不推荐使用系统自带的升级安装
5)用来安装系统的硬盘并不是越大越好,而是越多越好.
1)数据分配平均
2)IO 负载平衡
27
2
6)安装时对原先的硬盘重新分区,原数据彻底不存在.
3.关于软件包
1)pkgadd 安装包
pkgadd -d /cdrom/cdrom0/s0/Solaris_8/Product SUNWaudio 安装某个目录中的某个包
(路径名与包名需要分开写,并且一定要指定路径)
2)pkgrm 删除包
pkgrm SUNWaudio
3)pkginfo 查看包信息
pkginfo | more 不加参数默认查看已经安装的所有包的信息
pkginfo -l SUNWman 查看一个包的具体信息
pkginfo -d /cdrom/cdrom0/Solaris_8/Product | more 查看一个目录中所有包的情况
4)pkgchk 检查包的安装情况
pkgchk SUNWman 查看一个包是否已经安装
pkgchk -v SUNWman 查看一个包里有哪些文件
pkgchk -p /etc/passwd 检查这个文件属于哪个包,如果报错,就说明文
件已经修改过,与cd 中的不同
pkgchk -l -p /etc/passwd 查看一个文件的具体信息
5)/var/sadm/install/contents 相当于安装的日志文件
每安装一个文件,会增加一条记录
每删除一个文件,会删除一条记录
pkgadd 与pkgrm 都通过这个文件来进行工作
每一个文件占据一行的记录,安装的所有文件在次都有记录,但是不要进行手工编辑,否则会
出现错误.
4.关于patch
1)安装与删除patch
patchadd patchname
patchrm patchname
2)patch 信息
28
2
/var/sadm/patch 目录里都是安装patch 的信息,安装与删除都是依靠这里的信息,不要手动
修改这个目录.
showrev -p 查看已经安装的patch 情况,每一行是一个patch.
3)sun 发布补丁的站点
http or
ftp://sunsolve.sun.com
补丁命名方式
101945-02 patch base code - revision number
patch 类型号- 更新号
4)Recommended.zip
补丁集合包,类似于sp 之类的补丁大全.主流机型可以使用,非主流机型注意不要使用这个包.
不推荐使用,因为有不需要的,可能会占用不必要的资源.更加推荐一个一个地打补丁.
5)打补丁的过程
a)先阅读补丁的readme,充分了解补丁的作用以及是否需要重新启动
b)先在测试机上装补丁,成功之后再在运行机上安装.
c)如果是应用一级的补丁,先停止相应服务,安装补丁,然后重启服务即可
d)如果是安装内核一级的补丁,要先进行系统备份,装完之后要尽快重新启动
6)unix 的patch 速度没有windows 快,基本上以月为单位.
7)安装补丁的技巧
a)付费用户可以使用软件patchdiag 来检查当前系统需要更新的补丁.
b)如果补丁多的话,可以考虑写脚本来进行补丁安装.
5.几个推荐的站点
关于solaris 下的第三方软件
www.sunfreeware.com
sun 系统管理员站点
ww.sun.com/bigadmin
sun 的官方文档站点
docs.sun.com
29
3
备份与恢复
1.tar 命令
1)应用场合:
tar 是一个打包命令,在ftp 时,ftp 不能传输一个目录,而在一个目录中有若干不同属性的文
件,比如目录,文本,可执行文件,不可以用同一种模式传输.所以打包成tar 文件,然后用
binny 传输方式.
2)tar 命令与其他压缩命令的比较.
a)tar 可以打包整个文件系统,目录.而其他压缩命令只能压缩一个文件.
b)tar 不带压缩功能,大小一般比原文件大一点,因为在头处保留了被打包目录,文件的信息.
c)tar 相当于cp,tar 之后,原文件仍存在
zip/gzip/commpress 相当于mv,zip 之后,原文件不存在
3)具体使用以及参数解释
tar cvf abc.tar dir 打包一个目录
tar tvf abc.tar 查看一个包
tar xvf abc.tar 解压一个包
参数介绍
c-建立新文档
v-显示路径
t-显示文件列表
f-指定设备
x-抽取文件
i-交互式
注意:tar 参数没有'-'号
4)一个常见使用tar 与gzip/gunzip 命令压缩与解压缩过程.
a)tar cvf abc.tar abc
b)gzip abc.tar
c)gunzip abc.tar.gz
d)tar xvf abc.tar
30
3
因为tar 命令不能压缩大小,而gzip 命令不能打包目录,所以他们经常结合使用
5)tar 打包与解包的路径
a)相对路径:在当前路径打包,并且在当前路径解压
b)绝对路径:根据打包时的绝对路径,解压时释放到同样的绝对路径.
5)几个tar 的例子
一次解压
zcat(gzcat) 104040-01.tar.Z | tar xvf -
zcat 相当与(uncompress;cat),显示zip 中的内容.由于tar 与cat 的输入输出是线性的,所
以通过管道来连接他们执行.
最后的- ,代表从管道接受的信息.
目录复制
tar cvf - olddir|(cd newdir;tar xvf -)
2.常见的压缩命令与压缩文件格式
.gz gzip
.Z compress/uncompress
.zip zip/unzip
压缩比基本为2:1
win 版本的zip 与unix 版本的zip 会有不兼容的事情
win 下的文件文件传到unix 上,\n 字符会出错,用dos2unix 命令来进行转换.
3.备份的原因:
1)文件备份
一般一天一次(频繁),而且一般放在晚上作,因为考虑硬盘IO.
2)硬盘寿命
硬盘正常使用时间为三万小时,即三年,运行三年之后出的问题就会很多!这个因素会造成备
份的压力.对于使用三年以上的硬盘,要经常备份.
3)升级与安装系统.
4)系统崩溃
5)黑客攻击,非法登陆
6)Natural disasers 自然损坏!
4.备份的分类
31
3
按方式分
1)异地备份
2)磁带备份,要放在不同的地点,并且加锁
按级别分
1)sys 系统一级的故障,一般恢复整个分区
2)usr 用户一级的故障,一般用交互式命令恢复一个文件
5.备份设备
1)使用磁带的原因:光盘太慢,硬盘太贵而且不稳定
2)磁带机设备
a)推荐的磁带机品牌:DLT(Quantun 公司),HP(为DLT 的oem 产品),价格高,性能也高
普通磁带机备份成功率70%,但是DLT 的产品成功率高.如果使用增量备份的话,恢复时失败的
几率会成倍增加,所以要选择成功率高的设备.
b)磁带分类
8-mm 40G 50rmb 左右大小相当于录音带别名:Exabyte(I,II,III)
4-mm 20G 70rmb 左右大小相当于小型录音带别名:DDS(DDS-3,DDS-4) 同
样是8-mm,在不同的时代,容量会有不同.
购买磁带机时,注意向下兼容.
3)磁带机的工作过程:把所有的磁带都卷入磁带机中,然后开始写读数据.磁带机是硬件压缩,
失真比率不大,速度也不慢.磁带能备份的容量大小取决于磁带机与磁带两者的较小值,同一
种磁带能有不同的备份大小.
4)指定磁带机的设备名,决定工作方式
/dev/rmt/#hn
# 数字,代表不同的磁带机机器.
h 密度,h 不压缩.c 压缩,压缩比率大概是2:1
n no-rewind,不倒带.如果不写n 的话,备份完之后会自动倒回来.
例子
0 备份到第一个磁带
0c 备份并压缩到第一张磁带
0cn 备份并压缩到第一张磁带并且备份完之后不倒带
6.用ufsdump 命令备份文件系统
32
3
ufsdump solaris 专用的命令
例子:#ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t0d0s0
备份c0t0d0s0 到磁带中
参数解释
0-9 备份的级别
v 显示详细信息
u 检查并更新/etc/dumpdates,增量备份是依靠这个文件来了解备份历史的.
f 指定一个设备
常见的参数是0uf
在有信任关系的前提下,可以备份到远端
#ufsdump 0uf /dev/rmt0 /export/home 本地
#ufsdump 0uf host2:/dev/rmt0 /export/home 远端
用ufsdump 备份一个8G 空间4G 容量的文件系统,镜像有4G 大,而不是8G 大.
7.用ufsrestore 命令恢复文件系统
1)#ufsrestore rf /dev/rmt/0 /
默认是恢复到指定目录下,如果没有目的目录则默认恢复到当前目录
2)参数
i ----交互模式
r ----递归恢复,适用于恢复一个0 级别dump 的完整文件系统.
t ----显示文件列表
x ----只恢复在命令中指定的文件
f ----指定设备
v ----显示详细信息
3)ufsdump 与ufsrestore 同样可以在mkfile 制作的文件上进行
4)ufsrestore ivf /dev/rmt/0
进入交互模式,常用于恢复若干个文件
a)ls,cd,pwd
b)add x y 给x,y 文件做记录.等会进行恢复
c)delete x 取消x 的记录
d)extarct 恢复y
5)关于ufsdump/ufsrestore 的几点知识
a)在ufsdump 的标准输出中,可以看见一个基准时间,系统在这个基准时间建立一个filelist,
33
3
并根据这个filelist 进行备份.在该时间基准之后进行的删除操作会对备份产生影响,但添
加文件对备份并不会产生影响.
b)ufsrestore 恢复时,不会删除系统中新增的文件,但是会覆盖同名的文件.
c)ufsrestore 一般分两种情况
一:用户丢失文件,用交互状态恢复若干个文件
二:硬盘或分区损坏,恢复整个硬盘或分区
8.用mt 命令控制磁带机
mt -f /dev/rmt/0n status 查看磁带机信息
mt -f /dev/rmt/0n rewind 倒带,回到第一个位置
mt -f /dev/rmt/0n offline 卸带,准备取出磁带
mt -f /dev/rmt/0n fsf 磁带向前进一个位置
mt -f /dev/rmt/0n bsf 磁带向后退一个位置
mt -f /dev/rmt/0n unload 相当于rewind,offline,eject 同时操作
如果备份到
/dev/rmt/0h 备份完,自动倒带
/dev/rmt/0hn 备份完,不倒带,可以继续使用
但在磁带刚放入的时候,肯定是先读取第一段数据
注意:mt 命令与ufsrestore 以及ufsdump 毫无关系
实际情况:
a)一次备份若干个文件到/dev/rmt/0hn,不倒带,从而下次还可以备份,实现一张磁带多段备

b)做好磁带的标签,便于自己了解情况
c)磁带中的剩余空间不能用命令查看,只能自己根据标签计算
9.一个复杂的例子,恢复根区.
1)boot cdrom -s 光盘启动mini-root
2)newfs /dev/rdsk/c0t0d0s0 清空根分区
3)mount /dev/dsk/c0t0d0s0 /a
cd /a
4)ufsrestore rf /dev/rmt/0
5)rm restoresymtabel 该文件是restore 的日志,无用,安装完之后应该删
除.
6)cd /usr/platfore/`uname -m`/lib/fs/ufs
installboot bootblk /dev/rdsk/c0t0d0s0 安装一个bootblock
7)cd /
umount /a 卸载
8)fsck /dev/rdsk/c0t0d0s0 检查
9)init 6 重启
10)ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t0d0s0 赶紧再备份一次
34
3
关于光盘启动的mini-root
在mini-root 的配置文件存在于光盘中,因为无法修改,所以无法启动网络功能.
同样在mini-root 下无法做ufsdump 动作,报无法创建/etc/dumpdates 文件
10.备份策略
1)完全备份
备份过程
1am 备份/dev/rdsk/c0t0d0s7
| 1)先对该文件系统的所有文件做一个list
|
| 2)开始备份文件
|
| 3)增加了一个文件(因为不在list 中,所以不被备份)
|
| 4)删除了一个文件(因为在list 中有,但是找不到,所以也不被备份)
|
| 5)备份完成
4am
2)增量备份
备份的级别
0 是完全备份
1-9 是增量备份
日期1 2 3 4 5
级别0 1 2 3 4
如果级别是4,那就找第一个比他小的那个级别,检查在那个时间点上的所有文件有否更新,
并且备份.
假如每天都备份前一天更新的文件,如果要完全恢复的话,就需要读取若干个磁带,直到完全
备份那天为止.
在对增量备份进行恢复的时候,会需要若干张磁带,如果一张磁带损坏,则恢复失败.所以在这
种情况下,磁带的质量不好,失败的几率会相乘增加.
35
3
3)差分备份
日期1 2 3 4 5
级别0 3 3 3 3
周一完全备份,周二至周五每日都是同一脊背的增量备份
每天都与周一的文件列表比较,备份从周一以来改变的文件,这样每天要备份的量会逐天增
大.
4)其他备份的心得
a)如果每天都是完全备份,当然是最理想的情况.
b)一张磁带可以只备份一次,也可以备份多次.
但工作的关键在于在磁带上要有详细的标签,越详细越好,比如备份是用ufsdump 做的,还是
用tar 做的.
c)做磁盘镜像,防止设备一级的错误.
做磁带备份,防止用户一级的错误.
d)tar 一般对文件,目录一级的单位进行备份
ufsdump/restore 则是对文件系统,设备一级的单位进行备份.
4)冷备份与热备份
不管是tar 还是ufsdump/restore 都可以在热状态与冷状态下进行,在冷状态进行备份与恢
复更安全,但是实际工作中更多的是在热状态下进行备份与恢复.
36


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3435/showart_105067.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP