Linux基础-CentOS 6 和CentOS 7 区别
nanshan 2024-10-11 13:30 10 浏览 0 评论
虽然CentOS6已经不再维护,CentOS7将在2024年6月不再维护,目前国内CentOS使用量还是挺大,CentOS6和CentOS7区别还是有必要了解下。
版本 | 发行 | 完全更新 | 停止更新 |
3 | 2004-03-19 | 2006-07-20 | 2010-10-31 |
4 | 2005-03-09 | 2009-03-31 | 2012-02-29 |
5 | 2007-04-12 | 2014-01-31 | 2017-03-31 |
6 | 2011-07-10 | 2017-05-10 | 2020-11-30 |
7 | 2014-07-07 | 2020-08-06 | 2024-06-30 |
8 | 2019-09-24 | 2021-12-31 | 2021-12-31 |
01 系统配置
条目 | CentOS6方法 | CentOS7方法 | 说明 |
主机名 | 临时:hostname 重启生效: /etc/sysconfig/network中的HOSTNAME= | 临时重启生效: hostnamectl set-hostname 方法2:永久可编辑/etc/hostname | hostname都临时修改主机通用命令 |
字符集 | 方法: cat /etc/sysconfig/i18n LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 | 方法1: localectl set-locale LANG=en_GB.utf8 方法2: /etc/locale.conf中的LANG=LANG=en_US.UTF-8 | en_US.UTF-8 zh_CN.utf8 |
时区 | 方法: ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime | 方法1: ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 方法2:timedatectl set-timezone Asia/Shanghai | |
修改时间 | 方法: date -s "2021-11-02 18:08:00" | 方法1:date -s "2021-11-02 18:08:00" 方法2:timedatectl set-time "2021-11-02 18:08:00" | timedatectl同步时间需要timedatectl set-ntp false |
grub(GRand Unified Bootloader) | /boot/grub/grub.conf的kernel中加入需要添加的参数 | /etc/default/grub的GRUB_CMDLINE_LINUX中加入需要添加的参数 | centos6 使用grub, centos7使用grub2配置文件的名称改变了。在grub中,配置文件为grub.conf或menu.lst(grub.conf的一个软链接),在grub2中改名为grub.cfg。 |
内核 | 默认内核版本是2.6.X 查看内核awk -F "[()]" '/^title/{print $2}' /boot/grub/grub.conf 修改内核:修改/boot/grub/grub.conf中的default | 默认内核版本是3.10.x 查看使用内核grub2-editenv list和所有内核awk -F"'" '/^men/{print $2}' /boot/grub2/grub.cfg 修改内核grub2-set-default "CentOS Linux (3.10.0-1160.45.1.el7.x86_64) 7 (Core)" | 不要手动修改/boot/grub2/grub.cfg文件,该文件是通过/etc/grub.d 和/etc/default/grub生产 |
单用户模式修改密码 | grub选择内核界面输入e,选择kernel行输入e,在最后添加1,回车enter,回到kernel输入b,进入单用户模式;passwd root设置密码,然后reboot | grub选择内核界面输入e,选择linux16行,root=* 后面全部去掉,添加rw init=/sysroot/bin/bash,输入ctrl+x;执行命令chroot /sysroot ,passwd root,exit,reboot | centos6去掉改行console=ttyS0,115200;centos7还有其他修改root密码的方式,但是大体思路类似 |
开机脚本 | /etc/rc.d/rc.local | rc-local.service管理 | /etc/rc.local是/etc/rc.d/rc.local的软链接 |
网卡名 | 传统的kernel网卡命名方法 ethX,这种命名方法的结果不可预知的 | biosdevname和net.ifnames命令规范 net.ifnames的命名规范为: 设备类型+设备位置+数字 biosdevname的命名规范为emx,p<slot>p<ethernet port>,p<slot>p<ethernet port>_<virtual interface> 同一个网卡通常同时具有多个维度的名称,systemd在选取的时候,按照有先后次序,使用先命中的;顺序可以简单理解为(eno1-ens1-enp1) | 为什么centos7不再使用以前的ethX方式?根本是因为之前ethX方式是不确定的,每次启动可能都不同(如果没有用户自定义网卡名称的前提下) |
服务类 | 网络管理:network 防火墙:iptables 时间同步:ntpd | 网络管理:NetworkManger或者network 防火墙:firewalld或者iptables 时间同步:chronyd或者ntpd | 查询ntpq -p 查询chronyc sources |
文件系统 | 默认是ext4(Fourth EXtended filesystem) | 文件系统默认是xfs | ext4 分别支持1EB文件系统,xfs最大支持8EB |
目录结构 | centos6的/bin, /sbin, /lib, /lib64在/下 | centos7的/bin, /sbin, /lib, /lib64移到/usr下 | 实际使用没有影响,有目录软链接 |
登录提示 | /etc/issue 提示CentOS release 6.x | /etc/issue 提示\S,系统版本 |
02 系统管理
2.1 linux启动方式
条目 | sysvinit | upstart | systemd |
说明 | 第一代,传统,兼容最多,基于运行级别的系统。 | 第二代,形似systemd雏形,基于事件的系统。 | 第三代,配合cgroup,systemd完全接管整个系统,采用了 socket / D-Bus activation 等技术启动服务,系统初始化时服务并行启动。 |
目录 | /etc/init.d目录 | /etc/init目录 | /usr/lib/systemd目录 |
软件包 | sysvinit-tools提供相关命令 | upstart | systemd |
提供命令 | last lastb mesg wall killall5 pidof | halt init initctl poweroff reboot reload restart runlevel shutdown start status stop telinit | bootctl busctl coredumpctl hostnamectl journalctl kernel-install localectl loginctl machinectl systemctl systemd-* timedatectl udevadm halt init poweroff reboot runlevel shutdown telinit udevadm |
查看启动方式 | stat /proc/1/exe | stat /proc/1/exe File: '/proc/1/exe' -> `/sbin/init' | stat /proc/1/exe File: ‘/proc/1/exe’ -> ‘/usr/lib/systemd/systemd’ |
操作系统 | Ubuntu 14,CentOS 5/6/7 | Ubuntu 14,CentOS 6 | Ubuntu 16及以后,CentOS7及以后,Fedora 15及以后 |
基于 systemd 的发行版中运行大部分有 sysv 初始化工具。
rpm -ql systemd |grep 'bin/' 查找某个包提供命令集
2.2 运行级别
运行级别 | CentOS6 | CentOS7 | 说明 |
0 | init 0、halt、poweroff | runlevel0.target -> poweroff.target | 关闭系统,CentOS6不要设置该级别 |
1 | init 1 | runlevel1.target -> rescue.target | 单用户模式(root权限,用于系统维护,无网络连接,不运行守护进程) |
2 | init 2 | runlevel2.target -> multi-user.target | 多用户模式,无网络连接,不运行守护进程,没有NFS(命令行) |
3 | init 3 | runlevel3.target -> multi-user.target | 完全多用户模式,正常启动系统(命令行) |
4 | init 4 | runlevel4.target -> multi-user.target | 未使用,保留 |
5 | init 5 | runlevel5.target -> graphical.target | 多用户X11,带图形界面 |
6 | init 6 | runlevel6.target -> reboot.target ctrl-alt-del.target -> reboot.target | 系统重启,CentOS6不要设置该级别 |
查看 | grep ^id /etc/inittab | systemctl get-default | graphical.target和multi-user.target |
临时生效 | init 3 | systemctl isolate multi-user.target | 立即切换 |
永久生效 | sed -i '/^id/{s/id:./id:3/}' /etc/inittab | systemctl set-default multi-user.target | 重启生效 |
2.3 服务
2.3.1 服务管理
条目 | sysvinit | systemd | 备注 |
查看 | service sshd status | systemctl status sshd | |
启动 | service sshd start | systemctl start sshd | |
关闭 | service sshd stop | systemctl stop sshd | |
重启 | service sshd restart | systemctl restart sshd | |
重新加载 | service sshd reload | systemctl reload sshd | 重启读取配置文件(不停掉服务) |
查看所有服务状态 | service --status-all | systemctl list-unit-files | service命令显示比较混乱 |
查看自启 | chkconfig --list | systemctl list-unit-files | 查看所有服务开机自启动或者禁止情况 |
查看单个服务自启 | chkconfig --list sshd | systemctl is-enabled sshd systemctl list-unit-files sshd.service | 查看单个服务是否开机自启 |
设置自启 | chkconfig sshd on/off | systemctl enable/disable sshd | 服务开机自启/不开机自启 |
重新加载服务 | chkconfig --add sshd | systemctl daemon-reload | 修改服务文件(不是配置文件)后,重新加载服务 |
查看服务环境变量 | /etc/sysconfig/sshd | systemctl show sshd | CentOS6 服务文件/etc/init.d/sshd一般都会指定配置 |
initctl 是upstart方式服务管理工具,使用较少,不在对比表格中呈现;
systemctl --failed来显示失败的服务,如果有失败使用reset-failed 处理;
2.3.2 服务编写
条目 | sysvinit | upstart | systemd | 备注 |
编写服务 | 详情配置见附件 # cat /etc/init.d/sshd # source function library . /etc/rc.d/init.d/functions # pull in sysconfig settings [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd start() { … } stop() { … } restart() { … } reload() { … } status() { … } case "$1" in start) start ;; stop) stop ;; … esac exit $RETVAL | cat /etc/init/ssh.conf description "OpenSSH server" start on runlevel [2345] stop on runlevel [!2345]respawn respawn limit 10 5 umask 022 env SSH_SIGSTOP=1 expect stop # 'sshd -D' leaks stderr and confuses things in conjunction with 'console log' console none pre-start script test -e /etc/ssh/sshd_not_to_be_run && { stop; exit 0; } mkdir -p -m0755 /var/run/sshd end script exec /usr/sbin/sshd -D | # cat /usr/lib/systemd/system/sshd.service [Unit] Description=OpenSSH server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] Type=notify EnvironmentFile=/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D $OPTIONS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target | /etc/init.d/目录下服务文件需要有可以执行权限 |
PID管理 | 需要生成PID文件,用于后期关闭、重启等使用 | 无需PID文件,upstart会记录主进程ID,子进程ID没有记录 | 无需PID文件,所有进程ID由cgroup统一接管 | |
资源限制 | 除了ulimit,没有其他限制进程资源的简便方法 | 除了ulimit,没有其他限制进程资源的简便方法 | 除了ulimit,还支持部分cgroup限制,可对进程做内存限制和cpu资源限制等 | systemd-cgls systemd-cgtop查看cgroup的内容和性能 |
守护进程 | sysvinit需要自行实现 nohup & screen supervisor | upstart和systemd类似,将程序运行在前台即可 | 由systemd启动,将程序运行在前台即可 |
2.4 日志管理
2.4.1CentOS6和CentOS7日志对比
条目 | CentOS6 | CentOS7 | 备注 |
概况 | 使用rsyslog收集日志存在在/var/log/messages、/var/log/dmesg、/var/log/secure等,需手动查看 | systemd-journald日志默认经过压缩,是二进制文件,无法直接查看,使用journalctl查看,可以使用多个因素匹配,比如时间段、服务名、日志级别等等。 | centos7默认使用systemd-journald做日志中心库,使用rsyslog来持久化日志,使用logrotate来轮转日志文件。 |
日志查看 | /var/log/messages记录绝大部分日志 | journalctl | 查看所有日志 |
单个服务 | 需要单独指定,类似/var/log/ssh | journalctl -u sshd 远程服务sshd日志 | 查看sshd日志,-o verbose详细输出 |
日志过滤 | tailf -n 10 /var/log/secure 跟踪查看 tail /var/log/secure 查看最新日志 sed -n '/Nov 10 13:03/,/Nov 10 14:04/p' /var/log/secure 指定时间段日志 | journalctl -u sshd -n 2 -f跟踪查看 journalctl -e 查看最新日志 journalctl -S yesterday --until="2021-11-10 13:59:00" -u sshd指定时间段日志 | -u unit 指定服务名 -f follow跟踪实时日志 -n lines 显示最新日志行数 -e pager-end 显示最新日志 -S since -U until 包括当前时间点 |
系统日志 | /var/log/dmesg /var/log/messages | journalctl -k 本次启动内核相关日志 journalctl -b 本次启动相关日志 | -k dmesg 内核日志 -b boot启动日志,是包括-k信息 |
日志使用量 | du -sh /var/log/ 默认是持久化 | journalctl --disk-usage 默认存在内存中 | centos7默认存在在/run/log/journal目录下,由Storage=auto参数控制 |
日志持久化 | 已持久化存储,日志默认都存在该目录/var/log/ 日志输入链路:service daemon ---> rsyslog ---> /var/log | systemd-journald数据持久化方式 mkdir /var/log/journal systemctl restart systemd-journald 日志输入链路:systemd --> systemd-journald --> ram DB --> rsyslog -> /var/log | CentOS7持久化后,/run/log/journal目录已经不存在,取而代之的是/var/log/journal目录 |
日志写入方式 | 自行输出到文件中,或通过syslog记录 | 只要程序由systemd启动,只需将输出日志到标准输出或标准错误 | Service支持StandardOutput=syslog |
业务日志 | 自行输出到文件中,或通过syslog记录 | 不建议将业务日志输出到journal,会导致2个问题: 如果没有做日志持久化,则默认存在内存中,会导致最多一半的内存被占用 存储量很大,会导致查询其他日志很耗时 | CentOS7解决办法:输出到syslog,Service支持StandardOutput=syslog |
日志帮助 | man 5 rsyslog.conf | man 5 journald.conf man systemd-journald man 5 systemd.service man 5 systemd.unit man 5 systemd.exec | systemd帮助文档较多 |
journalctl --verify 检查journal日志一致性,会显示二进制文件的位置。
rsyslog缺点:日志消息内容无法验证、数据格式松散、日志检索低效、有限的元数据保存、无法记录二进制数据等
2.4.2日志文件说明
日志文件 | 说明 |
/var/log/messages | 公共日志即核心系统日志文件,除了邮件日志。 |
/var/log/cron | 周期性计划任务日志 |
/var/log/dmesg | 内核自检日志 |
/var/log/maillog | 系统电子邮件日志 |
/var/log/secure | 用户认证相关的安全日志,包括ssh/su/sudo/用户/密码等相关事件 |
/var/log/lastlog | 用户最近的登录日志,二进制文件,使用命令lastlog查看 |
/var/log/btmp | 失败的、错误的登录日志,二进制文件,使用命令lastb查看 |
/var/log/wtmp | 永久记录所有用户的登陆、注销信息,同时记录系统的后动、重启、关机事件,二进制文件,使用命令last查看 |
个人理解btmp和wtmp中tmp是attempts的缩写。
2.4.3日志等级说明
日志级别 | 重要程度 | 说明 |
0 | emerg | system is unusable 系统不可用 |
1 | alert | action must be taken immediately 必须采取行动处理 |
2 | crit | critical conditions 紧急状态 |
3 | err | error conditions 错误状态 |
4 | warn | warning conditions 警告状态 |
5 | notice | normal but significant condition 正常但是需要注意 |
6 | info | informational 信息 |
7 | debug | debug level messages 调试级别信息 |
数字级别越小,优先级越高,消息越重要
cat /proc/sys/kernel/printk 7 4 1 7
console_loglevel 控制台日志级别:优先级高于该值的消息将被打印至控制台 default_message_loglevel 缺省的消息日志级别:将用该优先级来打印没有优先级的消息 minimum_console_loglevel 最低的控制台日志级别:控制台日志级别可被设置的最小值(最高优先级) default_console_loglevel 缺省的控制台日志级别:控制台日志级别的缺省值
相关推荐
- 详解 HTTPS、TLS、SSL、HTTP区别和关系
-
一、什么是HTTPS、TLS、SSLHTTPS,也称作HTTPoverTLS。TLS的前身是SSL,TLS1.0通常被标示为SSL3.1,TLS1.1为SSL3.2,TLS1.2为SSL...
- 锐安信SSL证书自动化运维系统:灵活管理SSL/TLS证书全生命周期
-
点击上方关注“锐成云分销”,云建站解决方案专家!域名、SSL证书、DNS、主机一站选齐在SSL/TLS证书的生命周期管理中,证书的各种操作方式是基础且核心的部分之一,更是保障用户数据传输加密的关键。这...
- 宝塔免费的 SSL/TLS 证书如何续签
-
申请之前,请确保域名已解析,如未解析会导致审核失败(包括根域名)宝塔SSL申请的是免费版TrustAsiaDVSSLCA-G5证书,仅支持单个域名申请有效期1年,不支持续签,到期后需要重新申...
- HTTPS、HTTP、TLS/SSL工作及握手原理、PKI/CA密钥体系
-
一、HTTPS与HTTP介绍二、TLS/SSL工作原理三、TSL/SSL握手过程四、HTTPS性能优化五、PKI体系一、HTTPS与HTTP介绍1.Https(SecureHypetextTran...
- 什么是SSL证书卸载 SSL证书卸载有什么作用
-
SSL证书是数字证书的一种,安装部署的话可以对网站起到身份验证和数据加密的作用。网站部署SSL证书,相对就必然会有SSL证书卸载,那么SSL证书卸载是什么呢?SSL证书卸载有什么作用?随着SSL通信量...
- 让SSL/TLS协议流行起来:深度解读SSL/TLS实现1
-
一前言SSL/TLS协议是网络安全通信的重要基石,本系列将简单介绍SSL/TLS协议,主要关注SSL/TLS协议的安全性,特别是SSL规范的正确实现。本系列的文章大体分为3个部分:SSL/TLS协...
- 苹果、谷歌、微软等一致同意!SSL/TLS证书最长有效期锐减至47天
-
快科技4月14日消息,苹果此前向CA/B论坛(负责管理SSL/TLS证书的行业组织)提议,将所有证书有效期缩短至45天。日前CA/B论坛服务器证书工作组投票通过SC-081v3提案,最终决定将SSL/...
- Android怎么设置端口转发,将访问本设备的端口转到另外一台设备
-
一、Android系统怎么设置端口转发,将访问本设备的端口转到另外一台设备?要设置端口转发,您需要先在Android设备上安装一个支持端口转发的应用程序。其中一个常用的应用是"Termux...
- 大神级产品:手机装 Linux 运行 Docker 如此简单
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:灵昱Termux作为一个强大的Android终端模拟器,能够运行多种Linux环境。然而,直接在Termux上运行Docker并不可行,需要...
- 关于H3C交换机的SSH功能配置方法(华三交换机ssh配置)
-
对于交换机的初步学习,作为初学者的我,还望诸位不吝赐教。若存在不足之处,烦请大家多提宝贵意见。同样身为初学者的我们,亦可携手共进,相互分享技术经验。一、本地用户配置(核心步骤)1.创建用户并设置密码...
- Linux常用操作ssh(linux中的ssh命令)
-
ssh#p是小写ssh-p22user@hostsftp#连接sftp-P22root@host#将文件上传到服务器上:put[本地文件的地址][服务器上文件存储的位置]#将...
- 小白心得,如何使用SSH连接飞牛系统(fnos)?
-
一、背景作为一个刚接触飞牛系统的小白,在研究飞牛os的时候,发现很多功能都需要连接ssh,但是如何使用SSH连接飞牛系统成为入门飞牛os的一道坎。下面以自己的学习经历详细记录下过程吧。二、系统设置1、...
- 如何在 Windows 11 或 10 上使用 Winget 安装 OpenSSH
-
SSH(SecureShell)是大多数开发人员和系统管理员用来通过Linux远程连接托管服务器或任何云服务的工具,因为SSH在Linux中是内置的。然而,对于Windows呢?是的...
- linux文件之ssh配置文件的含义与作用
-
ssh远程登录命令是操作系统(包括linux和window系统)下常用的操作命令,可以帮助用户,远程登录服务器系统,查看,操作系统相关信息。linux系统对于ssh命令有专门保存其相关配置的目录和文件...
- 害怕Linux SSH不安全?这几个小妙招安排上!
-
ssh是访问远程服务器最常用的方法之一,同时,其也是Linux服务器受到攻击的最常见的原因之一。不过别误会...我们并不是说ssh有什么安全漏洞,相反,它在设计上是一个非常安全的协议。但是安...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
- 最近发表
-
- 详解 HTTPS、TLS、SSL、HTTP区别和关系
- 锐安信SSL证书自动化运维系统:灵活管理SSL/TLS证书全生命周期
- 宝塔免费的 SSL/TLS 证书如何续签
- HTTPS、HTTP、TLS/SSL工作及握手原理、PKI/CA密钥体系
- 什么是SSL证书卸载 SSL证书卸载有什么作用
- 让SSL/TLS协议流行起来:深度解读SSL/TLS实现1
- 苹果、谷歌、微软等一致同意!SSL/TLS证书最长有效期锐减至47天
- Android怎么设置端口转发,将访问本设备的端口转到另外一台设备
- 大神级产品:手机装 Linux 运行 Docker 如此简单
- 关于H3C交换机的SSH功能配置方法(华三交换机ssh配置)
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)