Linux环境学习(Day5)

学习任务4:LPI-4 高级管理

Part1 Linux文件系统

新建分区什么的一直出问题,文件系统也装不好,有时间再回来弄吧,乌鱼

Part2 引导系统

介绍Linux的启动过程,如何在引导时设置内核选项以及如何检查引导日志中的错误
MBR
计算机启动的时候,BIOS读取硬盘前几个扇区,包含一个非常小的程序叫“主启动记录”或者MBR,它将内核加载到内存中并启动它。
在这里插入图片描述

  1. 内核开始运行之后,打印的第一行:
    Linux version 2.4.16 (root@time.flatmonk.org) (gcc version 2.95.3 20010315 (release)) #1 Sat Jan 12 19:23:04 EST 2002
    第一部分是内核版本,其后是构建内核的用户的标识(通常是root),构建内核的编译器以及构建内核的时间戳
  2. /sbin/init: 内核加载完成以后,启动init程序,将一直运行直到系统关闭,始终为它分配进程ID 1:
$ ps --pid 1
  PID TTY          TIME CMD
    1 ?        00:00:04 init.system

这些脚本通常位于/etc/rc.d/init.d或/etc/init.d中,它们执行诸如设置系统主机名,检查文件系统是否存在错误,安装其他文件系统,启用联网,启动打印服务之类的服务。等脚本完成后,init启动一个名为getty的程序,该程序 显示登录提示,您一切顺利!

  1. LILO
    看一下第一部分:MBR和加载内核。MBR的维护是“引导加载程序”的责任。用于基于x86的Linux的两种最受欢迎​​的引导加载程序是LILO(LInux LOader)和GRUB(GRand Unified Bootloader)。
    LILO是比较旧且更常见的引导加载程序,有时,可能需要在引导时将选项传递给内核。一些更常见的选项是root =指定一个备用的根文件系统init =指定一个备用的init程序(例如init = / bin / sh以挽救配置错误的系统),以及mem =指定在其中的内存量。系统(例如,在Linux仅自动检测到128M的情况下,例如mem = 512M)。您可以在LILO引导提示符下将它们传递给内核:
LILO boot: linux root=/dev/hdb2 init=/bin/sh mem=512M

LILO有一个重要的陷阱,每当对/etc/lilo.conf进行更改时,或者每当安装新内核时,都必须运行lilo。该LILO程序重写MBR以反映所做的修改,包括记录内核的绝对磁盘位置

GRUB
GRUB引导加载程序可以被认为是继LILO之后的下一代引导加载程序,对用户最明显的是,它提供了一个菜单界面,而不是LILO的原始提示。GRUB比LILO支持更多的操作系统,在引导菜单中提供了一些基于密码的安全性,并且更易于管理。
通常使用grub-install命令安装。安装后,可通过编辑文件/boot/grub/menu.lst来管理GRUB的菜单。
LILO和GRUB之间的显着区别是GRUB不需要在每次配置更改或安装新内核时都重新安装其引导加载程序。这是因为GRUB理解Linux文件系统,而LILO仅存储要加载的内核的绝对磁盘位置

dmesg
如果在内核加载或探测硬件设备时发生错误,则可以使用dmesg命令检索内核日志的副本
内核加载时打印的第一行:

/var/log/messages
查找信息的第二个位置是在/ var / log / messages文件中。该文件由syslog守护程序记录,该日志接受来自库,守护程序和内核的输入。消息文件中的每一行都带有时间戳。该文件是查找在引导的初始化脚本阶段发生的错误的好地方。查看来自服务器的最后几条消息:

# grep named /var/log/messages | tail -3
Jan 12 20:17:41 time /usr/sbin/named[350]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 12 20:17:41 time /usr/sbin/named[350]: listening on IPv4 interface eth0, 10.0.0.1#53
Jan 12 20:17:41 time /usr/sbin/named[350]: running

Part3 运行级别

单用户模式
引导时可以将参数传递给内核。s是最常用的参数之一,它使系统以“单用户”模式启动。此模式通常仅安装根文件系统启动最小部分的初始化脚本,然后启动shell程序,而不是提供登录提示。此外,未配置网络,因此不会有外部因素影响你的工作。

使用单用户模式
那么,在这种状态下,系统可以完成哪些“工作”?要回答这个问题,我们必须意识到Linux和Windows之间的巨大差异。Windows被设计为通常一次只能由一个人坐在控制台上使用。实际上,它始终处于“单用户”模式。另一方面,Linux更常用于服务网络应用程序,或为网络上的远程用户提供Shell或X会话。当您要执行维护操作(例如从备份还原,创建或修改文件系统,从CD升级系统等)时,这些附加变量是不被希望的。在这些情况下,应使用单用户模式。

更改运行级别
实际上并不需要重新引导即可进入单用户模式。该初始化程序管理当前的模式,或“运行级别”,对于系统。Linux系统的标准运行级别标记和定义如下:

0:停止计算机
1或s:单用户模式
2:多用户,无网络
3:多用户文本控制台
4:多用户图形控制台
5:与4相同
6:重新启动计算机

注意:运行级别在发行版之间有所不同
要更改为单用户模式,请使用telinit命令,该命令指示init更改运行级别:
# telinit 1
也可以通过这种方式关闭或重新引导系统。 telinit 0将停止计算机; telinit 6将重新启动计算机。当您发出 telinit命令来更改运行级别时,一部分初始化脚本将运行以关闭或启动系统服务。

正常关机-shutdown
与kill命令向进程发送各种信号的能力类似,shutdown可用于停止,重新引导或更改为单用户模式。例如,要在5分钟内更改为单用户模式:
# shutdown 5
如果此时按Ctrl-c,则可以取消挂起的单用户模式切换。上面的消息将出现在系统的所有终端上,因此用户有合理的时间来保存他们的工作并注销。

立即关机
例如:立即重启系统:
shutdown -r now

-h选项将停止系统:
# shutdown -h 1

默认运行级别
靠,运行完上面的shutdown之后,再也打不开我的Ubuntu了。。。吴语至极,正在重装虚拟机了。。。。光驱还一直挂载不上去,什么玩意儿???而且想要分区的时候那个界面始终显示不完整,根本点不了任何东西,也没有办法操作,什么破界面也点不了自适应。。。。想VMware了,沙BVBox。

Linux系统上的init程序非常重要,可以通过编辑/etc/inittab来配置init

# grep ^id: /etc/inittab
id:3:initdefault:

3在这儿是默认的运行级别,如果希望系统立即引导进入图形登录名(通常为运行级别4或5),则更改此值可能很有用。编辑该文件修改值即可,但要小心不要更改成无效值了

自闭了,终于装回来了,天都黑了。。。



Part4 文件系统配额

配额可让你按用户或按组跟踪磁盘使用情况,配额只能由root用户启用和管理.
配额呢,需要内核的支持,你得先看看有没有:
都有
注意,自2.4.x内核系列开始,Linux对配额的支持还不完整。当前 ext2和ext3 文件系统中的配额存在问题,并且 ReiserFS 似乎根本不支持配额。本教程的示例基于 XFS
但是,我还没有XFS文件系统,回去了看书学一下,暂时先把步骤写一下吧

# grep quota /etc/fstab
/usr/users   /mnt/hdc1    xfs    usrquota,grpquota,noauto   0 0
# mount /usr/users

注意,usrquotagrpquota选项不一定在文件系统上启用配额。可以使用quotaon命令确保启用了配额

# quotaon /usr/users

如果希望将来禁用配额,则有一个相应的quotaoff命令:

# quotaoff /usr/users

配额命令

# quota -v
Disk quotas for user root (uid 0): 
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
 /dev/hdc1       0       0       0               3       0       0        

第一列显示root用户在列出的每个文件系统上当前正在使用多少磁盘空间。配额和限制列是指当前对磁盘空间的限制;文件列显示root用户在特定文件系统上拥有的文件数

查看配额
任何用户都可以使用quota命令来查看自己的配额报告,如上所示。但是,只有root用户才能查看其他用户和组的配额
举个栗子,假设我们在/ usr / users上安装了一个文件系统/ dev / hdc1,其中有两个用户:jane和john。首先,让我们看看Jane的磁盘使用情况和限制。

# quota -v jane
Disk quotas for user jane (uid 1003): 
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
 /dev/hdc1    4100       0       0               6       0       0

jane的配额设置为零,表示没有限制

edquota
用于配额的命令,先看看还有多少空间:

# df /usr/users
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hdc1               610048      4276    605772   1% /usr/users
# edquota jane
Disk quotas for user jane (uid 1003):
Filesystem         blocks       soft       hard     inodes     soft     hard
 /dev/hdc1           4100          0          0          6        0        0

如果我们要给john与jane相同的配额,可以 对edquota使用-p选项,该选项将jane的配额用作命令行中所有后续用户的原型。这是为用户组设置配额的简便方法。

# edquota -p jane john
# quota john
Disk quotas for user john (uid 1003): 
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
 /dev/hdc1       0   10000   11500               1    2000    2500        

还可以使用edquota根据文件的组所有权来限制磁盘空间的分配
例如,要编辑用户组的配额:
#edquota -g 用户组用户的磁盘配额(gid 100): / dev / hdc1 4100 500000 510000 7 100000 125000
然后查看用户组的已修改配额:

#quota -g users组用户的磁盘配额(gid 100):/ dev / hdc1 4100 500000 510000 7 100000 125000

repquota命令
可以查看所有用户和组的配额:

# repquota -ug /usr/users
*** Report for user quotas on device /dev/hdc1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --       0       0       0              3     0     0       
john      --       0   10000   11500              1  2000  2500       
jane      --    4100   10000   11500              6  2000  2500     

监控配额
为了确保不超额配置,使用warnquota,该warnquota命令发送电子邮件到已超过其软限制的用户。默认情况下,块和索引节点的宽限期为7天。

宽限期
可以使用等号修改文件系统的宽限期:

# edquota -t

启动的时候检查配额:

# quotaon -a

Part4系统日志

syslogd守护程序
用来记录来自系统上运行的程序的消息,按优先级和类型对消息分类,然后根据管理员配置的规则对其进行记录。

阅读日志
tail命令用于显示最后10行

# cd /var/log
# tail messages
Jan 12 20:17:39 bilbo init: Entering runlevel: 3
Jan 12 20:17:40 bilbo /usr/sbin/named[337]: starting BIND 9.1.3
Jan 12 20:17:40 bilbo /usr/sbin/named[337]: using 1 CPU
Jan 12 20:17:41 bilbo /usr/sbin/named[350]: loading configuration from '/etc/bind/named.conf'
Jan 12 20:17:41 bilbo /usr/sbin/named[350]: no IPv6 interfaces found
Jan 12 20:17:41 bilbo /usr/sbin/named[350]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 12 20:17:41 bilbo /usr/sbin/named[350]: listening on IPv4 interface eth0, 10.0.0.1#53
Jan 12 20:17:41 bilbo /usr/sbin/named[350]: running
Jan 12 20:41:58 bilbo gnome-name-server[11288]: starting
Jan 12 20:41:58 bilbo gnome-name-server[11288]: name server starting

有经验的系统管理员可能会使用tail -f跟踪输出到日志文件的时间

# tail -f /var/log/messages

一些管理员甚至喜欢在终端上保持不断运行的tail -f消息,以便他们关注系统事件。

grep 日志
使用grep搜索日志文件,

# grep named /var/log/messages

syslog.conf
我虚拟机没有这个文件,可能有其他的守护程序在运行,这个文件会有一些条目,格式为facility.priority action代表的分别是:工具(指定产生消息的子系统),优先级(指定消息的最低严重性),操作(文件名)

logrotate
用来管理日志的自动归档,每周轮换日志,保留4周的积压,



学习任务5: LPI-5 编译源代码和管理软件包

如何从源代码编译程序、如何管理共享库以及如何使用 Red Hat 和 Debian 软件包管理系统

Part1 共享库

Linux 系统上有两类根本不同的 Linux 可执行程序。第一类是静态链接的可执行程序。静态可执行程序包含执行所需的所有函数 — 换句话说,它们是“完整的”。因为这一原因,静态可执行程序不依赖任何外部库就可以运行

第二类是动态链接的可执行程序

静态可执行程序与动态可执行程序
判断程序是否为静态链接的:

# ldd /sbin/sln
        not a dynamic executable

说明是静态链接,比较一下sln和非静态ln的大小:

# ls -l /bin/ln /sbin/sln
-rwxr-xr-x    1 root     root        23000 Jan 14 00:36 /bin/ln
-rwxr-xr-x    1 root     root       381072 Jan 14 00:31 /sbin/sln

slnln大了10倍,因为动态程序是不完整的程序,它依靠外部共享库来提供运行所需的许多函数。

动态链接相关性
ldd命令:可以查看动态链接 ln 依赖的所有共享库的列表

# ldd /bin/ln
        libc.so.6 => /lib/libc.so.6 (0x40021000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

动态链接的程序比其静态链接的等价程序小得多。不过,静态链接的程序可以在某些低级维护任务中发挥作用.

动态装入器
负责把动态程序和它们必需的库装在一起的东西,就是上面那个ld-linux.so.2库.

ld.so.conf
动态装入器找到共享库需要两个文件–/etc/ld.so.conf/etc/ld.so.cache,看一下ld.so.conf里面包含一个所有目录的清单,动态装入器就在里面查找共享库:

$ cat /etc/ld.so.conf
/usr/X11R6/lib
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3
/usr/lib/mozilla
/usr/lib/qt-x11-2.3.1/lib
/usr/local/lib

ld.so.cache
通过运行ldconfig,会有一个最新的/etc/ld.so.cache文件,它反映您对 /etc/ld.so.conf 所做的更改。
要查看 ldconfig 可以“看到”的所有共享库,输入:
# ldconfig -p | less
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值