版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
deepin操作系统
(项目式)(微课版)工业和信息化精品系列教材——云计算技术项目7
系统高级管理能力CAPACITY要求学会查看和管理Linux进程理解systemd的概念掌握使用systemd管理系统和服务的方法掌握实现计划任务管理的方法初步学会编写Shell脚本进行系统管理和维护任务7.3计划任务管理任务7.1进程管理任务7.2使用systemd管理系统和服务任务7.4编写Shell脚本实现自动化管理任务7.1进程管理任务说明01OPTION02OPTION03OPTION了解进程的基本知识了解进程的类型熟悉进程查看、监视和管理的方法04OPTION学会查看服务端口任务7.1进程管理相关知识7.1.1程序、进程与线程程序(Program)包含可执行代码和数据的静态实体一般对应于操作系统中的一个可执行文件进程(Process)运行着的、要占用系统运行资源的程序系统给每一个进程都分配一个唯一的进程标识符线程(Thread)可以在同一个进程中共享资源的一个执行单位进程的一部分操作系统调度的最小单元任务7.1进程管理相关知识7.1.2服务与守护进程进程类型交互进程:在Shell下通过执行程序所产生的进程,可在前台或后台运行。批处理进程:一个进程序列。守护进程:又称监控进程,是指那些在后台运行,并且没有控制终端的进程。守护进程分类系统守护进程网络守护进程任务7.1进程管理任务实现任务7.1.1查看和监视进程使用ps命令查看进程状态USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMANDroot10.00.216710811960?Ss08:060:01/sbin/initsplashroot20.00.000?S08:060:00[kthreadd]test119480.00.01692403500?S08:090:00(sd-pam)test130050.00.1155284540pts/2Ss+08:090:00/bin/bash任务7.1进程管理任务实现任务7.1.1查看和监视进程使用top命令实时监视进程top-17:19:32up6:28,1user,loadaverage:0.31,0.15,0.11Tasks:232total,1running,230sleeping,0stopped,1zombie%Cpu(s):1.2us,2.5sy,0.0ni,95.9id,0.0wa,0.0hi,0.4si,0.0stMiBMem:3897.0total,837.1free,1035.5used,2024.4buff/cacheMiBSwap:6143.0total,6143.0free,0.0used.2604.6availMemPIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND12191test2004156644198392138052S11.75.09:53.32kwin_x111429root20032957610773270076S3.32.72:03.99Xorg任务7.1进程管理任务实现任务7.1.2管理进程启动进程挂起正在运行的进程结束进程的运行使用nohup命令不挂断地执行任务管理进程的优先级任务7.1进程管理任务实现任务7.1.3查看正在运行的服务及其端口test@deepin-PC:~$netstat-tlnActiveInternetconnections(onlyservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatetcp000.0.0.0:1390.0.0.0:*LISTENtcp00127.0.0.1:6310.0.0.0:*LISTEN......tcp600::1:631:::*LISTEN任务7.1进程管理任务实现任务7.1.3查看正在运行的服务及其端口test@deepin-PC:~$ss-tlnStateRecv-QSend-QLocalAddress:PortPeerAddress:PortLISTEN0500.0.0.0:1390.0.0.0:*......test@deepin-PC:~$sudolsof-i:631COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEcupsd16090root7uIPv61189770t0TCPlocalhost:ipp(LISTEN)cupsd16090root8uIPv41189780t0TCPlocalhost:ipp(LISTEN)任务7.3计划任务管理任务7.1进程管理任务7.2使用systemd管理系统和服务任务7.4编写Shell脚本实现自动化管理任务7.2使用systemd管理系统和服务任务说明01OPTION02OPTION03OPTION理解systemd的概念和术语理解systemd的单元文件掌握使用systemd管理服务的方法04OPTION学会使用systemd管理启动目标05OPTION了解使用systemd管理系统电源的方法任务7.2使用systemd管理系统和服务相关知识7.2.1什么是systemdsystemd系统初始化使用systemd取代init。systemd使用单元文件替换其他系统初始化方式的初始化脚本。systemd使用启动目标替代运行级别。systemd主要的设计目标是克服sysVinit固有的缺点。systemd与sysVinit兼容,支持并行化任务。Linux系统
初始化方式
sysVinitUpStartsystemd任务7.2使用systemd管理系统和服务相关知识7.2.2
systemd单元与单元文件单元类型单元文件说明service(服务).service定义系统服务。这是最常用的一类,与早期Linux版本/etc/init.d/目录下的服务脚本的作用相同device(设备).device定义内核识别的设备。每一个使用udev规则标记的设备都会在systemd中作为一个设备单元出现mount(挂载).mount定义文件系统挂载点automount(自动挂载).automount用于文件系统自动挂载设备
socket(套接字).socket定义系统和互联网中的一个套接字,标识进程间通信用到的socket文件timer(定时器).timer用来定时触发用户定义的操作,以取代atd、crond等传统的定时服务target(目标).target用于对其他单元进行逻辑分组,主要用于模拟实现运行级别的概念任务7.2使用systemd管理系统和服务相关知识7.2.3
systemd命令行工具systemd最重要的命令行工具是systemctl。systemctl主要负责控制systemd系统和服务管理器,基本语法:systemctl[选项...]命令...不带任何选项和参数运行systemctl命令将列出系统已启动(装载)的所有单元。执行不带参数的systemctlstatus命令将显示系统当前状态。systemctl命令的部分选项提供有长格式和短格式,如--all和-a。systemd还可以控制远程系统,管理远程系统主要是通过SSH协议。任务7.2使用systemd管理系统和服务任务实现任务7.2.1考察systemd单元文件[Unit]Description=CUPSSchedulerDocumentation=man:cupsd(8)After=sssd.service[Service]ExecStart=/usr/sbin/cupsd-lType=simpleRestart=on-failure[Install]Also=cups.socketcups.pathWantedBy=printer.target任务7.2使用systemd管理系统和服务7.2.2使用systemd管理服务基本用法systemctl[选项…]命令[服务名.service…]示例test@deepin-PC:~$systemctlstatusssh.service○ssh.service-OpenBSDSecureShellserverLoaded:loaded(/lib/systemd/system/ssh.service;disabled;vendorpreset:enabled)Active:inactive(dead)Docs:man:sshd(8)man:sshd_config(5)任务实现任务7.2使用systemd管理系统和服务7.2.2使用systemd管理服务示例test@deepin-PC:~$sudosystemctlstartssh.servicetest@deepin-PC:~$sudosystemctlrestartssh.servicetest@deepin-PC:~$sudosystemctlreloadssh.servicetest@deepin-PC:~$sudosystemctlstopssh.servicetest@deepin-PC:~$systemctlis-enabledssh.servicedisabledtest@deepin-PC:~$sudosystemctlenablessh.serviceSynchronizingstateofssh.servicewithSysVservicescriptwith/lib/systemd/systemd-sysv-install.Executing:/lib/systemd/systemd-sysv-installenablesshCreatedsymlink/etc/systemd/system/sshd.service→/lib/systemd/system/ssh.service.Createdsymlink/etc/systemd/system/multi-user.target.wants/ssh.service→/lib/systemd/system/ssh.service.任务实现任务7.2使用systemd管理系统和服务7.2.2使用systemd管理服务示例test@deepin-PC:~$systemctllist-units--type=serviceUNITLOADACTIVESUBDESCRIPTIONaccounts-daemon.serviceloadedactiverunningAccountsServicealsa-restore.serviceloadedactiveexitedSave/RestoreSoundCardStatebluetooth.serviceloadedactiverunningBluetoothservicetest@deepin-PC:~$systemctllist-unit-files--type=serviceUNITFILESTATEVENDORPRESETaccounts-daemon.serviceenabledenabledacpid.servicedisabledenabledalsa-restore.servicestatic-alsa-state.servicestatic-alsa-utils.servicemaskedenabled任务实现任务7.2使用systemd管理系统和服务7.2.3使用systemd管理启动目标主要启动目标graphical.target:图形界面目标multi-user.target:多用户目标rescue.target:救援目标emergency.target:紧急目标任务实现任务7.2使用systemd管理系统和服务7.2.3使用systemd管理启动目标示例test@deepin-PC:~$systemctlget-defaultgraphical.targettest@deepin-PC:~$sudosystemctlset-defaultmulti-user.targetRemoved/etc/systemd/system/default.target.Createdsymlink/etc/systemd/system/default.target→/lib/systemd/system/multi-user.target.test@deepin-PC:~$systemctlsudosystemctlisolatemulti-user.target任务实现任务7.2使用systemd管理系统和服务7.2.3使用systemd管理启动目标示例任务实现文本模式界面任务7.2使用systemd管理系统和服务7.2.4使用systemd管理系统电源重启系统:systemctlreboot挂起(暂停系统):systemctlsuspend休眠系统:systemctlhibernate暂停并休眠系统:systemctlhybrid-sleep关机(停止系统):systemctlhalt关机(关闭系统电源):systemctlpoweroff任务实现任务7.3计划任务管理任务7.1进程管理任务7.2使用systemd管理系统和服务任务7.4编写Shell脚本实现自动化管理任务7.3计划任务管理任务说明01OPTION02OPTION03OPTION了解Cron周期性计划任务管理的实现机制了解systemd定时器学会使用Cron实现周期性计划任务管理04OPTION掌握使用systemd定时器实现计划任务管理的方法任务7.3计划任务管理相关知识7.3.1
Cron的周期性计划任务管理SHELL=/bin/sh#默认Shell环境PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin#命令执行默认路径#Exampleofjobdefinition:#任务定义示例#.----------------minute(0-59)#|.-------------hour(0-23)#||.----------dayofmonth(1-31)#|||.-------month(1-12)ORjan,feb,mar,apr...#||||.----dayofweek(0-6)(Sunday=0or7)ORsun,mon,tue,wed,thu,fri,sat#|||||#*****user-namecommandtobeexecuted17****rootcd/&&run-parts--report/etc/cron.hourly256***roottest-x/usr/sbin/anacron||(cd/&&run-parts--report/etc/cron.daily)476**7roottest-x/usr/sbin/anacron||(cd/&&run-parts--report/etc/cron.weekly)5261**roottest-x/usr/sbin/anacron||(cd/&&run-parts--report/etc/cron.monthly)任务7.3计划任务管理相关知识7.3.2
systemd定时器与计划任务管理systemd定时器由定时器类的单元实现。多数情况下systemd定时器可以替代Cron服务。以.timer为扩展名的systemd单元文件封装了一个由systemd管理的定时器,用于支持基于定时器的启动。systemd定时器两种类型单调定时器实时定时器任务7.3计划任务管理任务实现任务7.3.1定制自己的计划任务(1)为test用户创建Cron配置文件。(2)添加一个任务调度条目。*****(echo'测试Cron任务每分钟执行一次;当前时间:';date)>>/home/test/cron-test.txt(3)保存文件。(4)实时查看/home/test/cron-test.txt文件的内容来测试定制的计划任务。test@deepin-PC:~$tail-f/home/test/cron-test.txt测试Cron任务每分钟执行一次;当前时间:2023年07月27日星期四14:38:02CST测试Cron任务每分钟执行一次;当前时间:2023年07月27日星期四14:39:01CST(5)删除为test用户创建的Cron配置文件。任务7.3计划任务管理任务实现任务7.3.2基于systemd定时器实现计划任务管理(1)编写定时器单元文件。[Unit]Description=Runevery2minandonboot[Timer]OnBootSec=1minOnUnitActiveSec=2min[Install]WantedBy=timers.target(2)编写配套的服务单元文件。[Unit]Description=Testsystemdtimer[Service]Type=simpleExecStart=/home/test/disptime.sh任务7.3计划任务管理任务实现任务7.3.2基于systemd定时器实现计划任务管理(3)编写任务脚本文件disptime.sh。#!/bin/bash(echo-n'systemd定时器测试,当前时间:';date)>>/home/test/timer-test.txt;为该脚本赋予执行权限。(4)重新加载单元文件。test@deepin-PC:~$sudosystemctldaemon-reload(5)使新建的定时器能够开机自动启动,并启动该定时器。test@deepin-PC:~$sudosystemctlenable--nowdisptime.timerCreatedsymlink/etc/systemd/system/timers.target.wants/disptime.timer→/etc/systemd/system/disptime.timer.(6)列出定时器。test@deepin-PC:~$systemctllist-timersNEXTLEFTLASTPASSEDUNITACThu2023-07-2715:16:20CST53sleftThu2023-07-2715:14:20CST1min6sagodisptime.timerdisptime.service任务7.3计划任务管理任务实现任务7.3.2基于systemd定时器实现计划任务管理(7)实时查看/home/test/timer-test.txt文件内容测试定制的计划任务。test@deepin-PC:~$tail-f/home/test/timer-test.txtsystemd定时器测试,当前时间:2023年07月27日星期四15:14:20CSTsystemd定时器测试,当前时间:2023年07月27日星期四15:16:34CST(8)删除上述定时器及其相关文件,恢复实验环境。test@deepin-PC:~$sudosystemctldisable--nowdisptime.timerRemoved/etc/systemd/system/timers.target.wants/disptime.timer.test@deepin-PC:~$sudorm/etc/systemd/system/disptime.*test@deepin-PC:~$sudorm/home/test/timer-test.txt任务7.3计划任务管理任务实现任务7.3.2基于systemd定时器实现计划任务管理(1)编写定时器单元文件。[Unit]Description=Runevery2minandonboot[Timer]OnBootSec=1minOnUnitActiveSec=2min[Install]WantedBy=timers.target(2)编写配套的服务单元文件。[Unit]Description=Testsystemdtimer[Service]Type=simpleExecStart=/home/test/disptime.sh(3)编写任务脚本文件disptime.sh,将其保存/home/test目录中。这里执行的是一个消息显示的简单任务,仅仅用于示范(实际工作中用到的大多是系统维护操作,如定期备份任务),内容如下:#!/bin/bash(echo-n'systemd定时器测试,当前时间:';date)>>/home/test/timer-test.txt;为该脚本赋予执行权限,可执行以下命令来实现:test@deepin-PC:~$chmod+xdisptime.sh(4)由于单元文件是新创建的,执行以下命令重新加载单元文件。test@deepin-PC:~$sudosystemctldaemon-reload(5)执行以下命令使新建的定时器能够开机自动启动,并启动该定时器。test@deepin-PC:~$sudosystemctlenable--nowdisptime.timerCreatedsymlink/etc/systemd/system/timers.target.wants/disptime.timer→/etc/systemd/system/disptime.timer.这里启动的是.timer文件(定时器单元)而不是.service文件(服务单元)。因为配套的.service文件由.timer文件启动。任务7.3计划任务管理任务7.1进程管理任务7.2使用systemd管理系统和服务任务7.4编写Shell脚本实现自动化管理任务7.4编写Shell脚本实现自动化管理任务说明01OPTION02OPTION了解Shell脚本的基本知识初步掌握管理运维类的Shell脚本编写任务7.4编写Shell脚本实现自动化管理相关知识7.4.1
Shell脚本的特点Shell既是一种命令语言,又可作为程序设计语言。Shell脚本是指使用Shell提供的命令和语句所编写的命令文件。Shell具有很多类似C语言和其他程序设计语言的特征。Shell支持绝大多数高级程序设计语言的程序元素。Shell脚本与批处理文件很相似,可以包含任何从键盘输入的Linux命令。Shell脚本基本的功能就是汇集一些在命令行输入的连续命令。利用Shell脚本整合各种命令高效地查看和处理这些文本文件,从而实现系统运维自动化。任务7.4编写Shell脚本实现自动化管理相关知识7.4.2
Shell脚本的构成#!/bin/bash#这是一个测试脚本echo-n"当前日期和时间:"dateecho-n"程序执行路径:"$PATHecho"当前登录用户名:`whoami`"echo-n"当前目录:"pwd#end任务7.4编写Shell脚本实现自动化管理相关知识7.4.3
Shell脚本的执行方式说明用法命令行中直接执行脚本与执行一般的可执行文件的方式基本相同;将Shell脚本文件的权限设置为可执行chmod+x脚本文件./脚本文件[参数]使用指定的Shell解释器执行脚本直接运行Shell解释器,其参数就是Shell脚本的文件名;脚本文件无需可执行权限,不必在第1行指定Shell解释器Shell解释器
脚本文件[参数]使用source命令执行脚本在当前Shell环境下读取并执行Shell脚本文件中的代码并依次执行,不能使用sudo命令执行source命令;source命令通常用“.”命令来替代;脚本文件无需可执行权限,不必在第1行指定Shell解释器source脚本文件或.脚本文件将输入重定向到Shell脚本Shell解释器从指定文件中读入命令行,并进行相应处理;不要求脚本文件具有可执行权限;脚本文件作为参数,其后不能再带参数bash<脚本文件任务7.4编写Shell脚本实现自动化管理任务实现任务7.4.1编写Shell脚本批量添加用户批量添加用户的代码#!/bin/bash#添加一个名为teamA的用户组groupaddteamAif[$?-eq0];thenecho"成功添加用户组teamA!"fi#创建10个用户,命名为teamA01至teamA10,并将他们加入到teamA组foriin`seq-w110`douseradd-m-GteamAteamA$iif[$?-eq0];thenecho"成功添加用户teamA$i成功!"fi#将用户添加到sudo组使其成为管理员
usermod-gsudoteamA$i#以非交互方式修改密码将每个用户的初始密码设置为temppw加上用户名编号
echoteamA$i:temppw$i|chpasswdif[$?-eq0];thenecho"用户teamA$i的初始密码为:temppw$i"fidone任务7.4编写Shell脚本实现自动化管理任务实现任务7.4.1编写Shell脚本批量添加用户测试查看新创建的用户以新创建的用户登录任务7.4编写Shell脚本实现自动化管理任务实现任务7.4.1编写Shell脚本批量添加用户批量删除用户的代码#!/bin/bashforiin`seq-w110`douserdel-rteamA$iif[$?-eq0];thenecho"成功删除用户teamA$i!"fidonegroupdelteamAif[$?-eq0];thenecho"成功删除用户组teamA!"fi任务7.4编写Shell脚本实现自动化管理任务实现任务7.4.2编写Shell脚本自动监控系统性能了解系统性能数据的获取方法test@deepin-PC:~$cat/proc/statcpu102941110688182753385001906000cpu02606725094560862380719000cpu12436327344572392610230000cpu22842025904571501710635000cpu32408028554570561770322000intr3570193413580090001000290490012852155595086963……任务7.4编写Shell脚本实现自动化管理任务实现任务7.4.2编写Shell脚本自动监控系统性能了解系统性能数据的获取方法test@deepin-PC:~$cat/proc/meminfoMemTotal:3990508kBMemFree:563056kBMemAvailable:2568040kBBuffers:9892kBCached:2166160kBSwapCached:0kBActive:1396112kBInactive:1640688kBActive(anon):1708kBInactive(anon):870544kBActive(file):1394404kBInactive(file):770144kB……任务7.4编写Shell脚本实现自动化管理任务实现任务7.4.2编写Shell脚本自动监控系统性能编写系统性能监控脚本#!/bin/bash#定义获取CPU使用率的函数functiongetCpu{#grep'cpu'过滤出CPU总的使用情况,输出2-8列对应的时间
cpu_time1=$(cat/proc/stat|grep'cpu'|awk'{print$2,$3,$4,$5,$6,$7,$8}')#获取CPU空闲的时间(不包含IO等待)
cpu_idle1=$(echo$cpu_time1|awk'{print$4}')#合计cpu_time1中各列的值
cpu_total1=$(echo$cpu_time1|awk'{print$1+$2+$3+$4+$5+$6+$7}')#等5秒钟之后再测下一次CPU时间
sleep5cpu_time2=$(cat/proc/stat|grep'cpu'|awk'{print$2,$3,$4,$5,$6,$7,$8}')cpu_idle2=$(echo$cpu_time2|awk'{print$4}')cpu_total2=$(echo$cpu_time2|awk'{print$1+$2+$3+$4+$5+$6+$7}')#计算CPU总的空闲时间
cpu_idle=$(expr$cpu_idle2-$cpu_idle1)任务7.4编写Shell
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024高考地理一轮复习专练55可持续发展的内涵和实现途径含解析新人教版
- 外墙保温营造做法
- 《费孝通-乡土中国》差序格局
- 初三八班践行弟子规主题班会课件
- 2024年海南软件职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 论交际性操练在汉语词汇教学中的实际运用
- 钙钛矿电池发展潜力分析报告
- 2024年浙江旅游职业学院高职单招语文历年参考题库含答案解析
- 2024年泉州华光职业学院高职单招语文历年参考题库含答案解析
- 2024年防城港市人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 《沙盘技术》教学大纲
- (主城一诊)重庆市2025年高2025届高三学业质量调研抽测 (第一次)地理试卷(含答案)
- (新版)多旋翼无人机超视距驾驶员执照参考试题库(含答案)
- 哈利波特中英文全集
- DLT5210.1-电力建设施工质量验收及评价规程全套验评表格之欧阳法创编
- (2024)湖北省公务员考试《行测》真题及答案解析
- 500句汉语日常对话
- 《抽搐的鉴别与处理》课件
- 自来水厂建设项目可行性研究报告
- 承诺保证协议
- 土地成片开发运营模式与案例
评论
0/150
提交评论