/etc/sysconfig/network-scripts/ifcfg-eth0
网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 内容
DEVICE=eth0
HWADDR=00:0c:29:a8:5d:fe
TYPE=Ethernet
UUID=a2908f07-9fb2-4635-9024-7a69c8affc07
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
# BOOTPROTO=none static dhcp
# IPADDR=10.0.0.7
# NETMASK=255.255.255.0
# GATEWAY=10.0.0.254
# DNS1=8.8.8.8
# DNS2=180.76.76.76
USERCTL=no
PEERDNS=yes
IPV6INIT=no
如果是clone的机器,将HWADDR和UUID删除
'''影响所有网卡'''
/etc/init.d/network restart
# 要确定ONBOOT=ON,不然就完了
'''只针对eth0网卡'''
ifdown eth0
ifup eth0
'''使用两个&的作用是,down成功了再up'''
ifudown eth0 && ifup eth0
/etc/resolv.conf
DNS配置文件, 一般需要主、备的DNS
/etc/resolv.conf 内容
search localdomain
nameserver 8.8.8.8
namesever 180.76.76.76
/etc/hosts
静态的主机名查找表,可以理解成局域网的DNS(主机名和IP解析),而非广域网的DNS,需要手动维护
/etc/hosts 内容
10.0.0.7 oldboy
10.0.0.8 www.baidu.com
主机名要规范
hosts在企业的作用
- 开发、产品、测试等人员,用于通过正式的域名测试产品
- 服务器之间的调用可以用域名(内部的DNS),方便迁移
/etc/sysconfig/network
主机名的配置文件
/etc/sysconfig/network 内容
NETWORKING=yes
HOSTNAME=oldboy66-23
注意:生产环境中修改主机名
- 先用hostname将主机名修改
- 再修改[/etc/sysconfig/network]中的HOSTNAME字段
/etc/fstab
有关系统文件的静态信息,设置文件系统挂载信息的文件,使得开机能够自动挂载磁盘分区
/etc/fstab 内容
#
# /etc/fstab
# Created by anaconda on Sun Jul 2 00:53:11 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=3e537f4b-9f4b-4f41-a18d-d1b29b4c6238 / ext4 defaults 1 1
UUID=908b6f35-6fc3-4833-a949-45d811a43ade /boot ext4 defaults 1 2
UUID=49a88ae9-fb5c-4af9-b5c7-bd3f01e64eaa swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
文件中一共有6列
列号 | 说明 | 备注 |
---|---|---|
1 | 需要被挂载的设备(磁盘或分区) | 也可以是UUID或磁盘标签 |
2 | 挂载点 | |
3 | 类型,文件类型 | ext2 ext3 ext4 xfs ntfs |
4 | 挂载的选项 | 只读,可写等等 |
5 | 是否备份 | 默认0,不备份 |
6 | 系统是否开机协助检查磁盘 | 系统根文件为1,默认0,不检查[fsck命令检查,好磁盘不要用!!!需要卸载的状态使用] |
挂载的方法
- mount -t ext4 -o noexec,noatime /opt/sda1 /mnt
- 写入/etc/fstab,实现开机自动挂载如下内容
/opt/sda1 /mnt ext4 noatime,noexec 0 0
- 也可以把第一条命令放在/etc/rc.local里面,效果同第2条。
如果/etc/fstab文件配置错误,系统无法启动
测试手动挂载
# 创建了一个虚拟的块设备
# dd if=/dev/zero of=/opt/sdb1 bs=4906 count=100
# 格式化
# mkfs.ext4 /opt/sdb1
# 挂载
# mount -t ext4 -o loop,noexec,noatime /opt/sda1 /mnt
# 查看
# df- h
/etc/rc.locacl
让一个程序开机启动类似Windows的启动文件夹
让一个程序开机启动:
- chkconfig 不过需要满足一些条件,类似(/etc/init.d/shhd)
- 放入/etc/rc.local
建议选择,/etc/rc.local
所有程序开机启动放入/etc/rc.local,好比服务器档案文件。这样比较规范,而且要给文件做注释,并且备份。
/etc/rc.local是Linux加载的顺序为最后加载。
NFS网络文件系统挂载时,网卡还没起,就已经加载fstab了,这样就会报错,因为顺序。所以一般放在/etc/rc.local里,这样确保NFS挂载成功。
/etc/inittab
设定系统启动时init进程将把系统设置成什么样的runlevel运行级别及加载相关的级别对应启动文件设置
/etc/inittab 内容
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
CentOS5服务器启动流程
graph TD
A["开机BIOS"]-->B["MBR引导"]
B-->C["GRUB引导菜单"]
C-->D["加载内核kernel"]
D-->E["启动init进程"]
E-->F["读取inittab文件"]
F-->G["执行rc.sysint rc等脚本"]
G-->H["启动mingetty"]
H-->I["进入系统登录界面"]
- 开机BIOS:光盘启动,硬盘启动,网卡启动and so on
- MBR引导:硬盘0柱面0磁道1扇区的前446byte
- GRUB引导菜单(选择引导哪个操作系统): cat /etc/grub.conf
- 加载内核kernel
- 启动init进程: ps -ef|grep init
- 读取inittab文件:/etc/inittab; /etc/rc.d/rc/sysinit; /etc/rc/d/rc3.d(进入文本模式)
/etc/init.d
通过yum或rpm安装的程序,启动的时候都在/etc/init.d文件夹内。如果用源码安装的,不在这个文件夹内
/etc/profile
定义一个别名,配置系统的变量,都在里面。与之匹配的还有一个目录,即/etc/profile.d/ 这个目录存在是程序或脚本,只要重新登录,就会执行这个目录下的脚本,与/etc/motd不同的是,/etc/motd是登录后显示的字符串,而profile.d下的是脚本。
/etc/profile.d/下的文件形式存在(*.sh为扩展名),但要可执行[chmod -x 123.sh]
/etc/issue
记录用户登录前显示的系统版本等信息,不太安全,建议优化。
/etc/motd
登录后显示的字符串
# cat -n /etc/issue
/etc/redhat-release
包含一行声明RedHat版本号和名称的信息。
# cat -n /etc/redhat-release
/etc/passwd
用户账户文件
/etc/shadow
账户的密码文件
/etc/group
用户对应的组文件
/etc/gshadow
组的密码文件
/etc/sudoers
建议使用visudo来编辑此文件,而不是vi,这样可以检查语法。如果用echo添加了信息后,建议使用visudo -c 检查语法。如果语法错,会导致所有su系统无法使用。
/var/log/messages 如果系统或软件故障,查询这个文件
系统信息默认日志文件,非常重要,按周自动轮循
rsyslog完成
/var/log/secure 如果有人在网络上扫描shh 安全问题
系统安全日志文件,SSH连接日志,接受密码说明登录成功,如果连接failure,同一个ip,就要改密码改端口,只用vpn。
# tail -f /etc/log/secure 动态查看最后10行的内容
如果硬件故障,用 # dmesg 查看
/var/spool/cron/root
定时任务crond的配置文件所在路径,建议备份
# cat /var/spool/cron/root
/proc/
进程管理目录
# cat /proc/meminfo 系统内存信息
# cat /proc/cpuinfo 关于处理器的信息,类型,厂家,型号和性能
# cat /proc/loadavg 系统负载平均值信息
# cat /proc/interrupts 正在使用的中断,和曾经有多少和中断
# cat /proc/mounts 查看设备挂载信息 类似df -h,但是更详细
重点文件汇总
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf 将被淘汰
/etc/hosts
/etc/sysconfig/network
/etc/fstab
/etc/rc.local
/etc/inittab 将被淘汰
/etc/init.d
/etc/profile
/usr/local 类似programfile
/etc/src 内核源码目录
/var/log/messagers 系统信息默认日志文件
/var/log/secure 系统安全日志
/var/spool/cron/root 定时任务的路径
/proc/cpuinfo
/proc/meminfo
/proc/loadavg
/proc/mounts
写在后面
- 网卡内的DNS优先级要高于resolve.conf
- CentOS6 在使用[/etc/init.d/network restart]会将resolve.conf内容冲掉
- 建议配置DNS在网卡文件中配置,而不是在[/etc/resolv.conf]中配置
- [/etc/hosts]手动配置的IP对域名的关联作用
- 主机名命名要规范
- 修改[/etc/sysconfig/network]主机名,这样系统重启后主机名还在,如果用hostname命令修改,重启就没有
思考题
- fstab一旦配置错误,会导致服务器无法启动,如何修复?出问题后,修复:
- 开机提示:输入密码 修复
- 救援模式,光盘启动
- 修改/etc/fstab只读状态
mount -o rw
remount /