• Day003_linux基础_系统启动过程及系统安装后优化


    Linux系统启动过程:

    1. 打开电源开关开机
    2. BIOS自检
    3. MBR引导
    4. grub内核菜单选择
    5. 加载内核kernel
    6. 运行init进程,系统初始化
    7. 然后读取/etc/inittab 配置文件,当前系统所在的运行级别进行寻找所需的文件
    8. 读取/etc/rc.d/sysinit 启动脚本 设置hostname ip 等检查相关系统配置是否完整
    9. 读取/etc/rc.local 启动开机程序
    10. 最后进入到mingetty 登录界面窗口 启动完成

    PATH 环境变量: 有什么作用?

    PS1  LANG PATH

    $  系统大部分地方都是可以使用,含义相同。

    [root@luffy001 proc]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    cd - ==== 进入到上一次的目录  cd $OLDPWD

    cd . ===== 进入到当前目录

    cd .. ======进入到当前目录的上一级目录

    cd ~ =======进入到当前用户的家目录

    cd  ====== 回老家,

     一般Linux系统安装完成之后需要做的优化有哪些?

    基础优化操作:

    优化条目:

    修改IP地址,网关,主机名,DNS等网络配置;

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    修改主机名: vim /etc/sysconfig/network  (hostname=" ")

    修改DNS: vim /etc/resolv.conf

    重启网卡: service network restart  或 /etc/init.d/network restart

    关闭selinux,清空iptables.

    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #修改配置文件则永久生效,但是必须要重启系统。  这样是修改selinux配置文件使其永久生效.

    grep SELINUX=disabled /etc/selinux/config 查看更改后的结果. 

    临时修改: setenforce 0

    getenforce ###查看selinux当前状态.

    清空防火墙规则:

    iptables -F 清空

    iptables -L 查看防火墙规则.

    /etc/init.d/iptables save #保存防火墙配置信息

    添加普通用户并进行sudo授权管理

    useradd user01

    echo "123456"|passwd --stdin  user01 && history -c

    visudo

    #在root  ALL=(ALL) 此行下,添加如下内容

    user01  ALL=(ALL)   ALL 

    给user01 添加sudo权限

    更新yum源及必要软件安装.

    添加国内较快的阿里云yum源,或者网易163的yum源站点

    方法1:自己配置好yum源,然后上传到Linux将

    cd /etc/yum.repos.d/ 这个目录下的 CentOS-Base.repo 文件进行保存后替换.

    cp CentOS-Base.repo  CentOS-Base.repo.bak

    然后wget http://mirrors.163.com/.help/CentOS6-Base-163.repo  && mv  CentOS6-Base-163.repo CentOS6-Base.repo

    #yum clean all  #清空yum缓存

    #yum makecache #建立yum缓存

    然后使用如下命令将系统更新到最新

    [root@c64 yum.repos.d]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY* #导入签名KEY到RPM [root@c64 yum.repos.d]# yum upgrade -y #更新系统内核到最新

    接下来安装必须的软件:

    yum -y install lrzsz ntpdate sysstat 

    lrzsz  上传下载的软件

    ntpdate  是用来与远程时间服务器进行时间更新的软件

    sysstat  是用来检测系统性能及效率的工具

    定时更新服务器时间(ntp服务器的设置)

    定时自动更新服务器时间. 将每5分钟定时向ntp_server进行时间同步.

    echo '*/5  *  *  *  *  /usr/sbin/ntpdate  ntp1.aliyun.com  >/dev/null  2>&1'  >>/var/spool/cron/root

    精简开机自启动服务

    刚装完操作系统可以只保留crond,network,syslog,sshd这四个服务

    方式一: 通过setup命令进行勾选.

    方法二:通过命令进行设置:

    for sun in `chkconfig --list|grep 3:on|awk '{print $1}'`;do chkconfig --level 3 $sun off;done

    for sun in crond rsyslog sshd network;do chkconfig --level 3 $sun on;done

    chkconfig --list|grep 3:on  进行检查.

    定时自动清理/var/spool/clientmqueue/目录垃圾文件, 防止inode节点爆满.(添加进定时任务中)

    1.先写清理日志的脚本.

    mkdir -p /server/scripts

    vim /server/scirpts/clean.sh

    #!/bin/sh

    find /var/sppol/   -type f -mtime +30|xargs rm -f

    2.然后将脚本添加进crontab定时任务中.

    #echo '*  *  *  *  * /bin/sh /server/scripts/clean.sh >/dev/null 2>&1'  >>/var/spool/cron/root

    变更默认的ssh远程连接端口,禁止root用户远程连接登录.

    (修改远程连接的端口,是在服务器端修改ssh的配置文件, vim /etc/ssh/sshd_config)

    修改端口配置文件 :

    vim /etc/ssh/sshd_config

    将port 选项注释的22 取消,然后设置为其它端口 ,建议从1024之后的端口使用

    Port 63350
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::

    修改配置禁用root账户远程登录:

    PermitRootLogin yes //允许root远程连接

    PermitRootLogin no //禁止root远程连接

    然后重启服务即可, service sshd restart/reload  

    查看端口信息: netstat -ntl

    lsof -i tcp:65530

    锁定关键文件系统(chattr 设置文件系统锁 和lsattr进行查看)

    [root@c64 ~]# chattr +i /etc/passwd

    [root@c64 ~]# chattr +i /etc/inittab

    [root@c64 ~]# chattr +i /etc/group

    [root@c64 ~]# chattr +i /etc/shadow

    [root@c64 ~]# chattr +i /etc/gshadow

    使用chattr命令后,为了安全我们需要将其改名

    [root@c64 ~]# /bin/mv /usr/bin/chattr /usr/bin/任意名称

    调整文件描述符大小

    文件描述符,形式上是一个非负整数,它是一个索引值,,Unix,Linux这样的操作系统.

    standard input  0

    standard output  1

    standard error  2

    查看文件描述符大小: ulimit -n

    echo ' *  - nofile  65535' >> /etc/security/limits.conf

    配置之后,重新登录即可生效.

    调整字符集,使其支持中文

    echo $LANG 查看目前的字符集

    sed -i 's#en_US.UTF-8#zh_CN.UTF-8#g'    /etc/sysconfig/i18n  sed进行替换当前字符集

    source /etc/sysconfig/i18n source使其生效.

    去除系统及内核版本登录前的屏幕显示

    [root@luffy001 yum.repos.d]# cat /etc/redhat-release
    CentOS release 6.9 (Final)
    [root@luffy001 yum.repos.d]# >/etc/redhat-release
    [root@luffy001 yum.repos.d]# cat /etc/redhat-release
    [root@luffy001 yum.repos.d]# cat /etc/issue
    CentOS release 6.9 (Final)
    Kernel on an m

    [root@luffy001 yum.repos.d]# >/etc/issue
    [root@luffy001 yum.repos.d]# cat /etc/issue
    [root@luffy001 yum.repos.d]#

    这样就无法知道当前系统是Linux什么版本的了

    内核参数优化

    说明:本优化适合apache,nginx,squid多种等web应用,特殊的业务也可能需要略作调整。

    vim /etc/sysctl.conf

    net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time =600 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.core.somaxconn = 16384 net.core.netdev_max_backlog = 16384 net.ipv4.tcp_max_orphans = 16384 #一下参数是对iptables防火墙的优化,防火墙不开会有提示,可以忽略不理。 net.ipv4.ip_conntrack_max = 25000000 net.ipv4.netfilter.ip_conntrack_max = 25000000 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120

    [root@localhost ~]# sysctl -p #使配置文件生效

    提示:由于CentOS6.X系统中的模块名不是ip_conntrack,而是nf_conntrack,所以在/etc/sysctl.conf优化时,需要把net.ipv4.netfilter.ip_conntrack_max 这种老的参数,改成net.netfilter.nf_conntrack_max这样才可以。

    在6.4上是

    net.nf_conntrack_max = 25000000
    net.netfilter.nf_conntrack_max = 25000000
    net.netfilter.nf_conntrack_tcp_timeout_established = 180
    net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
    net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
    net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
    另外,此优化过程可能会报错.
    modprobe ip_conntrack echo "modprobe ip_conntrack" >> /etc/rc.local
    6.4报错:
    error: "net.nf_conntrack_max" is an unknown key
    error: "net.netfilter.nf_conntrack_max" is an unknown key
    error: "net.netfilter.nf_conntrack_tcp_timeout_established" is an unknown key
    error: "net.netfilter.nf_conntrack_tcp_timeout_time_wait" is an unknown key
    error: "net.netfilter.nf_conntrack_tcp_timeout_close_wait" is an unknown key
    error: "net.netfilter.nf_conntrack_tcp_timeout_fin_wait" is an unknown key
    这个错误可能是你的防火墙没有开启或者自动处理可载入的模块ip_conntrack没有自动载入,
    解决办法有二,一是开启防火墙,二是自动处理开载入的模块ip_conntrack
    modprobe nf_conntrack
    echo "modeprobe nf_conntrack" >> /etc/rc.local

    3、6.4版本上

    error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
    error: "net.bridge.bridge-nf-call-iptables" is an unknown key
    error: "net.bridge.bridge-nf-call-arptables" is an unknown key
    这个错误是由于自动处理可载入的模块bridge没有自动载入,解决办法是自动处理开载入的模块ip_conntrack
    modprobe bridge
    echo "modprobe bridge" >> /etc/rc.local
    综上,大概有13个优化点针对Linux的系统基础优化环节.


    博文阅读密码felix
  • 相关阅读:
    C#中泛型学习笔记
    ASP.NET C#各种数据库连接字符串大全——SQLServer、Oracle、Access
    单点登录SSO
    Package Manager Console 向VS2010安装 EntityFramework
    JavasSript中类的实现(1)
    Java线程实现提供者消费者模式
    MySQL插入语句解决唯一键约束
    【BZOJ4000】【LOJ2104】【TJOI2015】棋盘 (状压dp + 矩阵快速幂)
    【AGC005F】Many Easy Problems (NTT)
    【Luogu4630】【APIO2018】 Duathlon 铁人两项 (圆方树)
  • 原文地址:https://www.cnblogs.com/Enzoo/p/9942410.html
Copyright © 2020-2023  润新知