Linux网络操作系统项目化教程 课件 项目6、7 管理进程、管理磁盘_第1页
已阅读1页,还剩205页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目6管理进程《Linux网络操作系统项目化进程》学习目标/Target了解进程的概念,能够说出什么是进程及进程的特点掌握进程的状态,能够说出进程有哪些状态以及各种状态之间的转换了解进程标识符,能够说出进程标识符的含义学习目标/Target掌握进程查看命令,能够熟练使用命令查看进程掌握进程终止命令,能够熟练使用命令终止进程了解任务的前台与后台调度,能够使用命令实现进程的前台与后台调度学习目标/Target掌握服务管理,能够熟练使用systemctl命令管理任务了解计划任务,能够使用at命令设定计划任务掌握crontab命令的使用,能够使用crontab命令完成项目任务项目导入作为技术服务部门,需要监测管理公司的服务器使用情况,为了服务器更好的工作,上级领导交代邦小苑做一个定时任务,要求每周六凌晨3点重启系统,并重启http服务。想到之前的数据库都是每周五凌晨备份,领导让邦小苑更改一下,要求每天凌晨备份数据库。邦小苑简单梳理了一下,上级领导交代的定时任务有以下3项:任务6-1:系统维护。任务6-2:重启http服务。任务6-3:备份数据库。目录/Contents010203进程概述进程管理常用命令任务的前台与后台调度04服务管理目录/Contents050607计划任务任务6-1系统维护任务6-2重启http服务08任务6-3备份数据库进程概述6.16.1.1进程概念

先定一个小目标!了解进程的概念,能够说出什么是进程及进程的特点6.1.1进程概念进程就是一个程序运行所需要的特殊环境。进程就是一个二进制程序的执行过程。当程序执行结束之后,进程会随之消失,进程所有的资源会被系统回收。6.1.1进程概念早期的CPU都是单核的,一次只能执行一个程序,即运行一个进程。但是,在人们使用计算机时可以同时运行多个程序,例如,一边聊微信一边看视频,这是因为计算机采用了时间片分时调度策略,多个进程在一个队列中排队轮流执行,系统为每个进程分配一个时间段,即进程可以运行的时间,称作进程的时间片。如果一个进程的时间片用完了,CPU将暂停该进程的执行,将该进程移到队列的末尾,转而执行下一个进程。时间片分时调度策略6.1.2进程状态

先定一个小目标!熟悉进程的状态,能够说出进程有哪些状态以及各种状态之间的转换6.1.2进程状态运行态睡眠态就绪态进程在执行过程中,主要有3种状态,分别是就绪态、运行态和睡眠态。6.1.2进程状态处于就绪态的进程,该进程所需的其他资源都已经分配到位,只等待系统分配CPU。当把CPU分配给就绪态的进程时,进程会立刻从就绪态转变为运行态。1.就绪态2.运行态处于运行态的进程是指已经分配到CPU,正在运行的进程。处于运行态的进程,如果时间片用完,进程就会从运行态进入就绪态。如果因为其他原因而失去CPU,进程就会从运行态进入睡眠态。6.1.2进程状态进程因为某种原因暂时不能拥有CPU,就会进入睡眠态。根据进入睡眠态的原因,可以将睡眠态分为阻塞和挂起两种状态。阻塞:一般是由外部I/O调用等原因造成的睡眠态,进程需要等待所需的I/O资源,即使强制中断睡眠,进程也无法运行。挂起:进程对应的当前用户请求已经处理完毕,暂时退出CPU,当用户再次发出请求时,进程可随时被唤醒,进入就绪态。3.睡眠态6.1.2进程状态进程在运行过程中,通常会在这3种状态之间转换,转换过程如下图。6.1.3进程标识符

先定一个小目标!了解进程标识符,能够说出进程标识符的含义6.1.3进程标识符每一个进程都有一个唯一的标识号,即PID(ProcessID),系统通过进程标识符调度进程。用户也可以根据PID调度进程。进程终止后,PID会被回收,可能会被分配给其他进程使用。在Linux系统中,除了初始化进程,其他进程都会有一个父进程,父进程即创建进程的进程。父进程也有对应的标识符,称为父进程标识符(ParentProcessID),简称PPID。1.进程标识符6.1.3进程标识符用户标识符(UserID)标识创建这个进程的用户,简称UID。除此之外,Linux系统还有EUID的概念,称为有效用户标识符,表示以有效权限发起进程的用户。例如,发起一个进程的用户是itheima,但实际有权限的是root用户,也就是itheima用户以root权限发起了进程,那么这个进程的UID对应的用户为itheima,EUID对应的用户为root。2.用户标识符3.组标识符组标识符(GroupID)标识创建进程用户的所属组,简称GID。EUID对应的组标识符为EGID。进程管理常用命令6.26.2.1进程查看命令

先定一个小目标!掌握进程查看命令,能够熟练使用命令查看进程6.2.1进程查看命令1.ps命令ps命令用于查看当前系统中正在运行的进程信息,包括进程状态、占用的资源等,它是最基本也最强大的进程查看命令。ps选项

参数格式6.2.1进程查看命令ps命令常用选项选项说明-a显示除会话组长之外的所有进程,包括其他用户的进程-e显示所有进程,包括系统进程-f显示进程更多详细信息,多与其他选项组合使用-u以用户的形式显示进程信息-x显示没有控制终端的进程-l使用详细的格式显示进程信息--pid显示指定PID的进程信息6.2.1进程查看命令使用-aux选项显示所有用户有关进程详细信息。[itheima@localhost~]$ps-auxUSERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND…root130.00.000?S09:340:00[cpuhp/0]…itheima27180.00.4939927508?Ss10:420:00/usr/lib/systemitheima27230.00.22535884480?S10:420:00(sd-pam)…root54280.00.000?I13:500:00[kworker/0:3-cgitheima54290.00.2609443968pts/0R+13:510:00ps-aux案例6-16.2.1进程查看命令每一个进程都有10个字段,每个字段的含义如下:1USER:启动进程的用户。2PID:进程标识符。3%CPU:进程本次运行时间占进程总运行时间的百分比4%MEM:进程运行占用内存占总内存的百分比。5VSZ:进程占用的虚拟内存大小,单位为KB。6.2.1进程查看命令每一个进程都有11个字段,每个字段的含义如下:6RSS:进程占用的实际内存大小,单位为KB。7TTY:进程启动终端。8STAT:进程当前状态,值可以是R、S、D、Z、T9START:进程开始运行的时间。TIME:进程从启动以来占用CPU的总时间。10COMMAND:启动该进程的命令。116.2.1进程查看命令ps命令查看的进程结果不是动态的、连续的,它相当于快照功能,只显示当前时刻进程的状态信息。如果想要动态地显示进程状态信息,则可以使用top命令。2.top命令top选项参数格式6.2.1进程查看命令top命令常用选项选项说明-btop命令默认只显示一屏信息,该选项可以通过批处理方式显示进程信息-d自定义刷新时间间隔-i忽略任何空闲进程或僵死进程-p监视指定的PID进程-c显示进程命令行,包括路径6.2.1进程查看命令top命令可以实时查观察系统的整体运行情况显示结果默认每隔3s刷新一次,类似于Windows系统的任务管理器,是一个很实用的系统性能监测工具。由于top命令的运行结果是动态显示的,信息是连续变化的,结果信息不容易复制,所以使用截图方式显示结果。top命令执行结果的前5行是整体统计系统信息,每一行含义如下:第1行:显示系统相关信息,分别是系统当前时间、系统运行时间、登录的用户数量、系统1分钟、5分钟、15分钟的平均负载。第2行:显示进程总数、运行中的进程数、睡眠中的进程数、终止的进程数和僵死的进程数。第3行:显示CPU资源的使用情况。第4行:显示内存资源的使用情况。第5行:显示swap交换分区的使用情况。6.2.1进程查看命令在top命令运行阶段,用户可以通过快捷键进行交互操作。快捷键说明l控制是否显示平均负载和启动时间(第1行)t控制是否显示进程统计信息和CPU状态信息(第2、3行)m控制是否显示内存信息(第4、5行)M根据常驻内存集RES大小为进程排序P根据%CPU为进程排序T根据TIME+为进程排序i忽略闲置和僵死的进程q退出top命令6.2.1进程查看命令top命令常用的交互快捷键在top命令的运行界面,使用快捷键i忽略闲置和僵死的进程,交互结果如下图。6.2.1进程查看命令6.2.1进程查看命令在Linux系统中,除了初始化进程systemd,其他进程都有父进程。一个父进程可以创建多个子进程,这些子进程互称为兄弟进程。因此,Linux系统中的进程之间都相互关联。Linux系统提供了一个命令pstree,可以树状形式显示系统中进程,即显示一个进程树,从进程树中,可以直接观察出进程之间的派生关系。3.pstree命令pstree选项格式6.2.1进程查看命令pstree命令常用选项选项说明-a显示每个进程的完整命令(包括路径、参数等)-c不使用精简标识法-h列出树状图,特别标明当前正在执行的进程-u显示用户名称-n使用程序识别码排序(默认以程序名称排序)6.2.1进程查看命令以进程树形式显示系统当前进程,并着重显示当前正在执行的进程。[itheima@localhost~]$pstree-hsystemd─┬─ModemManager───2*[{ModemManager}]

├─NetworkManager───2*[{NetworkManager}]

├─VGAuthService

├─sshd───sshd───sshd───bash───pstree

├─sssd─┬─sssd_be

└─sssd_nss

├─sssd_kcm

└─wpa_supplicant案例6-26.2.1进程查看命令pgrep命令可以根据服务名称,从进程队列中查找与该服务有关的进程,查找成功后显示进程的PID。4.pgrep命令pgrep选项参数格式选项说明-o仅显示同名进程中pid最小的进程-n仅显示同名进程中pid最大的进程-p指定进程父进程的pidpgrep命令常用选项6.2.1进程查看命令查找与sshd服务相关的进程。[itheima@localhost~]$pgrepsshd109337903794案例6-36.2.2进程终止命令

先定一个小目标!掌握进程终止命令,能够熟练使用命令终止进程6.2.2进程终止命令kill命令可以终止指定的进程。kill命令的工作原理是发送某个信号给指定进程,以改变进程的状态。1.kill命令kill选项参数格式kill命令的选项一般是信号,参数为PID。6.2.2进程终止命令Linux系统提供的一些预定义信号。[itheima@localhost~]$kill-l1)SIGHUP 2)SIGINT 3)SIGQUIT 4)SIGILL 5)SIGTRAP6)SIGABRT 7)SIGBUS 8)SIGFPE9)SIGKILL 10)SIGUSR111)SIGSEGV 12)SIGUSR2 13)SIGPIPE 14)SIGALRM15)SIGTERM16)SIGSTKFLT17)SIGCHLD18)SIGCONT19)SIGSTOP 20)SIGTSTP21)SIGTTIN 22)SIGTTOU23)SIGURG24)SIGXCPU25)SIGXFSZ26)SIGVTALRM ┄┄49)SIGRTMIN+15 50)SIGRTMAX-14 51)SIGRTMAX-13 52)SIGRTMAX-1253)SIGRTMAX-11 54)SIGRTMAX-10 55)SIGRTMAX-9 56)SIGRTMAX-857)SIGRTMAX-758)SIGRTMAX-6 59)SIGRTMAX-5 60)SIGRTMAX-4 61)SIGRTMAX-3 62)SIGRTMAX-263)SIGRTMAX-1 64)SIGRTMAX9号信号可以无条件终止进程kill命令默认信号6.2.2进程终止命令终止PID为3794的进程。[itheima@localhost~]$kill-93794案例6-46.2.2进程终止命令killall命令的选项通常也是信号,参数一般为服务名称。2.killall命令killall命令用于终止某个服务所对应的全部进程。通常,复杂程序会有多个进程协同为用户提供服务,当要终止服务时,如果使用kill命令逐个结束进程会比较麻烦,此时可以使用killall命令批量结束该服务的所有进程。killlall选项参数格式6.2.2进程终止命令终止nginx服务的所有进程。[root@localhost~]#cd/usr/local/nginx/sbin[root@localhostsbin]#./nginx #启动nginx[root@localhostsbin]#pgrepnginx #查看nginx相关进程28752876[root@localhostsbin]#killallnginx #终止nginx服务所有进程[root@localhostsbin]#pgrepnginx #再次查看nginx服务进程[root@localhostsbin]#nginx服务有两个进程案例6-5任务的前台与后台调度6.36.3任务的前台与后台调度

先定一个小目标!熟悉任务的前台与后台调度,能够使用命令实现进程的前台与后台调度6.3任务的前台与后台调度Linux系统中的进程可以分为前台进程与后台进程。前台进程:用户在屏幕上进行操作的进程。后台进程:在不需要用户干预的情况下运行的进程,通常用于执行如日志记录、系统监测、作业调度、用户提醒等任务。前台进程需要和用户交互,一般优先级稍微高一些,后台进程基本上不和用户交互,优先级稍微低一些。6.3任务的前台与后台调度在Linux系统中,有时需要将前台任务暂停调度至后台,或者将后台任务调度至前台重新启动,为此,Linux系统提供了jobs命令、bg命令、fg命令以及一些快捷键来完成这一系列操作。需要注意的是,虽然这些命令调度的是任务,但每个任务会对应一个或多个进程,调度任务其实就是调度进程。6.3任务的前台与后台调度jobs命令用于显示系统中暂停的任务列表及任务状态,包括后台任务。jobs命令常用选项选项说明-l显示进程号-p只显示任务PID-s只显示停止状态的任务1.jobs命令jobs选项参数格式jobs命令的参数通常是任务标识号,即第1列用来标识任务的数字。6.3任务的前台与后台调度在Linux操作系统中,命令也是一个可执行的二进制程序,因此,一次命令的执行也是一次任务执行,系统会运行对应的进程。如果一个命令执行的时间很久,可以按Ctrl+z快捷键暂停任务,暂停之后,可以使用jobs命令查看任务及状态。(1)执行top命令查看系统进程状态,按Ctrl+z快捷键暂停任务。[1]+已停止top(2)执行jobs命令查看任务列表。[itheima@localhost~]$jobs #显示任务列表[1]+已停止top[itheima@localhost~]$jobs–l #显示任务进程的PID[1]+5705停止(信号)top[itheima@localhost~]$kill-95705 #终止进程6.3任务的前台与后台调度bg命令用于将前台任务调度至后台执行。2.bg命令bg参数格式bg命令的参数是任务标识号。6.3任务的前台与后台调度将top命令执行的任务调度至后台执行。[itheima@localhost~]$jobs[1]+已停止top[itheima@localhost~]$bg1[1]+top&案例6-66.3任务的前台与后台调度除了使用bg命令将任务调度至后台执行,还可以在执行命令时,在命令后面添加&符号,这样命令在开始执行时就自动在后台运行。例如,使用top命令查看进程状态时,在命令后面添加&符号,命令会自动在后台执行。[itheima@localhost~]$top&

#在后台执行top命令[1]67316.3任务的前台与后台调度fg命令的参数也是任务标识号。3.fg命令fg命令用于将后台任务调度到前台执行。fg参数格式6.3任务的前台与后台调度使用vim命令编辑hello文件,假设在执行过程中有其他任务要执行,将vim命令调度至后台执行,执行完其他任务后,再将vim命令调度至前台执行。[itheima@localhost~]$vimhello~~"hello"[新文件]^Z0,0-1全部

[1]+已停止vimhello #按【Ctrl+z】快捷键停止任务[itheima@localhost~]$jobs #查看任务[1]+已停止vimhello[itheima@localhost~]$bg1 #将vim命令调度至后台执行[1]+vimhello&[itheima@localhost~]$fg1 #将vim命令调度至前台执行案例6-7服务管理6.46.4服务管理

先定一个小目标!掌握服务管理,能够熟练使用systemctl命令管理任务服务是一类常驻在内存中,且可以提供一些功能来满足用户需求的进程。这些服务进程一旦启动就会在后台一直持续不断地运行,它们不需要和用户进行交互,因此服务进程又称为守护进程(daemon)。6.4服务管理6.4服务管理CentOS7之前的版本使用service命令和chkconfig命令管理服务进程。CentOS7及之后的版本使用systemctl命令代替了service命令和chkconfig命令进行服务管理。systemctl功能命令服务进程格式systemctl命令常用功能命令6.4服务管理功能说明start启动服务进程stop终止服务进程status查询服务进程运行情况,列出该服务的详细信息restart重启服务进程enable设置服务开机自启动disable取消服务开机自启动reload重新加载指定服务的配置文件(并非所有服务都支持该参数,使用restart可实现相同功能)6.4服务管理案例6-8以http服务为例,演示systemctl用法。(1)安装http服务。[root@localhost~]#dnf-yinstallhttpd…Installedproductsupdated.已安装:…httpd-filesystem-2.4.37-21.module_el8.2.0+382+15b0afa8.noarchhttpd-tools-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64mod_http2-1.11.3-3.module_el8.2.0+307+4d18d695.x86_64完毕!6.4服务管理案例6-8以http服务为例,演示systemctl用法。(2)查看http服务运行状态[root@localhost~]#systemctlstatushttpd#查询http服务运行状态●httpd.service-TheApacheHTTPServerLoaded:loaded(/usr/lib/systemd/system/httpd.service;disabled;vendorpreset:d>Active:inactive(dead)Docs:man:httpd.service(8)…6.4服务管理案例6-8以http服务为例,演示systemctl用法。(3)开启http服务[root@localhost~]#systemctlstarthttpd#开启http服务[root@localhost~]#systemctlstatushttpd#再次查看http服务运行状态●httpd.service-TheApacheHTTPServerLoaded:loaded(/usr/lib/systemd/system/httpd.service;disabled;vendorpreset:d>Active:active(running)sinceFri2020-09-1810:15:39CST;4sagoDocs:man:httpd.service(8)…服务开启6.4服务管理案例6-8以http服务为例,演示systemctl用法。(4)终止http服务[root@localhost~]#systemctlstophttpd #终止http服务[root@localhost~]#systemctlstatushttpd #再次查看http服务运行状态●httpd.service-TheApacheHTTPServerLoaded:loaded(/usr/lib/systemd/system/httpd.service;disabled;vendorpreset:d>

Active:inactive(dead)Docs:man:httpd.service(8)…http服务关闭6.4服务管理案例6-8以http服务为例,演示systemctl用法。(5)设置http服务开机自启动[root@localhost~]#systemctlenablehttpd #设置开机自启动Createdsymlink/etc/systemd/system/multi-user.target.wants/httpd.service→/usr/lib/systemd/system/httpd.service.计划任务6.56.5.1at命令

先定一个小目标!了解at命令,能够使用at命令制定计划任务6.5.1at命令at命令用于执行一次性计划任务,一般用于满足临时性的工作需求。at命令常用选项选项说明-l查看计划任务。at–l功能与atq命令相同-f从文件中读取任务-d删除计划任务,参数为任务编号。at–d功能与atrm命令相同at选项参数格式6.5.1at命令at命令的参数通常为时间日期,at命令允许使用各种格式的时间日期,下面介绍几种比较常用的时间日期格式:(1)允许使用hh:mm:ss的格式指定当天时间。(2)允许使用12小时计时制,在时间后面加AM、PM指定上午还是下午。(3)允许使用midnight、noon、teatime(一般下午4点)等比较模糊的词语指定时间。(4)允许使用monthday、mm/dd/yy、dd.mm.yy的格式指定日期。需要注意的是,日期在时间后面,例如,15:001/10/2023。(5)允许使用相对计时法指定时间,指定格式为time+counttime_units,time表示时间,time_units为时间单元(可以是minutes、hours、days、weeks),count为时间单元的数量。例如,5PM+3days,表示3天以后的下午5点开始执行任务。(6)允许使用today、tomorrow指定时间。6.5.1at命令案例6-9制定计划任务,18点重启http服务。[itheima@localhost~]$at18:00

#制定计划任务warning:commandswillbeexecutedusing/bin/shat>systemctlrestarthttpd

#重启http服务at><EOT>

#按Ctrl+d快捷键即可退出交互模式job7atFriSep1818:00:002020 #显示任务信息6.5.1at命令案例6-10在itheima用户工作目录下编辑job文件,写入echo"helloworld">at.txt内容,制定计划任务,执行job文件中的任务。[itheima@localhost~]$vimjob

#编辑job文件[itheima@localhost~]$at-fjob18:07

#计划任务warning:commandswillbeexecutedusing/bin/shjob2atThuSep1718:07:002020[itheima@localhost~]$at–l

#查看所有计划任务1 FriSep1818:00:002020aitheima2 ThuSep1718:07:002020aitheima[itheima@localhost~]$ls

#查看是否生成at.txt文件公共

模板

视频

图片

文档

下载

音乐

桌面at.txtjobusr6.5.1at命令案例6-11制定计划任务,凌晨备份data文件数据到/usr/local/bank文件中。[itheima@localhost~]$at24:00tomorrow #计划任务时间warning:commandswillbeexecutedusing/bin/shat>cpdata/usr/local/bank #备份数据at><EOT>job4atSatSep1900:00:0020206.5.1at命令batch命令也用于执行一次性计划任务,它的功能与at命令几乎相同,唯一区别是batch命令会在系统负载较低、资源比较空闲的时候执行。因此batch命令通常不指定时间,其执行时间由系统自动控制。小提示:batch命令

先定一个小目标!了解crontab命令,能够使用crontab命令制定计划任务6.5.2crontab命令6.5.2crontab命令at命令只能执行一次性的计划任务,如果想让周期性地重复执行某一任务,可以使用crontab命令制定计划任务。使用crontab命令制定计划任务时,通常将任务命令写在一个文件中,这个任务文件叫作crontab文件。使用crontab命令加载这个文件,到指定时间系统会自动执行文件中的命令。crontab文件可以使用vim命令编辑,也可以使用crontab命令直接编辑。crontab选项参数格式crontab命令的语句格式6.5.2crontab命令crontab命令常用选项选项说明-e编辑crontab文件-l查看当前的计划任务-r删除计划任务-u编辑其他用户的计划任务,通常root使用该参数6.5.2crontab命令crontab命令的计划任务也需要指定时间日期与执行命令。分时日月星期

任务命令crontab命令任务格式各参数字段含义字段含义字段含义分0~59的整数月1~12的整数时0~23的整数星期0~7的整数,0与7均为星期日日1~31的整数命令任务要执行的命令或程序脚本格式6.5.2crontab命令crontab命令的用法与at命令类似,但是在制定crontab计划任务时,有以下几点需要注意:(1)如果有些时间日期字段没有设置,需要使用“*”符号占位。例如,3018**7,表示每周日18:30执行任务,没有设置日、月字段。(2)如果一个字段设置多个值,多个值之间使用“,”分隔,例如,3018**1,3,5表示每周一、周三、周五的18:30执行任务。如果多个字段的数值是连续的,可以使用“-”符号连接起来,表示一段连接的时间,例如,30188-1010*表示10月8号到10月10号的18:30执行任务。此外,还可以使用“/”符号表示间隔时间,例如,/10***7表示星期日每隔10分钟执行一次任务。6.5.2crontab命令crontab命令的用法与at命令类似,但是在制定crontab计划任务时,有以下几点需要注意:(3)如果crontab文件中有多个计划任务,则每个计划任务需要写一行。在编写crontab文件时,可以使用“#”符号编写注释,方便后期阅读。(4)计划任务中的“分”字段必须要有数值,不能为空或使用“*”符号占位。(5)计划任务中的“日”字段不能与“星期”字段同时使用,以免发生冲突。(6)计划任务中的命令必须是绝对路径,例如,ls命令必须写成/usr/bin/ls。如果不知道命令的绝对路径,可以使用“whereis命令”查询。cpdata/usr/local/bank系统维护任务6-1任务6-1系统维护

先定一个小目标!掌握crontab命令的使用,能够使用crontab命令制定系统维护计划任务(1)编辑cronjob文件,将定时任务写入cronjob文件任务6-1系统维护[root@localhost~]#vimcronjob03**6/usr/sbin/shutdown-r-t1800(2)使用crontab命令加载cronjob文件[root@localhost~]#crontabcronjob(3)查看crontab计划任务[root@localhost~]#crontab-l03**6/usr/sbin/shutdown-r-t1800实现步骤重启http服务任务6-2任务6-2重启http服务

先定一个小目标!掌握crontab命令的使用,能够使用crontab命令制定重启http服务计划任务(1)编辑cronjob文件,将定时任务写入cronjob文件[root@localhost~]#vimcronjob03**6/usr/sbin/shutdown-r-t180003**6/usr/bin/systemctlrestarthttpd任务6-2重启http服务实现步骤(2)使用crontab命令加载cronjob文件[root@localhost~]#crontabcronjob(3)查看crontab计划任务[root@localhost~]#crontab-l03**6/usr/sbin/shutdown-r-t180003**6/usr/bin/systemctlrestarthttpd备份数据库任务6-3任务6-3备份数据库

先定一个小目标!掌握crontab命令的使用,能够使用crontab命令制定备份数据库计划任务(1)编写dbbackup.sh文件#!/bin/bashtime=`date+%Y%m%d_%H%M%S`#数据库配置信息#user=root#passwd=123456dbname=sysmysql_back_path=/home/dbbackup#备份/usr/bin/mysqldump$dbname>$mysql_back_path/$time.sql任务6-3备份数据库实现步骤编写dbbackup.sh文件时,需要注意以下几点:①在dbbackup.sh文件中,变量与“=”符号之间,不要有空格,否则脚本会将变量当命令执行。②获取日期时间时,date命令与“+”符号之间,要有一个空格,否则系统会报错误:./dbbackup.sh:行2:date+%Y%m%d_%H%M%S:未找到命令。③在dbbackup.sh脚本中,为了安全,在/usr/bin/mysqldump命令后面并没有指定数据库用户名和密码,而是直接指定了数据库名,数据库用户名与密码在/etc/f文件中配置。任务6-3备份数据库注意:在/etc/f文件添加如下内容完成数据库用户名与密码配置。任务6-3备份数据库[client]host=localhostuser=rootpassword=123456(2)在cronjob文件中添加dbbackup.sh脚本执行的定时任务。任务6-3备份数据库[root@localhost~]#vimcronjob03**6/usr/sbin/shutdown-r-t180003**6/usr/bin/systemctlrestarthttpd00***/root/dbbackup.sh实现步骤项目小结在本项目中,通过制定3个定时任务,对进程与计划任务相关知识进行了一次系统学习。首先学习了进程的相关知识,包括进程概念、进程状态和进程标识符;其次学习了进程管理的常用命令,包括进程查看命令和进程终止命令;然后学习了任务的前台与后台调度;接着学习了服务管理;最后学习了计划任务,包括由at命令执行的一次性计划任务、由crontab命令执行的周期性计划任务。进程管理是高效使用Linux系统的必备知识,通过本项目的学习,读者应当对Linux操作系统又有了进一步的认识,并为后续学习打下坚实基础。项目7

管理磁盘《Linux网络操作系统项目化教程》学习目标/Target了解磁盘命名规则,能够认识每个磁盘名称的含义掌握df与du命令,能够熟练使用这两个命令查看磁盘使用情况了解磁盘添加的方法,能够在Linux操作系统中正确添加磁盘掌握MBR分区,能够使用MBR规则完成磁盘分区掌握GPT分区,能够使用GPT规则完成磁盘分区学习目标/Target掌握分区格式化,能够熟练使用mkfs命令完成分区格式化操作掌握挂载与卸载的方法,熟练使用相应命令完成磁盘分区的挂载与卸载掌握LVM技术,能够完成LVM的创建掌握RAID技术,能够部署RAID10项目导入随着招入的学生越来越多,咨询招生部门的数据已经存储不下,需要更换磁盘,因此请求技术支持部门的帮助。上级领导安排邦小苑负责对接此事,有什么搞不明白的问题可以直接问安安和Lily。更换磁盘涉及磁盘与磁盘分区,而对于磁盘管理,邦小苑还算是有些基础。考虑到咨询招生部门搭建的小型存储器是用于存储学生信息的,但学生信息会越来越多,固定的磁盘分区不能满足存储需求,需要具备随时扩容的条件,这就得创建LVM逻辑卷。项目导入邦小苑把想法和安安沟通了一下,安安想了想说,对于咨询招生部门,学生信息是核心数据,学生信息的存储既要保证安全又要保证读写速度,就得做好数据冗余备份处理,可以采用RAID磁盘阵列技术存储数据。根据安安的指点,邦小苑将本次任务划分成了两个子任务。任务7-1创建LVM。任务7-2部署RAID

10。目录/Contents010203磁盘概述添加磁盘磁盘分区04格式化分区05挂载与卸载目录/Contents060708LVM概述RAID概述任务7-1创建LVM09任务7-2部署RAID10磁盘概述7.17.1.1磁盘设备命名规则

先定一个小目标!了解磁盘命名规则,能够说出每个磁盘名称的含义7.1.1磁盘设备命名规则Linux操作系统中的磁盘设备也是文件,磁盘设备文件存储在/dev目录下,用户可以进入/dev目录查看磁盘设备文件。其实,除了磁盘设备,其他所有的硬件设备文件都存储在/dev目录下。Linux操作系统中的磁盘设备的命名遵循以下规则:/dev/存储设备类型+磁盘编号+分区编号格式7.1.1磁盘设备命名规则(1)存储设备类型Linux系统的存储设备类型包括IDE、SATA、USB、SCSI等,其中,IDE设备在Linux系统中被识别为hd;SATA、USB、SCSI设备在Linux系统中被识别为sd。由于IDE存储设备逐渐被淘汰,所以/dev目录下可能没有hd开头的存储设备文件。/dev/存储设备类型+磁盘编号+分区编号格式7.1.1磁盘设备命名规则/dev/存储设备类型+磁盘编号+分区编号格式(2)磁盘编号如果系统中有多个不同类型的磁盘设备,这些磁盘将会按照添加的顺序,使用小写的英文字母依次编号。例如,如果系统中有两块sd磁盘,则第一块磁盘编号为sda,第二块磁盘编号为sdb。7.1.1磁盘设备命名规则/dev/存储设备类型+磁盘盘编号+分区编号格式(3)分区编号一个磁盘可以有多个分区,这些分区使用阿拉伯数字进行编号。例如,如果第一块磁盘划分为了4个分区,那么第一个分区的设备文件名为sda1,第二个分区的设备文件名为sda2,第三个分区的设备文件名为sda3,第四个分区的设备文件名为sda4。7.1.1磁盘设备命名规则系统中有一块磁盘sda。磁盘有两个分区,分别是sda1和sda2。示例进入/dev目录查看系统的磁盘设备文件。[root@localhost~]#cd/dev[root@localhostdev]#ls…cpulp1rtc0tty15tty34tty53urandomvhost-netcpu_dma_latencylp2sdatty16tty35tty54usbmon0vhost-vsockdisklp3sda1tty17tty36tty55usbmon1vmcidm-0mappersda2tty18tty37tty56usbmon2vsockdm-1mcelogsg0tty19tty38tty57vcszero…7.1.2查看磁盘使用情况df命令和du命令都可以用来查看磁盘使用情况,但df命令通过文件系统获取空间大小和使用情况等信息,而du命令是通过搜索文件或者目录来计算每个文件或目录的大小,然后进行累加。7.1.2查看磁盘使用情况df命令可以查看磁盘的使用情况,包括磁盘容量、已用空间大小、可用空间大小、磁盘使用率等信息。1.df命令格式df选项磁盘设备选项说明-h以用户易读的格式显示磁盘使用情况,如单位为GB、MB、KB等。-l只显示本地文件系统-T显示文件系统类型df命令常用选项7.1.2查看磁盘使用情况案例7-1查看/dev/sda1的使用情况。[root@localhost~]#df-h/dev/sda1文件系统

容量

已用

可用

已用% 挂载点/dev/sda1976M 193M 717M 22% /boot7.1.2查看磁盘使用情况2.du命令du命令用于查看文件或目录的磁盘占用情况。格式du选项磁盘设备du命令常用选项选项说明-a显示所有文件或目录的磁盘占用情况-c显示所有文件和目录的大小总和-h以用户易读的格式显示磁盘使用情况,如单位为KB、MB、GB等-s仅显示当前目录的大小7.1.2查看磁盘使用情况案例7-2查看当前目录下所有子目录的大小。[root@localhost~]#du…0 ./nginx-1.18.0/objs/src/mail0 ./nginx-1.18.0/objs/src/stream0 ./nginx-1.18.0/objs/src/misc12M ./nginx-1.18.0/objs/src17M ./nginx-1.18.0/objs23M ./nginx-1.18.036M .7.1.2查看磁盘使用情况案例7-3查看当前目录占用空间大小[root@localhost~]#du-sh36M7.1.2查看磁盘使用情况df命令与du命令统计结果不一致在实际应用中,往往会出现df命令与du命令统计结果不一致的问题。例如,分别使用df命令和du命令统计/dev/sda1磁盘设备的使用情况,命令及输出结果如下:[root@localhost~]#du-h/dev/sda10 /dev/sda1[root@localhost~]#df-h/dev/sda1文件系统

容量

已用

可用

已用% 挂载点/dev/sda1976M 193M 717M 22% /boot7.1.2查看磁盘使用情况df命令与du命令统计结果不一致出现上述问题的原因是两个命令的统计范围不一样。df命令在统计磁盘设备时可以统计到已经删除的文件,但du命令只统计当前存在的文件。例如,当删除一个文件时,文件并不会立即释放所占用的空间,只是暂时无法使用,只有到最后所有程序都不再使用该文件,操作系统才会按照规则释放该文件所占用的空间。df命令在统计时会统计该文件,但du命令不对该文件进行统计,因此,df命令与du命令的统计结果往往不一致。添加磁盘7.27.2添加磁盘

先定一个小目标!熟悉磁盘添加,能够在Linux系统中正确添加磁盘7.2添加磁盘在Linux操作系统中,一块磁盘需要经过分区、格式化、挂载操作之后才能使用。为了后面更好的讲解磁盘分区、格式化、挂载与卸载操作,下面以一块新的磁盘为例,演示如何在虚拟机中添加磁盘。STEP01选中虚拟机,单击右键→设置,弹出虚拟机设置对话框。7.2添加磁盘STEP02在“硬件”选项卡中,选中“硬盘(SCSI)20GB”选项,然后单击下方的“添加”按钮,弹出添加硬件向导对话框。7.2添加磁盘选择硬件类型为硬盘,然后单击“下一步”按钮,进入选择磁盘类型界面。STEP037.2添加磁盘勾选“SCSI(S)”虚拟磁盘类型,然后单击“下一步”按钮,进入选择磁盘界面。STEP047.2添加磁盘勾选“创建新虚拟磁盘(V)”选项,然后单击“下一步”按钮,进入指定磁盘容量界面。STEP057.2添加磁盘设置最大磁盘大小为20GB,读者也可以设置其他数值,勾选“将虚拟磁盘存储拆分成多个文件(M)”选项,然后单击“下一步”按钮,进入指定磁盘文件界面。单击“完成”按钮,返回虚拟机设置界面,再单击“确定”按钮,完成磁盘添加。STEP067.2添加磁盘磁盘添加成功后,重启系统,磁盘才能识别。系统重启后,进入/dev目录查看,可以看到sdb设备文件。[root@localhostdev]#ls…cpu_dma_latencylp2sdatty14tty33tty52uinputvhcidisklp3sda1tty15tty34tty53urandomvhost-netdm-0mappersda2tty16tty35tty54usbmon0vhost-vsockdm-1mcelogsdbtty17tty36tty55usbmon1vmcidmmidimemsg0tty18tty37tty56usbmon2vsock…磁盘分区7.37.3磁盘分区STEP06无论是Windows系统还是Linux系统,一块新的磁盘无法直接使用,需要先对磁盘进行分区。磁盘分区有利于数据的分类存储,管理员可以根据文件类型、文件数量和文件大小等因素,合理规划磁盘空间,以提高磁盘使用率与读取速率。Linux系统有两种常用的磁盘分区方式,分别是MBR和GPT。7.3.1MBR分区规则

先定一个小目标!了解MBR分区规则,能够说出MBR分区规则与分区特点7.3.1MBR分区规则MBR全称为MasterBootRecord,即主引导记录,在MBR分区方式中,第一个扇区是最重要的,它记录了3部分信息,分别是主引导记录、分区表信息和结束符。主引导记录:包括引导代码和磁盘签名两部分,共占用446字节空间。分区表:占用64字节空间,记录了磁盘分区信息,每记录一个分区信息就需要占用16字节空间,因此第1扇区中最多只能写入4个分区信息,这4个分区就是主分区。结束符:占用2字节空间。7.3.1MBR分区规则第一扇区数据信息7.3.1MBR分区规则一块磁盘设备最多只能有4个主分区,即便这4个分区的容量和小于磁盘总容量,也无法再为剩余空间分区。但是一块磁盘只有4个分区,远远无法满足系统数据的存储管理,为此,MBR提出了扩展分区的概念。将第1扇区中的一个分区指向另一个分区,即将原本要写入主分区信息的空间,写入另一个分区的信息,该主分区指向的另一个分区就称为扩展分区,在扩展分区中可以分出多个逻辑分区,以满足用户需求。7.3.1MBR分区规则扩展分区结构在MBR分区中,编号1~4被预留给主分区,因此逻辑分区的编号一定从5开始,即使主分区数量不足4个,逻辑分区编号也是从5开始。7.3.2MBR分区管理

先定一个小目标!掌握MBR分区,能够使用MBR规则完成磁盘分区7.3.2MBR分区管理在Linux系统中,如果使用MBR方式创建分区,可以通过fdisk命令对磁盘分区进行管理。fdisk命令的功能包括创建分区、删除分区、查看分区等。fdisk命令常用选项选项说明-l显示磁盘及分区详细信息-s显示磁盘分区容量(单位为block)fdisk选项磁盘格式7.3.2MBR分区管理案例7-4查看/dev/sda磁盘和/dev/sdb磁盘的分区情况。[root@localhost~]#fdisk-l/dev/sda #查看/dev/sda磁盘分区情况Disk/dev/sda:20GiB,21474836480字节,41943040个扇区单元:扇区/1*512=512字节扇区大小(逻辑/物理):512字节/512字节┄磁盘标识符:0xc1df62f设备

启动

起点

末尾

扇区

大小Id类型/dev/sda1*2048209919920971521G83Linux/dev/sda22099200419430393984384019G8eLinuxLVM[root@localhost~]#fdisk-l/dev/sdb #查看/dev/sdb磁盘分区情况Disk/dev/sdb:20GiB,21474836480字节,41943040个扇区单元:扇区/1*512=512字节扇区大小(逻辑/物理):512字节/512字节I/O大小(最小/最佳):512字节/512字节7.3.2MBR分区管理fdisk命令通过选项只能实现磁盘分区的简单管理,若要使用fdisk命令创建、删除磁盘分区等,需要进入fdisk命令的交互界面。在终端输入“fdisk磁盘”即可进入交互界面。[root@localhost~]#fdisk/dev/sdb #进入交互界面,操作/dev/sdb磁盘

欢迎使用fdisk(util-linux2.32.1)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。

设备不包含可识别的分区表。创建了一个磁盘标识符为0x488a6922的新DOS磁盘标签。

命令(输入m获取帮助):7.3.2MBR分区管理fdisk交互界面常用的命令快捷键选项说明d删除分区F列出未分区的空闲区l列出已知分区类型n添加新分区p打印分区表i打印某个分区的相关信息w将分区表写入磁盘并退出q退出而不保存更改在fdisk命令的交互界面,通过命令快捷键m可以获取帮助信息,帮助信息中包含此界面可执行的命令快捷键。7.3.2MBR分区管理下面以/dev/sdb磁盘为例演示fdisk命令的应用。查看磁盘分区情况。命令(输入m获取帮助):F #查看磁盘分区未分区的空间/dev/sdb:20GiB,21473787904个字节,41940992个扇区单元:扇区/1*512=512字节扇区大小(逻辑/物理):512字节/512字节

起点

末尾

扇区

大小2048419430394194099220G命令(输入m获取帮助):有20GB未分区的空闲空间示例7.3.2MBR分区管理创建主分区。命令(输入m获取帮助):n #创建分区┄上个扇区,+sectors或+size{K,M,G,T,P}(2048-41943039,默认41943039):+2G创建了一个新分区1,类型为“Linux”,大小为2GiB。命令(输入m获取帮助):p #打印分区表,查看分区情况┄设备

启动

起点

末尾

扇区

大小Id类型/dev/sdb12048419635141943042G83Linux命令(输入m获取帮助):示例7.3.2MBR分区管理创建逻辑分区(中间输出省略)。示例命令(输入m获取帮助):n #创建扩展分区选择

(默认p):e #选择扩展分区分区号(2-4,默认2):3 #设置扩展分区编号为3命令(输入m获取帮助):n #创建第1个逻辑分区选择(默认p):l #选择逻辑分区命令(输入m获取帮助):n #创建第2个逻辑分区选择(默认p):l #选择逻辑分区添加逻辑分区

6命令(输入m获取帮助):p #打印分区表,查看分区情况┄7.3.2MBR分区管理删除分区。命令(输入m获取帮助):d #删除分区分区号(1,3,5,6,默认6):6 #指定分区编号分区5已删除。命令(输入m获取帮助):p #打印分区编号,查看分区情况┄设备

启动

起点

末尾

扇区

大小Id类型/dev/sdb12048419635141943042G83Linux/dev/sdb3419635214682111104857605G5扩展/dev/sdb583947521468211162873603G83Linux示例7.3.2MBR分区管理退出。[root@localhost~]#fdisk-l/dev/sdb

//退出后,使用fdisk命令查看/dev/sdb分区Disk/dev/sdb:20GiB,21474836480字节,41943040个扇区单元:扇区/1*512=512字节扇区大小(逻辑/物理):512字节/512字节I/O大小(最小/最佳):512字节/512字节磁盘标签类型:dos磁盘标识符:0x2a94e1f8设备

启动

起点

末尾

扇区大小Id类型/dev/sdb12048419635141943042G83Linux/dev/sdb3419635214682111104857605G5扩展/dev/sdb54198400839270341943042G83Linux示例7.3.3GPT分区规则

先定一个小目标!了解GPT分区规则,能够说出GPT分区规则及特点GPT(GUIDPartitionTable,全局唯一标识分区表)是一种较新的分区方式,它兼容MBR,能够处理超过2TB的磁盘。另外,GPT突破了MBR只有4个主分区的限制,最多可以有128个主分区,每个分区的容量也可以超过2TB。GPT磁盘分区结构由6部分组成,包括保护MBR、GPT头、分区表、分区区域、分区表备份、GPT头备份。7.3.3GPT分区规则7.3.3GPT分区规则保护MBR位于GPT磁盘的第一个扇区(0号扇区),由磁盘签名、MBR分区表和结束符组成,它的作用是阻止不能识别GPT分区的磁盘工具试图对磁盘进行分区或格式化等操作,因此该扇区被称为保护MBR。GPT头位于GPT磁盘的第二个扇区(1号扇区),用于定义分区表的起始位置、结束位置和分区表项的大小。此外,GPT头还包含分区表的校验和,这样可以及时发现错误。7.3.3GPT分区规则分区表位于GPT磁盘的第2~33号扇区,一共占用32个扇区。分区表可以定义分区项,每个分区占用128字节空间,因此,磁盘可以创建128个分区。每个分区项包含分区起始地址、结束地址、类型值、分区名称、属性标志、GUID值等。分区区域就是用户使用的分区,即用户存储数据的区域,它是占用空间最大的区域。分区区域的起始地址和结束地址由分区表定义。7.3.3GPT分区规则分区表备份位于分区区域后,它是分区表32个扇区的完整备份,如果分区表遭到破坏,系统会自动读取分区表备份,能够保证正常识别分区。GPT头备份位于GPT磁盘最后一个扇区,但GPT头的备份并非完全与GPT头相同,有些信息可能会有些出入。7.3.4GPT分区管理

先定一个小目标!掌握GPT分区,能够使用GPT规则完成磁盘分区7.3.4GPT分区管理GPT分区可以使用parted命令实现。parted命令是GNU开发的一款功能强大的磁盘管理工具,既可以管理MBR分区,也可以管理GPT分区,但通常用来管理GPT分区。parted命令有命令行和交互模式两种用法,但交互模式更为常用。进入parted命令交互模式的语法如下:parted磁盘格式7.3.4GPT分区管理在parted交互模式下,可以使用交互命令完成磁盘分区的管理。parted交互命令很多,这些命令在交互模式下和命令行模式下用法相同。(1)选择分区类型mklabel分区类型格式(2)查看分区信息print格式(3)创建分区mkpart分区名称起始点结束点格式(4)删除分区格式rm分区编号7.3.4GPT分区管理下面将虚拟机还原至刚添加/dev/sdb磁盘的状态,以/dev/sdb磁盘分区为例,演示parted命令的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论