重庆思庄Oracle、Redhat认证学习论坛

标题: CentOS关机大法 [打印本页]

作者: nba333    时间: 2017-7-31 16:54
标题: CentOS关机大法
第1页:Linux运行级别

  学习Linux,兴趣是最好的老师,如果你只对图形界面有感觉,选择学习Linux似乎不是一个最佳选择,因为Linux的命令行尤其出色。来到Linux世界,最好的办法还是保持对命令行的兴趣,把图形界面抛到脑后。有了兴趣,接下来怎么做呢?俗话说只看不练假把式,要想有一个健康强壮的身体,唯有不断运动,坚持锻炼。同样道理,要想学好Linux,就要进行实战,在实验环境中不断练习。今天,我们就先来聊一聊命令行下Linux的关机方法。

                               
登录/注册后可看大图

  Linux的多用户、多任务
  我们知道Windows系统,如果有人使用远程桌面登录了系统,当另外一个用户也要远程访问这台Windows机器时,系统会提示之前的用户会被强制断开远程连接。也就同一时刻,只能有一个用户使用一台Windows系统的计算机。 而Linux支持多用户、多任务。同一时刻,可以有多个用户同时登录一台Linux主机,可以远程,也可以本地,当然呢本地只能有一个用户登录。而且linux下的大多程序是支持多用户的,比如Linux中的文本编辑器vi,多个用户同时登录了Linux,也可以同时使用vi。
  Linux的这种多用户、多任务的特性使得Linux系统的关机变得比较重要,不能像使用Windows系统一样随意点击关机按钮关闭系统了。试想,Linux环境中,同时有多个远程用户在使用一台服务器,每个远程用户都在执行一些任务,其中一个用户执行了立刻关机命令,其它用户的数据未经保存,来不及写到文件中,造成数据的丢失和文件系统的损坏,那可就让人蛋痛了,特别是在实际工作环境中这种情况是需要杜绝发生的。
  Linux的运行级别
  简单的说,运行级就是操作系统当前正在运行的功能级别。Linux的运行级别从1到6 ,具有不同的功能。
  以下是不同的Linux的 运行级别的含义:
  # 0 - 停机。把initdefault设置为0约等于自杀,如果是新上架的机器你还可以有机会重装系统,如果是生产系统那你就哭吧!
  # 1 - 单用户模式
  # 2 - 多用户,没有NFS 。NFS是Network File System的缩写,Linux环境中的磁盘共享
  # 3 - 完全多用户模式,这也是Linux系统默认的运行级别
  # 4 - 安全模式
  # 5 - Xwindows图形界面
  # 6 - 重新启动
  老版本的Linux的运行级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是放在/etc/rc.d目录下的文件。在大多数的Linux发行版本中,启动脚本都是位于/etc/rc.d/init.d中的。这些脚本被用ln命令连接到/etc/rc.d/rcn.d 目录。(这里的n就是运行级0-6),init启动时,它会在/etc/inittab内查找默认的运行级别,通常是3多用户模式。而在CentOS 7当中不再使用/etc/inittab的运行级别设置,但依然可以使用init 0来关机。
  第2页:CentOS关机:查看在线用户及进程
  那么Linux环境下究竟怎么才能正确的关机呢?
  第1步:作为管理员,第一步要查看谁在使用这台机器,有哪些用户,用户正在执行哪些程序
  查看谁在这台Linux服务器,使用的命令是who。在命令行执行可以返回哪些用户通过哪个终端在何时登录了这台服务器,登录时使用的IP地址是什么,如下图示。

                               
登录/注册后可看大图
查看谁在使用系统

  查看所有用户下在执行的程序可以使用ps命令加适当的参数,ps命令的具体使用方法在以后实验中会详细说明。

                               
登录/注册后可看大图
查看在运行的程序

  第2步:通知其它用户系统将要关机
  可以在执行关机命令前以邮件或电话等方式通知其它在线使用者系统将要关机,也可以在执行关机命令时加参数在其它使用者屏幕提示关机时间。强调 一点,关机前事先通知很重要!!!通知的方法不同的公司有相应的运维管理制度,务必遵循要求执行,否则后果很严重。

                               
登录/注册后可看大图
数据丢失很严重

  第3步:关机命令的正确使用
  在Linux系统中,为了加快数据的读取速度,在默认的情况下,正在执行的数据会先暂时保存在内存当中,也就是Cache,而不是直接写到硬盘中保存。由于内存的读取速度比硬盘要快10位以上,这种运行机制,使得缓存在内存中数据读取速度要快上许多。
  不过,这种运行机制也会带来一些问题,那就是一旦LinuX系统因为某些特殊情况造成不正常关机,例如在机房的异常断电或者维护人员失误操作直接关闭了服务器电源的情况下,有一部分数据存储在缓存中还没有写入硬盘当中,从而造成部分数据的丢失,文件损坏。这会对系统的正常运行是严重的影响。那在Linux系统中怎么避免这种意外呢?有个sync指令用来把缓存中有更新的数据的写入到磁盘。shutdown/reboot/halt等命令在关机动作之前会调用sync命令更新数据写入磁盘,但为了更保险关机前多执行几次sync命令吧!
  第3页:CentOS关机:shutdown命令格式
  关机命令:shutdown
  系统管理员会通知所有登录的用户系统将要关闭,并且新的用户不能再登录。通过执行参数shutdown命令可以直接关闭Linux主机或者在指定时间后关机,或执行关机操作再重新启动主机。在这个过程中其它用户运行的像vi、mail之类的程序可以有时间把正在编辑的文档保存并正常退出。 shutdown命令发送信号给init程序,要求它改变系统运行级别runlevel为0。shutdown命令可以完成以下操作:
  1. 关机模式选择:是要关机或重新启动均可。
  2. 关机时间选择: 可以指定立刻关机,也可以指定在某一个特定的时间关机。
  3. 关机告警信息:在关机之前,可以将指定的信息发送给正在登录的用户。
  4. 仅显示警告信息:有些情况下要进行一些系统维护或更新操作,在这段时间不想让其他的用户登录系统以免造成数据丢失或其它问题,这种情况可以使用shutdown命令加适当的参数来通知其它用户,但实际上并不是真的要关闭系统。
  那么shutdown命令到底如使用何呢?直接执行shutdown呢还是需要加参数后执行呢?随时随地的“man”一下,是个很好的学习Linux的习惯。也可以使用shutdown --help来查看命令的使用方法,相比较而言,man shutdown返回的是更详细的命令解释。

                               
登录/注册后可看大图
shutdown命令使用说明
  shutdown命令简单的语法规则是:
  shutdown [-krhc] [时间] [警告信息内容]
  参数说明:
  -k : 并不是真的关机,只发送警告信息给登录用户
  -r : 在将系统的所有服务关闭之后立刻重新启动系统
  -h : 将系统的所有服务关闭之后 ,立刻关机。
  -c : 取消已经在进行的 shutdown 命令操作。
  时间 :指定系统关机的时间 !若没有这个参数,系统默认 1 分钟后自动执行shutdown操作。

                               
登录/注册后可看大图
shutdown 简要帮助

  第4页:CentOS关机:shutdown应用实例

  应用示例:

                               
登录/注册后可看大图

  在执行命令shutdown -h 10 "System will shutdown in 10 minitus,please save your file!!!" 之后,系统告诉大家,这台机器将会在十分钟后关机!并且会将信息反复显示在使用者屏幕上! 在10分钟之内系统管理员可以输入 shutdown -c 来取消这次的关机指令。如下图示

                               
登录/注册后可看大图

  如果你在执行shutdown命令时什么参数都没有加,直接执行shutdown命令后,系统默认会在1分钟后进行关机!

  shutdown -h now立刻关机,等同于shutdown -h 0

  shutdown -h 23:00系统在23:00关机,若在23:00事执行此命令,则系统会在第二天23:00关机

  shutdown -h +10系统再过十分钟后自动关机

  shutdown -r now系统立刻重新启动

  shutdown -r +10"Warning!!! The system will reboot in 10 minitues" 再过十分钟系统会重新启动,并显示后面的告警信息给所有正在登录的用户

  reboot命令可以起到和shutdown -r相同的作用,建议执行reboot命令前执行几次数据写入命令 sync,保证数据同步写入到磁盘。

                               
登录/注册后可看大图

  reboot -help

  关机命令halt, poweroff与shutdown的区别

  shutdown命令发送信号给init程序,要求它改变运行级别runlevel为0 ,init 0会在进行数据写入磁盘等操作后调用halt或者poweroff。在没有acpi管理的系统上,halt只是关闭了操作系统,主机仍处于电源加电状态,需要手动按电源按钮断电,而poweroff会发送一个关闭电源的信号给acpi。 在CentOS 7中使用systemd 来进行服务管理,这三个命令没有区别,因为halt、poweroff、shutdown都是以符号链接到/bin/systemctl的,如下图所示。所以,你只需要按自己的使用习惯选择其中一个命令就好。

                               
登录/注册后可看大图

  第5页:CentOS关机:systemctl实现关机
  CENTOS 7下systemctl实现关机
  CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。
  # systemctl [命令]
  命令参数包括:
  halt
  进入系统关闭的模式,电源可能不切断
  poweroff
  进入系统关机模式,电源切断
  reboot
  直接重新启动
  suspend
  系统挂起,进入休眠模式
  例如重新启动系统,可以执行命令# systemctl reboot

                               
登录/注册后可看大图
systemctl --help

  结束语:
  正确的使用开关机命令可以防止硬件的异常损坏,保证系统的正常、稳定的运行。
  1.为了避免瞬间断电造成的Linux文件系统损坏,建议做为服务器的Linux主机使用双电源+UPS系统来持续提供稳定的电力;
  2.养成良好的操作习惯,避免直接使用root身份直接登入系统,创建普通用户登入系统、以普通用户身份启动应用程序。
  3.遵循正确的系统关机方式,防止系统及硬件的损坏,正确使用shutdown, poweroff等指令关机。






欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2