免费注册 查看新帖 |

Chinaunix

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

昨天晚上看完了238,贴一贴笔记 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-04 08:47 |只看该作者 |倒序浏览
记得很乱,只当是灌水了,各位多指正

pwck:用来检查密码的连续性
grpck:用来检查组中的每一个项

http://www.boson.loitschix.com/solaris_1/806-0624.pdf


控制远程访问
用户主目录/.rhosts
/etc/hosts.equiv
/etc/ftpd/ftpusers

配置进程优先级
nice
priocntl

uptime
显示当前用户何时登录系统,持续多长时间

volcheck
当需要使用软盘的时候,将软盘放入软驱再运行以上命令,则软盘被自动mount

当需要mount软盘的时候使用以下命令
mount -F pcfs /dev/diskette /mountpoint

pwconv命令
根据/etc/passwd更新/etc/shadow

#touch /var/adm/loginlog
当5次错误的登录尝试过后,会在以上文件中留下登录失败日志条目,条目包含“用户名、TTY设备、时间”

who 命令可以显示当前登录到系统的用户
该命令从/var/adm/utmpx文件中读取信息
另外 rusers 命令可以向lan中发广播包,得知远程机器上的当前用户。

使用su命令切换用户时
who am i  显示原用户名
whoami    显示su用户名

prtconf
显示系统的配置信息,不管设备是否已经加载都会显示出来


unix的文件系统
四种基于磁盘的文件系统:
ufs    unix file system
pcfs   PC file system
hsfs   high sierra file system
udf    universal disk format(dvd)

pseudo文件系统
tmpfs 内存中的文件系统
swapfs  kernel使用该文件系统管理硬盘上的swap分区
fdfs    (file decriptor file system)用文件描述符为打开的文件创建一个易于识别的名称如/dev/fd/0
procfs   该文件系统包含一个活动进程信息的列表,可供“ps”这种命令察看

分布式文件系统
nfs


几种自动mount的方法
1:/etc/vfstab:加入要mount的文件系统项,并把mount at boot列设为yes,该文件系统将在系统启动的时候自动mount。
2:/usr/sbin/mountall
该命令将读取/etc/vfstab文件,将该文件中有的并且mount at boot列设为yes的文件系统全部手工mount上。/usr/sbin/mountall -l 将只mount本地的文件系统。

卸载busy的文件系统
文件系统busy通常会因为几种情况造成:一个程序正在访问文件系统中的一个目录;一个用户正处在mount point目录中;一个程序在文件系统中打开了一个文件,或者文件系统正在被共享。
1. fuser命令
列出所有访问文件系统的进程,并且在需要时kill这些进程
如 fuser -cu mount_point:列出正在访问mount_point的所有用户
fuser -ck mountpoint :杀掉mount_point上活动的进程
2. umount -f命令
强行unmount文件系统


查看文件系统的使用情况
1. df
查看文件系统的空间情况。
如 df -k [dir]
2. du
查看每个目录包括子目录和文件所占用的空间大小。
-k 以Kbyte显示
-s 以512字节的块为单位显示总共占用空间的大小
-a 显示某分区下所有文件和目录占用块的数量
3. ff
显示某个分区内每一个pathname和与之对应的inode号。
4. quot
显示某个分区内正在被使用的空间以及使用空间的用户。
-a 所有已mount文件系统的报告。
-f 包括文件的数量。


在启动失败的情况下修复重要文件的方法
在重要文件如/etc/vfstab损坏的情况下,系统可能会启动失败,为了修复该文件,我们可以利用fsck等命令在单用户模式中修复文件从而解决系统不能启动的问题。
1. 放入sol光盘之software v1,用光盘启动并进入单用户维护模式,在ok提示符下输入:
ok boot cdrom -s
2. fsck /dev/rdsk/c0d0s0
使用fsck检查并修复/分区
3. 如果fsck pass,则
# mkdir /a
# mount /dev/dsk/c0d0s0 /a
4. 设置TERM环境变量以能使用vi编辑器
# TERM=sun
# export TERM
5. 编辑和修改/etc/vfstab文件
# vi /etc/vfstab
:wq
6. 卸载/a
# cd /
# umount /a
7. 重启系统


查看进程
有两种方法可以查看当前系统中正在运行的进程
1. cde图形界面的进程管理器
Tools菜单--〉Find Process 或
#/usr/dt/bin/sdtprocess &
都可以启动cde的进程管理器
2. 使用命令
prtstat


sceduled任务
计划任务可以通过两种方法来实现
1. crontab命令
crontab命令可以指定一个任务在某个时间段或相隔多少天时重复运行。
通过修改/var/spool/cron/crontabs/用户名文件可以制定任务计划
参数:-l [username] 查看某用户的crontab文件
      -e [username] 编辑某用户的crontab文件
      -r [username] 删除某用户的crontab文件

crontab的访问控制
crontab的访问控制通过两个文件来制定
/etc/cron.d/cron.deny
/etc/cron.d/cron.allow
这两个文件控制有哪些用户可以创建,修改和删除他们的crontab文件,默认情况下cron.deny存在,在此文件中出现的用户将被拒绝访问crontab文件,
总的来说,有三种情况可能出现:
--cron.allow文件存在,则只有此文件中列出的用户可以访问crontab文件。
--cron.allow文件不存在,则所有用户除了cron.deny中列出的用户以外都可以访问crontab文件。
--如果两个文件都不存在,则只有root用户可以访问crontab文件。

2. at命令
at [-m] [-r job] [-q queuename] [-t time] [date]
参数:-t time   命令运行的时间,包含以下格式:h, hh, hh:mm   now   noon   midnight
      -date     命令运行的日期,month day   ; today  ; tomorrow
      -r        将一个scheduled at任务从队列中移除。
      -q queuename   制定一个队列
      -m        在任务完成后发一封mail,默认发给root用户
使用范例:
#at 22:00
at>;/usr/bin/banner "love canty" >; /dev/console
at>;^D
该命令将在22:00执行一次。
at命令的配置保存在/var/spool/cron/atjobs

控制at命令的访问
同crontab命令一样,at命令也有at.deny和at.allow文件控制at配置文件的访问控制。



OpenBoot PROM内容
--每台sun服务器内部都有一个叫boot prom的,8Kb的芯片同cpu在一个系统板上。
--boot prom的主要作用是测试系统硬件和引导系统。boot prom不理解文件和文件系统,它主要针对硬件。
--现在有三个boot prom的有效版本,分别是:
1.x  原SPARC的boot prom
2.x  第一个open boot prom(OBP)
3.x  加入了flash升级的特性,这意味着可以通过升级3.x的firmware来升级bootprom。

NVRAM组件
--NVRAM组件也是sun system中的一个重要组件,它是一个8kb的非易失性随机访问芯片,通常是一个可插在主系统板上的芯片。
--NVRAM有一个电池电路,保存:ethernet address;host id;Time-of-day(TOD)
--NVRAM模块中还包含一个EEPROM芯片,该芯片的作用是保存用户针对boot prom缺省设置所作的修改。
--NVRAM还将保存用户接口命令和设备别名。
注:NVRAM是一个黄色带条码的方棒状芯片,很多软件的license都是基于NVRAM中保存的host id,如果芯片坏掉,SUN会更换一个保存相同host id和ethernet address的芯片给用户。

POST自检
--POST代码存储在boot prom中,负责检查系统硬件的基本功能。

控制POST过程
--stop+d 可以进入到诊断模式,stop+d可以把“diag-switch”变量设为true,并强制系统从诊断设备启动。
--stop+n 可以恢复NVRAM初始值
--stop+a 在系统启动之初按stop+a可以到ok提示符下。

基本boot prom命令
--ok banner
banner命令可以显示:模块名称、内存数量,host id、ethernet address和bootprom版本号。

--ok boot
指定从何种设备启动,如“ok boot cdrom”从cdrom启动。
参数:-s 启动到单用户模式
      -a 交互式启动,启动过程中提供选项,可以选择启动其他的kernel,文件系统等
      -r 当增加了新设备,并touch /etc/configure文件,使用boot -r可以让系统在启动的时候搜索新设备。如果找到了新设备,系统在/dev,/devices中增加设备文件,并在/etc/path_to_inst文件中增加新设备的条目。
      -V 显示设备的细节信息。

ok help
会显示boot prom firmware的帮助条目,也可以显示某项的细节,用ok help line等命令。

ok printenv
列出NVRAM的所有参数,缺省的和修改过的参数会分别显示出来。

ok setenv
设置NVRAM的参数。

ok reset
如果auto-boot设置为true,重启系统。
如果auto-boot设置为fause,重新显示ok提示符。

ok set-defaults
将NVRAM中的参数恢复为默认值。

ok probe-ide
寻找ide控制器上的硬盘或光驱。

ok probe-scsi
寻找scsi控制器上的硬盘或光驱。

ok probe-scsi-all
寻找到所有scsi总线上的设备。

设备树
--openboot prom 的firmware会在POST的时候收集硬件的信息并依据信息建立设备树,设备树会在启动时被kernel导入内存用来标示硬件。(见450页图)
设备树里的每一个节点都表示一个硬件设备,通常情况下,node和子节点的关系用来表示总线和总线上的控制器的关系。

--在ok提示符下使用命令
show-devs可以显示设备树

--disk device path举例
ide设备
/pci@1f,0/pci@1.1/ide@3/dad@0,0
/pci@1f,0/pci@1.1/ide@3   代表总线设备和控制器
/dad@0,0   其中dad代表设备类型,0代表ide地址,0代表disk number

--定义系统启动设备
首先确定启动设备的别名
ok devalias
在随后出现的列表中找到要指定的启动设备,并确认该设备被分配的别名。
ok setenv boot-device 设备别名
指定缺省的启动设备。

--创建和删除设备的别名
创建
ok nvalias 别名 设备路径
删除
ok nvunalias 别名

--编辑NVRAMRC命令
ok nvedit

--在os运行时使用eeprom命令察看或修改NVRAM参数
eeprom 要修改的参数名 参数值


--中断停止响应的系统
1. 尝试使用远程登录到系统上,杀死停止相应的进程。
2. 尝试重新启动。
3. 按下stop+a到ok提示符下。
4. 在ok提示符下使用 sync 命令手工同步文件系统。


系统启动进程
--运行级
0     关机,显示ok提示符,可以安全关闭电源。
s/S   单用户模式,mount所有的文件系统。
1     管理员单用户模式,管理员可以访问所有有效的文件系统。
2     多用户模式,所有的服务除了NFS server进程外全都启动。
3     完全的多用户模式,所有服务启动,是/etc/inittab中缺省的运行级。
4     不支持
5     关闭系统并断电
6     关闭系统,切换到 level 0,并重新启动到 level 3 或者/etc/inittab中指定的level。

--确定当前系统的运行级
who -r命令

--boot过程
sol整个启动过程分为四个部分
1. Boot prom
post
boot决定启动设备
boot在启动设备上定位boot block
boot把找到的boot block读入内存
2. boot程序
bootblk会加载第二boot程序:ufsboot到内存中。
ufsboot会加载两部分内核:genunix和unix到内存。
3. kernel初始化
kernel使用ufsboot读取文件,加载mount / 文件系统需要的模块。
kernel会从/etc/system中读取自身的配置文件。
kernel启动/sbin/init进程
4. init
init会运行rc脚本,启动服务,当init完成,系统提示符出现。

--/etc/inittab文件
inittab文件有三部分item
1. 指定系统缺省运行级。
2. 启动哪些进程,监视并在它终止的时候重启它。
3. 当系统切换到其他运行级的时候采取什么行动。

inittab文件中每一行都是四部分组成
s3:3:wait:/sbin/rc3
s3是 id ,为条目定义的1到4字符识别名
3是rstate, 条目允许的一个或多个运行级
wait是action,将如何执行进程。
/sbin/rc3是process,可执行的脚本或命令。

几个可能的action键值
initdefault:标志缺省的运行级,缺省的值是3
sysinit:在init尝试访问console之前运行的进程,如console登录提示符,在该进程完成之前,init不会继续读取inittab文件。
wait:启动进程,在该进程启动完成后,init继续读取inittab的下一条目。
respawn:挂掉的进程,init会重启它。
powerfail:init收到一个电源失败时启动的进程。


运行控制脚本
/sbin/rc#
solaris针对不同运行级下启动和停止进程创建了一系列rc script脚本,这些脚本保存在/sbin下,以rc0至rcS命名。

/etc/rc#.d目录
每一个/sbin/rc#脚本都有一个与之相对应的/etc/rc#.d目录,该目录中包含启动和停止针对该运行级的附加进程的脚本。

rc#.d目录中脚本分为两类
S开头的是启动进程的脚本。[S][0-9][0-9]*
K开头的是终止进程的脚本。[K][0-9][0-9]*
注意,脚本名只能以大写S或大写K开头,要禁用脚本的话,将S或K改为小写是个好办法。

--/etc/init.d目录
运行控制脚本通常保存/etc/init.d目录中,然后被连接到/etc/rc#.d目录。之所以保存单独的脚本到这个目录,是因为这样做有一个好处,就是可以单独启动或终止一个进程,而不需要改变系统的运行级别。如:
#/etc/init.d/lp start
#/etc/init.d/lp stop

--创建新的运行脚本
创建新的运行脚本的一般步骤如下
1. 在/etc/init.d目录下创建脚本文件,修改文件权限和所有者。
# vi /etc/init.d/filename
# chmod 0744 /etc/init.d/filename
# chown root:sys /etc/init.d/filename
2. 创建到/etc/rc#.d的硬链接,分别以S和K开头,代表启动和终止
# cd /etc/init.d
# ln filename /etc/rc#.d/S##filename
# ln filename /etc/rc#.d/K##filename
3. 确认文件已经创建
# ls /etc/init.d /etc/rc#.d /etc/rc#.d
4. 测试脚本
# /etc/init.d/filename start


系统shutdown过程
--solaris需要一个有顺序的关机过程,需要完成终止进程、把内存中的数据写到硬盘上和unmount文件系统等任务。

--solaris的关机命令
1. /sbin/init

2. /usr/sbin/shutdown
shutdown -y -g0 -iS
-y 在随后的确认中自动输入“yes”。
-g0 关机之前留下多少时间给用户保存他们的工作。
-iS 指定init的级别,默认是S。

3. /usr/sbin/halt
快速shutdown系统,不运行rc0脚本,也不提醒用户。

4. /usr/sbin/poweroff
快速关闭系统和切断电源,不运行rc0脚本,不提醒用户,没有延迟。

5. /usr/sbin/reboot
快速关闭系统,并且切换到init 3运行级,和rc6脚本不同的是它不运行rc0的kill脚本,也不提醒用户。


管理软件包(software packet)
--software packet
软件包中包含
1. 包的描述文件,需要的硬盘空间。
2. 软件的实际文件。
3. 添加或移除软件所使用的脚本。

--管理软件包的命令
1. pkgadd
pkgadd [ -d [device | pathname ] ] pkg_name
2. pkgrm
pkgrm pkg_name
3. pkginfo
pkginfo [ -d [device | pathname ] ] [ -l ] pkg_name
-d 指定要查看的包的路径。
-l 显示包的所有有效信息。
4. pkgchk
pkgchk [ option ] [-p path...] [pkg_name]
option
-v 列出某安装包中的文件。
-p 显示包的当前内容和安装时内容的比较。

--管理软件包的图形工具
admintool

--/var/sadm/install/contents文件
contents文件中包含已安装的所有包的完全记录,当增加或移除包的时候,pkgadd和pkgrm命令都会更新contents文件。

--使用一个spool目录
对于需要频繁安装的软件,可以将之从cdrom上copy到硬盘的一个spool目录里,缺省情况下,pkgadd命令会从 /var/spool/pkg 目录中寻找安装包。

-拷贝软件盘到spool目录可以使用以下命令:
# pkgadd -d /cdrom/cdrom0/s0/Solaris_8/Product -s spool SUNWaudio
参数“-s spool”就是把SUNWaudio包拷贝到缺省的spool目录/var/spool/pkg
-也可以指定不同的目录作为spool
# pkgadd -d /cdrom/cdrom0/s0/Solaris_8/Product -s /export/pkgs SUNWaudio
在这个例子里,包将会被拷贝到/export/pkgs里

-从spool中移除包
# pkgrm -s spool SUNWaudio
# pkgrm -s /exports/pkgs SUNWaudio


patch管理
--patch包含更新的文件和目录
--每个patch都有一个唯一的patch号,patch号由一个base code和一个revision code组成,如:101945-02

patch发布
--internet发布
sun的patch发布ftp站
sunsolve.sun.com
--cdrom
SUN的客户可以请求patch光盘,6到8周发布一次。

下载patch
ftp sunsolve.sun.com
bin
get

查看系统已安装的patch包
--/var/sadm/patch目录
ls /var/sadm/patch
可以看到已安装的patch的号。

patch格式
--7,8的patch格式为112340-01.zip
--2.6(或更早的版本)为112340-01.tar.Z
--2.6(earlier)的更新cdrom上的patch格式是112340-01.tar.gz

安装和移除patch命令
patchadd  安装patch
patchrm   移除patch

查看当前安装的patch
# showrev -p
# patchadd -p


备份和恢复
--磁带设备名称
/dev/rmt/#hn
#:逻辑磁带号
h:tape density
n:不能绕回
举例:磁带设备的第一个实例:/dev/rmt/0
                第二个实例:/dev/rmt/1
no rewind:表示在操作完成以后,磁带不倒回。
tape density:由5个可选项,l(low);m(medium);h(high);c(compress);u(ultra compress)
tape density由磁带机决定。

--文件系统的备份类型
1. full(完全备份)
2. incremental(增量备份)

--/usr/sbin/ufsdump命令
# ufsdump options [ 参数 ] 文件系统名称
options:
0-9 备份级
v   确认,当备份完成以后,将备份的内容同源文件系统进行比较,如果有  不符的情况,则提示放入新的磁带,重新备份进程。这个option只能针对一个unmount的文件系统。
S   显示备份需要多少空间。
l   自动装带
o   当备份完成以后,将磁带机设为离线,回绕磁带,可能的话弹出磁带。
u   更新/etc/dumpdates文件,slice的设备名、备份级和备份时间将被作为一个条目加到该文件中,如果不用这个参数,entry将不会被加入。
f   指定一个备份设备,缺省情况下,使用/dev/rmt/0
file  指定备份内容,如/usr或/dev/rdsk/c#t#d#s#

--/etc/dumpdates
记录备份的内容、级别、日期和时间。

--计划你的备份任务
计划备份任务分几步:
1. 哪个文件系统需要备份
可以查看/etc/vfstab文件,找出需要备份的文件系统的挂载点。
2. 决定备份所需磁带数量
通过命令
# ufsdump 0S file-system name
查看备份需要的磁带空间,根据报告决定需要的磁带的数量。
3. 备份文件系统到磁带
备份文件系统需要init到单用户模式:
# /usr/sbin/shutdown -y -g300
unmount要备份的文件系统:
# unmount /export/home
检查要备份的文件系统
# fsck /export/home
开始一个完全备份
# ufsdump 0uf /dev/rmt/0 /export/home

--远程备份
可以使用ufsdump命令将文件系统备份到一个远程的磁带设备上去
命令:
# ufsdump options remotehost:tapedevice filesystem
如将/export/home备份到host2主机的/dev/rmt/0设备上去使用命令:
# ufsdump 0uf host2:/dev/rmt/0 /export/home

--恢复文件系统
恢复文件系统使用命令:ufsrestore
ufsrestore options [参数] [文件系统]
ufsrestore options [参数] [文件名]
参数:
t  列出备份介质上的内容。
r  从备份介质上恢复整个文件系统。
x  只恢复指定的文件。
i  交互式恢复。
v  文件恢复时显示文件路径等详细信息。
f  指定磁带设备名

--restoresymtable文件
当整个文件系统从磁带被恢复的时候,这个文件被建立,该文件的作用是被ufsrestore当作检查点,增量恢复时会用到检查点。
restoresymtable在恢复完成后就不再需要,应该删除。

--准备恢复文件系统
1. 从哪个文件系统备份磁带恢复?
2. 将恢复到哪个raw设备?
3. 恢复单独文件的时候使用的临时目录
4. 使用哪种类型的备份设备(本地或远程)
5. 备份设备名
举例说明:恢复/root文件系统
1. 从cdrom启动到单用户模式
ok boot cdrom -s
2. 创建新的文件系统
# newfs /dev/rdsk/c0t0d0s0
3. mount文件系统
# mkdir /a
# mount /dev/dsk/c0t0d0s0 /a
# cd /a
4. 恢复文件系统
# ufsrestore rf /dev/rmt/0
注:恢复文件系统应该从0级开始,一级一级恢复。
5. 删除restoresymtable文件
# rm restoresymtable
6. 安装bootblk到boot盘的1-15 sectors:转到包含bootblk的目录,运行installboot命令。
# cd /usr/platform/'uname -m'/lib/fs/ufs
# installboot bootblk /dev/rdsk/c0t0d0s0
7. unmount /a
# umount /a
8. 检查被恢复的文件系统
# fsck /dev/rdsk/c0t0d0s0
9. 重启系统
# init 6
10. 创建一个完全备份
# ufsdump 0uf /dev/rmt/0 /dev/rdsk/c0t0d0s0

恢复举例2:恢复其他文件系统
# newfs /dev/rdsk/c#t#d#s#
# mount /dev/dsk/c#t#d#s# /mnt
# cd /mnt
# ufsrestore rf /dev/rmt/#
# rm restoresymtable
# cd /
# umount /mnt
# fsck /dev/rdsk/c#t#d#s#
# ufsdump 0uf /dev/rmt/# /dev/rdsk/c#t#d#s#

--交互式恢复
1. 以root用户身份登录,并进入准备存放解压文件的临时目录
# cd /var/tmp
2. 开始交互式恢复
# ufsrestore ivf /dev/rmt/0
ufsrestore >;
3. 查看磁带上备份的目录结构信息
ufsrestore >; ls
进入到要恢复的目录
ufsrestore >; cd /etc/inet
ufsrestore >; ls
4. 把想要恢复的文件加入到列表
ufsrestore >; add inetd.conf hosts
可以使用*通配符。
如果想从列表中删除可以使用delete命令。
5. 从备份磁带恢复选定的文件
ufsrestore >; extract
6. 退出交互式恢复
ufsrestore >; quit
7. 检查恢复的文件,并把他们移到以前的目录
# mv /var/tmp/etc/inetd.conf/hosts /etc/inetd.conf/hosts
# rm -r /var/tmp/etc

--控制磁带设备
控制磁带设备使用mt命令,不是所有的磁带设备支持所有的mt命令
mt [ -f 磁带设备名 ] command [ count ]
命令:
status  显示磁带设备的状态信息
rewind  回绕磁带
offline 回绕磁带,并根据需要取出磁带并将磁带设备设为离线
fsf     往前忽略[count]个磁带文件。

--多重存档的例子
创建当前目录的备份,不带no rewind参数
# tar cvf /dev/rmt/0 .
创建当前目录的备份,带no rewind参数
# tar cvf /dev/rmt/0n /etc
将磁带置于开始
# mt -f /dev/rmt/0n fsf 1
恢复
# tar xvf /dev/rmt/0

论坛徽章:
0
2 [报告]
发表于 2003-04-04 09:04 |只看该作者

昨天晚上看完了238,贴一贴笔记

真是好学而且勤快!

论坛徽章:
0
3 [报告]
发表于 2003-04-04 09:10 |只看该作者

昨天晚上看完了238,贴一贴笔记

支持一下 还有288,继续
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP