零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月30日周三】

/Mon

*************摘要**************
计划任务
     )一次性计划任务
          服务:atd
          命令:at
          服务存放文件:/etc/init.d/atd
          系统配置文件:/etc/at.deny
          程序缓存文件:/var/spool/at
     )周期性计划任务
          服务:cron/crond
          命令:crontab
          服务存放文件:/etc/init.d/crond
          系统配置文件:/etc/cron.deny /etc/crontab
          程序缓存文件:/var/spool/cron/* /var/log/cron

启动流程 *针对rhel6
    1)通电——>BIOS——>boot loader(MBR)——>Kernel & initrd——>init
    2)BIOS
       1>加载CMOS,取得主机的硬件配置
       2>自检
       3>加载可开机装置,读取MBR
    2)boot loader
       1>存放于MBR(512bytes),占用446bytes
       2>rhel6为grub:
                     a.配置文件 /boot/grub/menu.lst
                     b.grub界面的具体操作P722
                     c.忘记root密码如何操作
       3>加载Kernel和initrd
    2)kernel&Initial
      1> 核心文件存放:/boot/vmlinuz-2.6.32-431.el6.x86_64
      2> 虚拟文件系统:/boot/initrd-2.6.32-431.el6.x86_64kdump.img<==核心解压所需的RAM Disk
      3> 加载核心模块:/lib/modules/2.6.32-431.el6.x86_64/kernel
      4> 记录核心版本: /proc/version
      5> 记录核心功能: /proc/sys/kernel
    3)init
      1> 命令存放文件:/sbin/init
      2> 开机执行脚本:/etc/init/rcS.conf   /etc/rc.d/sysinit  系统初始化
      3> 系统配置文件:/etc/inittab                            取得runlevl等级
      4> 设置开机服务:/etc/rc.d/rcx.d                        (根据runlevel确定x,开启相关服务)
      5> 预设开机服务:/etc/init.d/*
      6> 预设开机配置:/etc/init/*.conf
      3> 相关命令:chkconfig
*******************************************************************************************************
计划任务知识点详细解读

==============================================
           atd服务的运作方式及管理
==============================================
  当执行at程序并在终端输入命令后,
  首先系统会到配置文件中寻找at相关的文档
     /etc/at.allow <==记录了允许使用at命令的用户名
     /etc/at.deny  <==记录了不允许使用at命令的用户名
     若以上两个文件都没有,则系统默认只有root可以使用at
 输入的内容将被保存到以下目录中/var/spool/at/*

#服务的启动命令:
  /etc/init.d/atd restart <==重启
  rhel6
      service atd start  启动
      service atd restart重启
      service atd status 查看
  rhel7
      systermctl start atd
      systermctl restart atd
      systermctl status atd

================================================
                   at命令的用法
================================================
at [-mldv] TIME
at -c 工作号码
选项与参数:
-m :当 at 工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作
已完成。
-l :at -l =atq,列出目前系统上面的所有该用户的at 排程;
-d :at -d  =atrm ,可以取消一个在 at 排程中的工作;
-v :可以使用较明显的时间格式显出 at 排程中的任务列表;
-c :可以列出后面接的该项工作的实际指令内容。

===========================================================
                  cron/crond 的运作方式及管理
============================================================
  首先系统会到配置文件中寻找cron相关的文档
     /etc/cron.allow <==记录了允许使用crontab命令的用户名
     /etc/cron.deny  <==记录了不允许使用crontab命令的用户名
      若以上两个文件都没有,则系统默认只有root可以使用crontab
     /etc/crontab <==系统的例行性任务
  使用 crontab 来建立工作排程后,该项工作就会被记录在/var/spool/cron/* <==以执行者的用户名来命名
  执行的工作会被记录在日志中/var/log/cron 

==========================================
        /etc/crontab文件内容详解
==========================================

[root@rhel6 ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
例如:系统每五分钟执行一次该目录下所有可执行文件
/5 * * * * root run-parts /root/runcron

==========================================
          crontab命令的用法
==========================================

crontab [-u username] [-l|-e|-r]
选项与参数:
-u :只有 root 使用,亦即帮其他使用者建立/移除 crontab 工作
排程;
-e :编辑 crontab 工作内容
-l :查阅 crontab 工作内容
-r :移除所有 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑

~~~~~~~~~~~~~~~~
crontab -e 编辑的格式说明:
~~~~~~~~~~~~~~~~
代表意义 分钟  小时  日期 月份  周   命令
数字范围 0-59 0-23 1-31 1-12 0-7  命令

特殊字           代表意义
*(星号)        代表任何时刻
,(逗号)        代表分隔时段
-(减号)        代表一段时间范围
/n(斜线)       n 代表数字,『每隔 n 单位间隔』,例如每五分钟进行一次

例题====student在每天 12:00 发信给自己
crontab -e
#  vi 编辑画面 每项工作都是一行。
0  12 *  *  * mail student -s "at 12:00" < /home/student/.bashrc
分 时 日  月 周|<==============命令===========================|
===========================================

--------------------------------------------------------------------------------------------------------------------
系统启动流程知识点详细解读  操作系统为 rhel6
********************************************************************
**********启动流程**********
1.加电,自检
检查系统硬件的健康程度
2.bios(Basic Input Output System)-->启动次序:设定外部存储设备哪个作为我们默认的存储设备
主要启动记录区(Master Boot Record, MBR):主引导记录 512字节
bootloader:位于MBR,446字节,启动项,程序 rhel6 grub/rhel7 grub2
grub被分成了两段
stage1 用来引导stage2
stage2 真正的引导
stage1.5 驱动

grub的配置文件 /boot/grub/grub.conf

root(hd0,0)指定了以硬盘上哪个分区作为根
/boot 由于文件系统的概念在这里还没有生成,所以要直接指定硬盘的某一个位置,
hd 代表的是所有类型的硬盘
hd0 代表第一块硬盘
0 代表第一个分区

quiet 指定内存的位置,传递给内核的参数
initrd 虚拟文件系统,提供一些简单的命令和驱动
initrd 原理将内存的一段空间模拟成磁盘去用

硬件启动到此结束
==========================================

===========================================================
                         /boot/*
===========================================================
核心与核心模块放在哪
核心: /boot/vmlinuz /boot/vmlinuz-version
核心解压所压缩所需 RAM Disk: /boot/initrd (/boot/initrd-version)
核心模块: /lib/modules/version/kernel  /lib/modules/$(uname -r)/kernel
核心原始码: /usr/src/linux (要安装才会有!否则预设不安装)
核心被顺利的加载有几个信息记录下来:
核心版本: /proc/version
系统核心功能: /proc/sys/kernel
核心模块的额外参数设定: /etc/modprobe.conf
================================================================================
                   /boot
==================================================================================
config-2.6.32-431.el6.x86_64 <==此版本核心被编译时选择的功能与模块配置文件
lost+found
efi
grub  <==开机管理程序grub相关数据目录
symvers-2.6.32-431.el6.x86_64.gz
System.map-2.6.32-431.el6.x86_64<==核心功能放置到内存地址的对应表
initramfs-2.6.32-431.el6.x86_64.img
initrd-2.6.32-431.el6.x86_64kdump.img<==虚拟文件系统文件
vmlinuz-2.6.32-431.el6.x86_64<==核心文件

=================
/boot/grub/*
=================
rw-r--r-- device.map <==grub 的装置对应文件
-rw-r--r-- e2fs_stage1_5 <==文件系统定义档
-rw-r--r-- fat_stage1_5 <==FAT 文件系统定义档
-rw-r--r-- ffs_stage1_5 <==FFS 文件系统定义档
-rw------- grub.conf <==grub 在 Red Hat 的配置文件
-rw-r--r-- iso9660_stage1_5<==光驱文件系统定义文件
-rw-r--r-- jfs_stage1_5<==jfs 文件系统定义档
lrwxrwxrwx menu.lst -> ./grub.conf <==配置文件
-rw-r--r-- minix_stage1_5 <==minix 文件系统定义档
-rw-r--r-- reiserfs_stage1_5 <==reiserfs 文件系统定义档
-rw-r--r-- splash.xpm.gz <==开机时在 grub 底下的背景图示
-rw-r--r-- stage1 <==stage 1 的相关说明
-rw-r--r-- stage2 <==stage 2 的相关说明
-rw-r--r-- ufs2_stage1_5 <==UFS 的文件系统定义档
-rw-r--r-- vstafs_stage1_5 <==vstafs 文件系统定义档
-rw-r--r-- xfs_stage1_5<==xfs 文件系统定义档

====================
/boot/grub/menu.list
====================p722
default=0<==默认开机选项,使用第 1 个开机选单 (title)
timeout=5<==若 5 秒内未动键盘,使用默认选单开机
splashimage=(hd0,0)/grub/splash.xpm.gz<==背景图示所在的档案
hiddenmenu<==读秒期间是否显示出完整的选单画面(预设隐藏)
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)<==第一个选单的内容
        root (hd0,0)<==代表核心档案放在那个 partition 当中
        kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_rhel6-LogVol01 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_rhel6/LogVol01 rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-431.el6.x86_64.img

==================================================
        /lib/modules/2.6.32-431.el6.x86_64/kernel
==================================================
核心调用的核心模块,即驱动

arch     与硬件平台有关 如cpu等
drivers  一些硬件的驱动程序 显示适配器、网络卡、PCI 相关硬件等
kernel
mm
sound    音效有关的各项模块
crypto   核心所支持的加密的技术
fs       核心所支持的 filesystems
lib      一些函数库
net      网络有关的各项协议数据,还有防火墙模块
rch
------------------------------

lib/modules/$(uname -r)/modules.dep 记录核心支持模块的各项相依性
epmod [-Ane]
选项不参数:
-A :不加任何参数时, depmod 会主动的去分析目前核心的模块,重新写入/lib/modules/$(uname -r)/modules.dep 当中。若加入 -A 参数时,则depmod会去搜寻比 modules.dep 内还要新的模块,更新。
-n :不写入 modules.dep ,而是将结果输出到屏幕上(standard out);
-e :显示出目前已加载的丌可执行的模块名称
范例一:若我做好一个网卡驱劢程序,档名为 a.ko,该如何更新核心相依性?
[root@www ~]# cp a.ko /lib/modules/$(uname -r)/kernel/drivers/net
[root@www ~]# depmod
正对核心模块的命令:
lsmod
modinfo
insmod
rmmod
modprobe [-lcfr] module_name
选项不参数:
-c :列出目前系统所有的模块!(更详细的代号对应表)
-l :列出目前在 /lib/modules/`uname -r`/kernel 当中的所有模块完整文件名;
-f :强制加载该模块;
-r :类似 rmmod 移除

/etc/modprobe.d/*  核心模块的额外参数设定

***********************************************************************************************88
rhel6
1.第一个读取的文件 /etc/init/rcS.conf
2.运行级别 /etc/inittab
 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)
/etc/rc.d/rcx.d 

chkconfig --list
chkconfig xxxx on 让服务在2345级别开机运行方式
chkconfig xxxx off 让服务在2345级别不要开机启动的方式
chkconfig --level 3 netconsole on 指定某一个服务,在某个运行级别下开机启动

若忘记root密码?
rhel6 在kenel行输入s 进入但用户模式修改root密码

rhel7
stage1依旧存放在MBR中 备份文件是/boot/grub2/i386-pc/boot.img
stage2 /boot/grub2/i386-pc/core.img
grup配置文件常用的一些参数/etc/default/grub文件中
grub主配置文件/boot/grub2/grub.cfg
可以通过/etc/default/grub里的配置参数自动生成一个新的grub配置文件
命令是:grub2-mkconfig -o /boot/grub2/grub.cfg

硬件启动的不同

软件启动:1.第一个进程systemd
        2.运行级别不再用数字定义,而是以xxxx.wants来表示,每个运行级别的存放位置都是/etc/systemd/system/....target.wants目录下
3.systemctl enable xxxx服务名称 开机启动
4.在对应启动级别目录下,会有一些软链接文件,该文件代表在该运行级别下,需要开机自起的服务。

centos7/rhel7进入单用户方式和重置密码方式发生了较大变化,GRUB由b引导变成了ctrl+x引导。

重置密码主要有rd.break和init两种方法。

rd.break方法:

1、启动的时候,在启动界面,相应启动项,内核名称上按“e”;

2、进入后,找到linux16开头的地方,按“end”键到最后,输入rd.break,按ctrl+x进入;

3、进去后输入命令mount,发现根为/sysroot/,并且不能写,只有ro=readonly权限;

4、mount -o remount,rw /sysroot/,重新挂载,之后mount,发现有了r,w权限;

5、chroot /sysroot/ 改变根;

(1)echo redhat|passwd –stdin root 修改root密码为redhat,或者输入passwd,交互修改;

(2)还有就是先cp一份,然后修改/etc/shadow文件

6、touch /.autorelabel 这句是为了selinux生效

7、ctrl+d 退出

8、然后reboot

至此,密码修改完成

init方法:

1. 启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式。

2. 在linux16/linux/linuxefi所在参数行尾添加以下内容:init=/bin/sh

3. 按Ctrl+x启动到shell。

4. 挂载文件系统为可写模式:mount –o remount,rw /

5. 运行passwd,并按提示修改root密码。
6. 如何之前系统启用了selinux,必须运行以下命令,否则将无法正常启动系统:touch /.autorelabel

7. 运行命令exec /sbin/init来正常启动,或者用命令exec /sbin/reboot重启

=============================================================================
                     /etc/init/rcS.conf  /etc/rc.d/rc.sysinit
=============================================================================
准备系统软件执行的环境的脚本执行档,进行系统初始化

===============================================================================================
                           /etc/inittab
===============================================================================================
规划默认的runlevel(开机执行等级)
# 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:5:initdefault:

=============================================================================
                   /etc/rc.d/rcx.d
=============================================================================
根据runlevel确定x,开启和关闭相关服务,每个运行级别都对应一个目录
K开头代表启动过程中需要关闭的服务
S开头代表启动过程中需要开启的服务
在每个运行级别里,需要开启的服务和需要关闭的服务都是不一样的
/etc/rc.d/rc3.d/*
K01smartd          K74ntpd            S10network           S26acpid
K02oddjobd         K75ntpdate         S11auditd            S26haldaemon
K05wdaemon         K75quota_nld       S11portreserve       S26udev-post
K10psacct          K76ypbind          S12rsyslog           S28autofs
K10saslauthd       K80kdump           S13cpuspeed          S50bluetooth
K15htcacheclean    K84wpa_supplicant  S13irqbalance        S55sshd
K15httpd           K87restorecond     S13rpcbind           S80postfix
K30spice-vdagentd  K88sssd            S15mdmonitor         S82abrt-ccpp
K50dnsmasq         K89rdisc           S22messagebus        S82abrtd
K50netconsole      K95firstboot       S23NetworkManager    S90crond
K50snmpd           K99rngd            S24nfslock           S95atd
K50snmptrapd       S01sysstat         S24rpcgssd           S97rhnsd
K60nfs             S02lvm2-monitor    S25blk-availability  S97rhsmcertd
K69rpcsvcgssd      S08ip6tables       S25cups              S99certmonger
K73winbind         S08iptables        S25netfs             S99local
=============================================================================
                   /etc/rc.d/rc.local
=============================================================================
用户自定义开机启动程序
把自己制作的 shell script 完整档名写入 /etc/rc.d/rc.local 

=============================================================================
                            /etc/init.d/*
=============================================================================
规划软件执行的环境,包括系统的主机名、网络设定、语系的处理、文件系统格式及其他服务
abrt-ccpp         firstboot     messagebus      rdisc        snmpd
abrtd             functions     netconsole      restorecond  snmptrapd
abrt-oops         haldaemon     netfs           rhnsd        spice-vdagentd
acpid             halt          network         rhsmcertd    sshd
atd               htcacheclean  NetworkManager  rngd         sssd
auditd            httpd         nfs             rpcbind      sysstat
autofs            ip6tables     nfslock         rpcgssd      udev-post
blk-availability  iptables      ntpd            rpcidmapd    wdaemon
bluetooth         irqbalance    ntpdate         rpcsvcgssd   winbind
certmonger        kdump         oddjobd         rsyslog      wpa_supplicant
cpuspeed          killall       portreserve     sandbox      ypbind
crond             lvm2-lvmetad  postfix         saslauthd
cups              lvm2-monitor  psacct          single
dnsmasq           mdmonitor     quota_nld       smartd

==============================================
               /etc/init/*
==============================================
预设开机配置
control-alt-delete.conf  rcS-sulogin.conf
init-system-dbus.conf    readahead-collector.conf
kexec-disable.conf       readahead.conf
plymouth-shutdown.conf   readahead-disable-services.conf
prefdm.conf              serial.conf
quit-plymouth.conf       splash-manager.conf
rc.conf                  start-ttys.conf
rcS.conf                 tty.conf
rcS-emergency.conf

==================================================
             /etc/sysconfig/*
==================================================
系统服务的相关配置文件

系统是rhel7
===========================================================
                         /boot/*
===========================================================
config-3.10.0-229.el7.x86_64 <==此版本核心被编译时选择的功能与模块配置文件
extlinux
grub2  <==开机管理程序grub2相关数据目录
initramfs-0-rescue-aeba48e026da48748623100ffa1ab649.img
initramfs-3.10.0-229.el7.x86_64.img
initrd-plymouth.img  <==虚拟文件系统文件
symvers-3.10.0-229.el7.x86_64.gz
System.map-3.10.0-229.el7.x86_64  <==核心功能放置到内存地址的对应表
vmlinuz-0-rescue-aeba48e026da48748623100ffa1ab649
vmlinuz-3.10.0-229.el7.x86_64  <==核心文件

===============================================================================================
                      /etc/inittab    /etc/init.d/*
===============================================================================================
/etc/inittab
==============
# inittab is no longer used when using systemd. <==rhel7已经不再使用这个文件来进行配置了
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.<==在这个文档中添加配置已经没有用了
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target<==ctrlaltdel现在是通过/usr/lib/systemd/system/ctrl-alt-del文件来配置
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:<==系统使用标签来代替runlevel开机等级,默认情况下,有两种标签
# multi-user.target: analogous to runlevel 3<==multi-user.target代表runlevel3,文本模式
# graphical.target: analogous to runlevel 5<==graphical.targe代表runlevel5,图形模式
# To view current default target, run:<==想知道目前系统的默认标签,可以运行 systemctl get-default
# systemctl get-default
# To set a default target, run:<==想设置默认标签,可以运行systemctl set-default TARGET.target
# systemctl set-default TARGET.target
===============
/etc/init.d/*
===============
rhel7系统的服务执行档都已经迁移至/etc/rc.d/init.d/*
服务的指令为systemctl
=============================================================================
                        /etc/rc.d/*
============================================================================
init.d  rc0.d  rc1.d  rc2.d  rc3.d  rc4.d  rc5.d  rc6.d  rc.local
----------------------------------------------------------------------------
rhel7当中已经将系统服务的相关内容放在/usr/lib/systemd/system/目录下
服务的指令为systemctl

=============================================================================
                        /usr/lib/systemd/system/*
============================================================================
rhel7系统规划软件执行的环境,包括系统的主机名、网络设定、语系的处理、文件系统格式及其他服务

ctrl-alt-del.target                      rpcbind.target
dbus-org.freedesktop.hostname1.service   rpc-gssd.service
dbus-org.freedesktop.locale1.service     rpc-statd-notify.service
dbus-org.freedesktop.login1.service      rpc-statd.service
dbus-org.freedesktop.machine1.service    rpc-svcgssd.service
dbus-org.freedesktop.timedate1.service   rsyncd.service
dbus.service                             rsyncd.socket
dbus.socket                              rsyslog.service
dbus.target.wants                        rtkit-daemon.service
debug-shell.service                      runlevel0.target
default.target                           runlevel1.target
default.target.wants                     runlevel1.target.wants
dev-hugepages.mount                      runlevel2.target
dev-mqueue.mount                         runlevel2.target.wants
dm-event.service                         runlevel3.target
dm-event.socket                          runlevel3.target.wants
dmraid-activation.service                runlevel4.target
dnsmasq.service                          runlevel4.target.wants
dracut-cmdline.service                   runlevel5.target
dracut-initqueue.service                 runlevel5.target.wants
dracut-mount.service                     runlevel6.target
dracut-pre-mount.service                 saslauthd.service
dracut-pre-pivot.service                 serial-getty@.service
dracut-pre-trigger.service               shutdown.target
dracut-pre-udev.service                  shutdown.target.wants
dracut-shutdown.service                  sigpwr.target
ebtables.service                         sleep.target

=============================================================================
                        /etc/sys*
============================================================================

/etc/sysctl.conf  系统的预设配置已经换到以下目录
/usr/lib/sysctl.d/00-system.conf
-------------------------------------------------
/etc/system-release 系统版本信息
Red Hat Enterprise Linux Server release 7.1 (Maipo)
---------------------------------------------------
/etc/system-release-cpe
cpe:/o:redhat:enterprise_linux:7.1:ga:server
---------------------------------------------------
/etc/sysconfig:系统服务的相关配置文件
atd              init              network          rsyslog
                                   是否启用网络,设置主机名和网关
authconfig       ip6tables-config  network-scripts  run-parts
身份证的机制                         设置网卡
autofs           iptables-config   nfs              samba
cbq              irqbalance        ntpdate          saslauthd
cgred            kdump             pluto            selinux
console          kernel            radvd            smartmontools
cpupower         ksm               raid-check       sshd
crond            libvirtd          rdisc            sysstat
ebtables-config  libvirt-guests    readonly-root    sysstat.ioconf
fcoe             man-db            rhn              virtlockd
firewalld        modules           rpcbind          virt-who
grub             netconsole        rsyncd           wpa_supplicant
----------------------------------------------
/etc/sysctl.d:
99-sysctl.conf
-----------------------------------------------
/etc/systemd:
bootchart.conf  logind.conf  system.conf  user.conf
journald.conf   system       user
上一篇:CLLocation


下一篇:Docker 部署 elk + filebeat