Linux中的任务调度、磁盘分区与挂载、网络配置、进程管理、RPM和YUM

linux常见命令、组管理和权限管理:https://blog.csdn.net/weixin_45606067/article/details/107845670

十一、crond任务调度

1. 概述

任务调度:是指系统在某个时间执行的特定的命令或程序。

任务调度分类:

1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。
2.个别用户工作个别用户可能希望执行某些程序,比如对 mysql数据库的备份。

2. 基本语法

crontab [选项]

常用选项

选项 功能
-e 编辑crontab定时任务
-l 查询crontab任务
-r 刹车农户当前用户所有的crontab任务

3. 快速入门

任务的要求

设置任务调度文件:/etc/crontab

设置个人任务调度。执行 crontab –e命令。

接着输入任务到调度文件

如:*/1 * * * * ls–l /etc/ > /tmp/to.txt

意思说每小时的每分钟执行 ls–l /etc/ > /tmp/to.txt命令

步骤如下

1)cron -e

2)*/ 1 * * * * ls -l /etc >> /tmp/to.txt

3)当保存退出后就程序。

4)在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt

参数细节说明

  • 5个占位符说明

    项目 含义 范围
    第一个“*” 一小时当中的第几分钟 0-59
    第二个“*” 一天当中的第几小时 0-23
    第三个“*” 一个月当中的第几天 1-31
    第四个“*” 一年当中的第几月 1-12
    第五个“*” 一周当中的星期几 0-7(0和7都是代表星期日)
  • 特殊符号说明

    特殊符号 含义
    * 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
    , 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令。
    - 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令。
    */n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令
  • 定时时间执行任务案例

时间 含义
45 22 * * * * 命令 在22点45分执行命令
0 17 * * 1 命令 每周1的17点0分执行命令
0 5 1,15 * * 命令 每月1号和15号的凌晨5点0分执行命令
40 4 * * 1-5 命令 每周一到周五的凌晨4点40分执行命令
*/10 4 * * * 命令 每天饿凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

4. 任务调度的几个应用实例

案例1

每隔 1分钟,就将当前的日期信息,追加到 /tmp/mydate文件中

1)先编写一个文件 /home/mytask1.sh

date >> /tmp/mydate

2)给 mytask1.sh一个可以执行权限

chmod 744 /home/mytask1.sh

3)crontab -e

4)*/1 * * * * /home/mytask1.sh

5)成功

案例 2

每隔 1分钟,将当前日期和日历都追加到 /home/mycal文件中

1)先编写一个文件 /home/mytask2.sh

date >> /tmp/mycal

cal >> /tmp/mycal

2)给 mytask1.sh一个可以执行权限

chmod 744 /home/mytask2.sh

3)crontab -e

4)*/1 * * * * /home/mytask2.sh

5)成功

案例 3

每天凌晨 2:00将 mysql数据库 testdb,备份到文件中 mydb.bak。

1)先编写一个文件 /home/mytask3.sh

/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak

2)给 mytask3.sh一个可以执行权限

chmod 744 /home/mytask3.sh

  1. crontab -e

  2. 0 2 * * * /home/mytask3.sh

5)成功

5. crond相关指令

1)conrtab–r:终止任务调度。

2)crontab–l:列出当前有那些任务调度

3)service crond restart [重启任务调度]

十二、Linux磁盘分区、挂载

1. 分区基础知识

分区的方式

1)mbr分区:

  1. 最多支持四个主分区

  2. 系统只能安装在主分区

  3. 扩展分区要占一个主分区

  4. MBR最大只支持 2TB,但拥有最好的兼容性

2)gtp分区:

  1. 支持无限多个主分区(但操作系统可能限制,比如 windows下最多 128个分区)

  2. 最大支持 18EB的大容量(1EB=1024 PB,1PB=1024 TB)

  3. windows7 64位以后支持 gtp

windows下的磁盘分区

在这里插入图片描述

2. Linux分区

原理介绍

1)Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux中每个分区都是用来组成整个文件系统的一部分。

2)Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。

3)示意图
在这里插入图片描述

硬盘说明

1)Linux硬盘分 IDE硬盘和 SCSI硬盘,目前基本上是 SCSI硬盘

2)对于 IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字 1到 4表示,它们是主分区或扩展分区,从 5开始就是逻辑分区。例,hda3表示为第一个 IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个 IDE硬盘上的第二个主分区或扩展分区。

3)对于 SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE硬盘的表示方法一样。

使用 lsblk指令查看当前系统的分区情况

lsblk -f / lsblk
在这里插入图片描述

3. 挂载的经典案例

需求是给我们的 Linux系统增加一个新的硬盘,并且挂载到/home/newdisk。

如何增加一块硬盘

1)虚拟机添加硬盘(reboot重启)

2)分区 fdisk /dev/sdb

3)格式化 mkfs -t ext4 /dev/sdb1

4)挂载 先创建一个 /home/newdisk,挂载 mount /dev/sdb1 /home/newdisk

5)设置自动挂载(永久挂载,当你重启系统,仍然可以挂载到 /home/newdisk)。

vim /etc/fstab

添加 /dev/sdb1 /home/newdisk ext4 defaults 0 0

自动挂载 mount -a

断开挂载 umount /dev/sdb1

4. 具体的操作步骤整理

虚拟机增加硬盘步骤 1

在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)
在这里插入图片描述

虚拟机增加硬盘步骤 2

分区命令 fdisk /dev/sdb

开始对/sdb分区

•m 显示命令列表

•p 显示磁盘分区同 fdisk–l

•n 新增分区

•d 删除分区

•w 写入并退出

说明:开始分区后输入 n,新增分区,然后选择 p,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w写入分区并退出,若不保存退出输入 q。
在这里插入图片描述

虚拟机增加硬盘步骤 3

格式化磁盘

分区命令:mkfs -t ext4 /dev/sdb1

其中 ext4是分区类型

虚拟机增加硬盘步骤 4

挂载:将一个分区与一个目录联系起来,

•mount 设备名称挂载目录

例如: mount /dev/sdb1 /newdisk

•umount 设备名称或者 挂载目录 (断开挂载)

例如: umount /dev/sdb1 或者 umount /newdisk

虚拟机增加硬盘步骤 5

永久挂载:通过修改 /etc/fstab 实现挂载

添加完成后执行 mount –a即刻生效
在这里插入图片描述

5.磁盘情况查询

查询系统整体磁盘使用情况

基本语法

df -h

应用实例

1)查询系统整体磁盘使用情况
在这里插入图片描述

查询指定目录的磁盘占用情况

基本语法

du -h /目录

查询指定目录的磁盘占用情况,默认为当前目录

-s指定目录占用大小汇总

-h带计量单位

-a含文件

–max-depth=1子目录深度

-c列出明细的同时,增加汇总值

应用实例

1)查询 /opt目录的磁盘占用情况,深度为 1
在这里插入图片描述

6. 磁盘情况-工作实用指令

1)统计/home文件夹下文件的个数
在这里插入图片描述
2)统计/home文件夹下目录的个数
在这里插入图片描述
3)统计/home文件夹下文件的个数,包括子文件夹里的
在这里插入图片描述
4)统计文件夹下目录的个数,包括子文件夹里的
在这里插入图片描述
5)以树状显示目录结构
在这里插入图片描述

十三、网络配置

1. Linux网络配置原理图(含虚拟机)

目前我们的网络配置采用的是 NAT。
在这里插入图片描述

2. 查看网络 IP 和网关

查看虚拟网络编辑器

在这里插入图片描述

修改ip地址(修改虚拟网络的 ip)

在这里插入图片描述

查看网关

在这里插入图片描述

查看 windows环境的中 VMnet8网络配置

1)使用 ipconfig查看

2)界面查看
在这里插入图片描述

3.ping测试主机之间网络连通

基本语法

ping目的主机(功能描述:测试当前服务器是否可以连接目的主机)

应用实例

测试当前服务器是否可以连接百度

[root@hadoop100桌面]# ping www.baidu.com

4.linux网络环境配置

第一种方法(自动获取)

在这里插入图片描述
缺点:linux启动后会自动获取 IP,缺点是每次自动获取的 ip地址可能不一样。这个不适用于做服务器,因为我们的服务器的 ip需要时固定的。

第二种方法(指定固定的 ip)

说明:直接修改配置文件来指定 IP,并可以连接到外网 (程序员推荐) ,vi编辑
/etc/sysconfig/network-scripts/ifcfg-eth0

要求:将 ip地址配置的静态的,ip地址为 192.168.184.130

在这里插入图片描述
修改后,一定要重启服务

  1. service network restart

  2. reboot重启系统

十四、进程管理

1. 进程的基本介绍

1)在 LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID号。

2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www服务器。

3)每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。

4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

2. 显示系统执行的进程

说明

查看进行使用的指令是 ps ,一般来说使用的参数是 ps -aux
在这里插入图片描述
在这里插入图片描述

ps指令详解

1)指令:ps–aux|grep xxx,比如我看看有没有 sshd服务

2)指令说明

• System V展示风格

• USER:用户名称

• PID:进程号

• %CPU:进程占用 CPU的百分比

• %MEM:进程占用物理内存的百分比

• VSZ:进程占用的虚拟内存大小(单位:KB)

• RSS:进程占用的物理内存大小(单位:KB)

• TT:终端名称,缩写 .

• STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

• STARTED:进程的启动时间

• TIME:CPU时间,即进程使用 CPU的总时间

• COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

应用实例

以全格式显示当前所有的进程,查看进程的父进程
在这里插入图片描述

• ps -ef是以全格式显示当前所有的进程

• -e显示所有进程。-f全格式。

• ps -ef|grep xxx

• 是 BSD风格

• UID:用户 ID

• PID:进程 ID

• PPID:父进程 ID

• C:CPU用于计算执行优先级的因子。数值越大,表明进程是 CPU密集型运算,执行优先级会降低;数值越小,表明进程是 I/O密集型运算,执行优先级会提高

• STIME:进程启动的时间

• TTY:完整的终端名称

• TIME:CPU时间

• CMD:启动进程所用的命令和参数

思考题

如果我们希望查看 sshd进程的父进程号是多少,应该怎样查询?
在这里插入图片描述

3. 终止进程 kill和 killall

介绍

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。

使用 kill命令来完成此项任务。

基本语法

kill [选项]进程号(功能描述:通过进程号杀死进程)

killall进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变

得很慢时很有用)

常用选项

-9 :表示强迫进程立即停止

最佳实践

1)踢掉某个非法登录用户
在这里插入图片描述
2)终止远程登录服务 sshd,在适当时候再次重启 sshd服务
在这里插入图片描述
3)终止多个 gedit编辑器【killall ,通过进程名称来终止进程】
在这里插入图片描述
4)强制杀掉一个终端
在这里插入图片描述

4. 查看进程树 pstree

基本语法

pstree [选项] ,可以更加直观的来看进程信息

常用选项

-p :显示进程的 PID

-u :显示进程的所属用户

应用实例

1)请以树状的形式显示进程的 pid
在这里插入图片描述
2)请以树状的形式进程的用户 id

pstree -u

5. 服务(Service)管理

5.1 介绍

​ 服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd防火墙等),因此我们又称为守护进程,是 Linux中非常重要的知识点。【原理图】
在这里插入图片描述

5.2 service管理指令

service 服务名 [start | stop | restart | reload | status]

在 CentOS7.0后不再使用 service,而是 systemctl

5.3 使用案例

1)查看当前防火墙的状况,关闭防火墙和重启防火墙。
在这里插入图片描述

5.4 细节讨论

1)关闭或者启用防火墙后,立即生效。[telnet测试某个端口即可]

在windows的cmd中
telnet 192.168.184.130 22

2)这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。

如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig指令。

5.5 查看服务名

方式 1:使用 setup ->系统服务就可以看到。
在这里插入图片描述
方式 2: /etc/init.d/服务名称
在这里插入图片描述

5.6 服务的运行级别(runlevel)

查看或者修改默认级别: vi /etc/inittab

Linux系统有 7种运行级别(runlevel):常用的是级别 3和 5

• 运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动

• 运行级别 1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

• 运行级别 2:多用户状态(没有 NFS),不支持网络

• 运行级别 3:完全的多用户状态(有 NFS),登陆后进入控制台命令行模式

• 运行级别 4:系统未使用,保留

• 运行级别 5:X11控制台,登陆后进入图形 GUI模式

• 运行级别 6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动

5.7 开机的流程说明

在这里插入图片描述

5.8 chkconfig指令

介绍

通过 chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭

基本语法

1)查看服务 chkconfig --list | grep xxx
在这里插入图片描述
在这里插入图片描述
2)chkconfig 服务名 --list
在这里插入图片描述
3) chkconfig --level 5 服务名 on/off

请将 sshd服务在运行级别为 5的情况下,不要自启动。
在这里插入图片描述

5.9 应用实例

1)请显示当前系统所有服务的各个运行级别的运行状态

bash> chkconfig --list

2)请查看 sshd服务的运行状态

bash> service sshd status

3)将 sshd 服务在运行级别 5下设置为不自动启动,看看有什么效果?

bash> chkconfig --level 5 sshd off

4)当运行级别为 5时,关闭防火墙。

bash> chkconfig --level 5 iptables off

5)在所有运行级别下,关闭防火墙

bash> chkconfig iptables off

6)在所有运行级别下,开启防火墙

bash> chkconfig iptables on

5.10 使用细节

chkconfig重新设置服务后自启动或关闭,需要重启机器 reboot才能生效.

6. 动态监控进程

介绍

top与 ps命令很相似。它们都用来显示正在执行的进程。Top与 ps最大的不同之处,在于 top在执行一段时间可以更新正在运行的的进程。

基本语法

top [选项]

选项说明
在这里插入图片描述
应用实例

1)监视特定用户

top:输入此命令,按回车键,查看执行的进程。

u:然后输入“u”回车,再输入用户名,即可
在这里插入图片描述2)终止指定的进程

top:输入此命令,按回车键,查看执行的进程。

k:然后输入“k”回车,再输入要结束的进程 ID号

在这里插入图片描述
3)指定系统状态更新的时间(每隔 10秒自动更新,默认是 3秒)

bash> top -d 10

查看系统网络情况 netstat(重要)

基本语法

netstat [选项]

netstat -anp

选项说明

-an 按一定顺序排列输出

-p 显示哪个进程在调用

应用案例

查看系统所有的网络服务
在这里插入图片描述
查看指定端是否被占用

netstat -anp | grep 61616 #查看ActiveMQ端口是否被占用
lsof -i:61616	#查看ActiveMQ端口是否被占用

启动服务

./zkServer.sh   #进入到要启动的bin目录下

十五、RPM和 YUM

1. rpm包的管理

1.1 介绍

一种用于互联网下载包的打包及安装工具,它包含在某些 Linux分发版中。它生成具有RPM扩展名的文件。RPM是 RedHat Package Manager(RedHat软件包管理工具)的缩写,类似 windows的 setup.exe,这一文件格式名称虽然打上了 RedHat的标志,但理念是通用的。

Linux的分发版本都有采用(suse,redhat,centos 等),可以算是公认的行业标准了。

1.2 rpm包的简单查询指令

查询已安装的 rpm列表 rpm –qa | grep xx

请查询看一下,当前的 Linux有没有安装 firefox
在这里插入图片描述

1.3 rpm包名基本格式

一个 rpm包名:firefox-45.0.1-1.el6.centos.x86_64.rpm

名称:firefox

版本号:45.0.1-1

适用操作系统: el6.centos.x86_64

表示 centos6.x的 64位系统

如果是 i686、i386表示 32位系统,noarch表示通用。

1.4 rpm包的其它查询指令

rpm -qa :查询所安装的所有 rpm软件包

rpm -qa | more [分页显示]

rpm -qa | grep XX [rpm -qa | grep firefox ]

rpm -q 软件包名 :查询软件包是否安装

rpm -q firefox

rpm -qi 软件包名:查询软件包信息

rpm -qi file

rpm -ql 软件包名 :查询软件包中的文件

rpm -ql firefox

rpm -qf 文件全路径名查询文件所属的软件包

rpm -qf /etc/passwd

rpm -qf /root/install.log

1.5 卸载 rpm包

基本语法

rpm -e RPM包的名称

应用案例

1)删除 firefox软件包
在这里插入图片描述
细节问题

1)如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。

如: $ rpm -e foo

removing these packages would break dependencies:foo is needed by bar-1.0-1

2)如果我们就是要删除 foo这个 rpm包,可以增加参数 --nodeps ,就可以强制删除,但是一般

不推荐这样做,因为依赖于该软件包的程序可能无法运行

如:$ rpm -e --nodeps foo

带上 --nodeps就是强制删除。

1.6 安装 rpm包

基本语法

rpm -ivh RPM包全路径名称

参数说明

i=install安装

v=verbose提示

h=hash进度条

应用实例

1)演示安装 firefox浏览器

步骤先找到 firefox的安装 rpm包,你需要挂载上我们安装 centos的 iso文件,然后到/media/下去找 rpm找。
在这里插入图片描述

2. yum

2.1 介绍

Yum是一个 Shell前端软件包管理器。基于 RPM包管理,能够从指定的服务器自动下载 RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 yum的前提是可以联网。

2.2 yum的基本指令

• 查询 yum服务器是否有需要安装的软件

yum list|grep xx软件列表

• 安装指定的 yum包

yum install xxx下载安装

2.3 yum应用实例

案例:请使用 yum的方式来安装 firefox

1)先查看一下 firefox rpm在 yum服务器有没有
在这里插入图片描述

2)安装

yum install firefox

会安装最新版本的软件。

成功!
在这里插入图片描述


如果有收获!!! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客

猜你喜欢

转载自blog.csdn.net/weixin_45606067/article/details/107845803
今日推荐