1、crond任务调度
1.1 概述:
1.1.1任务调度:是指系统在某个时间执行的特定的命令或者程序。
- 任务调度分类:
1. 系统工作:一些系统的工作必须周而复始的执行。如病毒扫描。 2. 个别用户的工作:个别用户可能希望执行某些程序,比如对mysql的数据库备份等。
1.2 基本语法
crontab [选项]
1.3 常用选项
- -e:编辑crontab定时任务
- -l:查询crontab定时任务
- -r:删除当前用户所有的crontab定时任务
1.4 快速入门案例
- 设置任务调度文件 /etc/crontab,设置个人任务调度。执行crontab -e命令。
接着输入任务到调度文件如: /1 * ls -l /etc/>>/tmp/to.txt命令1
2crontab -e //开启任务编辑器
*/1 * * * * ls -l /etc/>>/tmp/to.txt命令
1.5 说明
- 如果是简单的任务,可以不用写脚本,直接在crontab中加入任务即可
- 对于比较复杂的任务需要写脚本来完成(shell编程)
1.6 参数说明
1.6.1 *的说明
项目 | 含义 | 范围 |
---|---|---|
第一个“*” | 一小时当中的第几分钟 | 0-59 |
第二个“*” | 一天当中的第几小时 | 0-23 |
第三个“*” | 一个月当中的第几天 | 1-31 |
第四个“*” | 一年当中的第几个月 | 1-12 |
第五个“*” | 一周当中的星期几 | 0-7 0和7都是表示星期天 |
1.6.2 特殊符号说明
特殊符号 | 含义 |
---|---|
* | 代表任何时间。比如第一个*就是每分钟执行一次 |
, | 代表不连续时间。比如0 8,12,16 * 命令 表示每天8点0分12点0分16点0分都执行一次 |
- | 代表连续时间。比如0 5 1-6 命令 表示每周一到周五5点0分都执行一次 |
*/n | 代表每隔多久执行一次。比如/10 * 命令 表示每间隔10分钟都执行一次 |
1.6.3 案例说明
时间 | 含义 |
---|---|
45 22 * 命令 | 每天22点45执行一次命令 |
0 2 1 命令 | 每周一的2点0分执行一次命令 |
0 2 1,15 命令 | 每月1到15号的2点0分执行一次命令 |
40 2 1-5 命令 | 每周一到周五的2点40分执行一次命令 |
/10 4 命令 | 每天4点,每间隔10分钟执行一次命令 到5点就不执行了 |
0 0 1,15 * 1 命令 | 每月的1号15号0点0分执行一次命令,每周一的0点0分执行一次命令。都会执行。 注意:星期几和几号最好不要同时出现,因为他们都是天。非常容易让管理员混淆 |
1.7 任务调度的几个应用实例
1.7.1 案例一:每隔1分钟,将当前的日期信息追加到/home/date.txt文件中
1 | //1.编写一个文件,并写入代码 |
1.7.2 案例二:每间隔一分钟,将当前日期和日历都追加到/home/date.txt文件中
1 | //修改mytash1.sh |
1.7.3 案例三:每天凌晨2:00将mysql数据库testdb,备份到文件中mydb.bak
1 | //1.编写一个文件,并写入代码 |
1.8 crond 相关指令
- 1)crontab -r:终止任务调度。(删除)
- 2)crontab -l:列出当前用户的任务调度
- 3)service crond restart [重启任务调度]
2、linux 磁盘分区和挂载
2.1 分区基本概念
2.1.1 mbr分区
- 最多支持4个主分区
- 系统只能安装到主分区
- 扩展分区要占一个主分区
- MBR最大只支持2TB,但是拥有最好的兼容性
2.1.2 gpt分区
- 支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
- 最大支持18EB的大容量(1EB=1024PB ,1PB=1024TB)
- windows7 64位以后支持gtp
2.2 linux 分区
2.2.1 原理介绍
- linux来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个du’li且唯一的文件结构,Linux中每一个分区都是用来组成整个文件系统的一部分
- Linux 采用了一种载入的方式,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
- linux硬盘通过mount(挂载)umount(卸载)操作和linux文件系统联系起来
2.2.2 硬盘分区
- linux硬盘分ide硬盘和scsl硬盘,目前基本上是scsl硬盘,scsl的性能更好。
- 对于ide硬盘,驱动器标识符为“hdx”,其中“hd”表明分区所在设备类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,他们是主分区或扩展分区,从5开始就是逻辑分区,例如hda3表示第一个ide磁盘上的第三个主分区或者扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
- 对于SCSL硬盘则标识为“sdx”,SCSL硬盘是用“sd”来表示分区所在的设备类型的,其余则和IDE硬盘的表示方法一样。
2.2.3 指令(查看系统分区和挂载的情况)
1 | lsblk -f |
2.3 挂在的经典案例
2.3.1 需求是给我们的Linux系统增加一个新的硬盘
- 虚拟机添加硬盘
分区
- 代码:fdisk /dev/sdb
- 开始对/sdb分区
- m显示命令列表
- p显示磁盘分区 同fdisk -l
- n新增分区
- d删除分区
- w写入并退出
- 说明:
开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存则退出输入q
格式化
- 代码:mkfs -t ext4 /dev/sdb1
- ext4是分区类型
挂载
- 先创建一个目录
mkdir /home/newdisk - 挂载
mount 设备名称 挂在目录
mount /dev/sdb1 /home/newdisk
- 先创建一个目录
设置可以自动挂载(永久挂载,即重启后仍然可以自动挂载)
vim /etc/fstab
/dev/sdb1 home/newdisk ext4 defaults 0 0卸载
- umount 设备名称或者挂载目录
- 例如:umount /dev/sdb1 或者umount /newdiskT
3、磁盘使用情况
3.1 指令:查询磁盘整体的使用情况
df1
df -lh
3.2 查询指定目录的磁盘占用情况
3.2.1 基本语法:
du -h /目录
3.2.2 查询指定目录的磁盘占用情况,默认为当前目录
- -s:指定目录占用大小汇总
- -h:带计量单位
- -a:含文件
- –max-depth=1 子目录深度
- -c 列出明细的同时,增加汇总量
3.2.3 应用实例
查询 /home目录的磁盘占用情况,深度为11
du -ach --max-depth=1 /home
3.3 工作中常用指令
3.3.1 统计/home文件夹下文件的个数
1 | ls -l /home | grep "^-" |wc -l |
3.3.2 统计/home文件夹下目录的个数
1 | ls -l /home | grep "^d"|wc -l |
3.3.3 统计/home文件夹下文件的个数,包括子文件夹里面的
1 | ls -lR /home | grep "^-" |wc -l |
3.3.4 统计/home文件夹下目录的个数,包括子目录的
1 | ls -lR /home |grep "^d"|wc -l |
3.3.5 以树状显示/home目录
默认显示当前目录
1 | yum install tree |
4、网络配置
4.1 网络配置原理图
4.2 虚拟网络
4.2.1 查看虚拟网络编辑器
4.2.2 查看网关
4.2.3 查看设置window下的vmnet8的网络配置
4.2.4 设置好后ping测试
4.3 linux 网络的环境配置
4.3.1 第一种方式 自动获取
缺点,每次获取的ip不一样
4.3.2 第二种方式 指定固定ip地址
1) 说明:直接修改配置文件来指定ip地址,并连接到外网,编辑
1 | vi /etc/sysconfig/network-scripts/ifcfg-ens33 |
1 | TYPE="Ethernet" |
2) 修改完后重启服务
1 | service network restart |
5、进程管理
5.1 基本介绍
- 在linux中,每个执行的程序(代码)就是一个进程,每一个进程都分配一个id号。
- 每一个进程都对应一个父进程,而这个父进程可以复制多个子进程,例如www服务器
- 每个进程都可以以两种方式存在,前台和后台,所谓的前台就是用户在自己的屏幕上可以进行操作的,后台进程则是实际在操作,但是屏幕上面无法看到的,通常使用后台方式执行。
- 一般系统的进程都是以后台方式存在的,而且会常驻系统中,关机才会结束。
5.2 常用操作
5.2.1 显示系统中执行的指令
- ps
- ps显示的字段信息
字段 | 说明 |
---|---|
PID | 进程识别号 |
TTY | 终端机号 |
TIME | 此进程所消耗的cpu时间 |
CMD | 正在执行的命令或者进程名 |
5.2.2 常用参数
5.2.4 实例
查看系统中有没有sshd进程
1
ps -aux | grep sshd
查看进程的父进程
1
ps -ef | more
- -e显示所有进程
- -f全格式
- 查看sshd父进程
1
ps -ef | grep sshd
5.3 终止进程 kill 或者 killall
5.3.1 介绍:
如果进程执行一半需要停止时,或者已消耗了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项目。
5.3.2 基本语法:
- kill [选项] 进程号 (功能描述:通过进程号杀死进程)
- killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载较大时而变慢时很有用)
5.3.3 常用语法:
- -9:表示强迫进程立即停止
5.3.4 案例
- 踢掉某个非法用户
查看当前用户
1
ps -aux |grep sshd
根据进程号杀死用户
1
kill 7192
终止远程登陆服务sshd 在适当的时候再次重启sshd服务
- kill掉sshd的进程号
终止多个gedit编辑器
1
killall gedit
强制杀掉一个终端
1
kill -9 4090
5.4查看进程树
- 常用参数
- -p:显示进程的pid
- -u:显示进程的所属用户
1
2pstree -p
pstree -u
6、服务管理
6.1 介绍
服务的本质就是进程,但是运行在后台,通常会监听某个端口,等待其他的请求,比如(mysql,sshd,防火墙等),因此我们又称为守护进程,是linux非常重要的知识点。
6.2 service管理指令
- service 服务名 start|stop|restart|reload|status|
在CentOS 7.0后,不再使用service,而是用systemctl
6.3 使用案例
1)查看当前防火墙的状态,关闭防火墙,重启防火墙
1
2
3systemctl status firewalld.service
systemctl start firewalld
systemctl stop firewalld
- 补充:锁定防火墙
1
2
3
4
5
//解除锁定
systemctl unmask firewalld
Removed symlink /etc/systemd/system/firewalld.service.
//锁定防火墙
systemctl mask firewalld
2)查看当前启动的服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16ls -l /etc/init.d/
```
#### 6.4 运行级别
![q2.jpg](https://i.postimg.cc/HLNB1xw5/q2.jpg)
#### 6.5 chkconfig指令
- 介绍
通过chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭
- 基本语法
- 1)查看服务 chkconfig --list|gerp xxx
- 2)chkconfig 服务名 --list
```markdown
//constOS7指令
systemctl list-unit-files |grep sshd- 3)修改sshd在运行级别5的时候不自启动
1
chkconfig --level 5 ssdh off
- 3)修改sshd在运行级别5的时候不自启动
6.6 监控网络状态
6.6.1 查看网络状态
- 基本语法
netstat [选项] - 选项说明
- -an 按一定顺序排列输出
- -p 显示哪个进程在调用
- 应用案例
- 查看服务名为sshd的服务信息
1
netstat -p | grep sshd
- 查看服务名为sshd的服务信息
6.6.2 动态监控进程
- 介绍
top与ps相似,它们都是用来显示正在执行的进程。Top与ps最大的不同之处就是,top在执行中可以更新正在运行的进程 - 基本语法
top [选项] 选项说明
|选项|说明|
|—|—|
|-d 秒数|指定top命令每隔几秒更新,默认是3秒更新|
|-i|使top不显示任何闲置或者僵尸进程|
|-p|通过指定监控进程id来仅仅监控某个进程的状态|交互操作
|操作|功能|
|—|—|
|p|已cpu使用率排序,默认就是此项|
|m|已内存使用率排序|
|n|已pid排序|
|q|退出top|应用实例
监视特定的用户
1
2top
输入u回车后再输入指定的用户名终止指定的进程
1
2
3top
输入k后回车再输入指定的id号
sigterm指定系统的更新时间(默认是3秒刷新一次)
1
top -d 10
6.7 监控网络状态
6.7.1 查看系统网络情况
- 基本语法
netstat [选项] - 选项说明
- -an:按一定顺序排列输出
- -p:显示哪个进程在调用
- 应用案例
- 查看所有的网络服务
1
netstat -anp | more
- 查看所有的网络服务
7、linux RPM与YUM
7.1 rpm包的管理
- 介绍
一种互联网下载包的打包工具和下载工具它包含在某些linux分发版中。它生成具有RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似windows的setup.exe 这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。 rpm包的简单查询指令
1
rpm -qa | grep XX
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表示通用
- 一个rpm包名:firefox-45.0.1-1.el6.centos.x86-64.rpm
rpm包的其它查询指令
rpm -qa 查询所有安装的rpm包
- 1)rpm -qa | more
- 2)rpm -qa | grep XX (rpm-qa | grep sudo)
rpm -q XX 查询软件包是否安装
- 1)rpm -q sudo
rpm -qi XX 查询软件包信息
- 1)rpm -qi sudo
rpm -ql XX 查询软件包中的文件
- 1)rpm -ql sudo
rpm -qf XX 文件全路径名 查询文件所属的软件包
- 1) rpm -qf /var/db/sudo
卸载rpm包
- 基本语法
rpm -e RPM包的名称 - 应用案例
- 1)删除firefox 软件包
- 细节:
(1)如果其他软件包依赖于您要预载的软件包,预载时则会产生错误信息
(2)强制删除foo这个包则增加参数–nodeps,但是一般不这么做,防止依赖的包不能使用1
rpm -r --nodeps foo
- 细节:
- 1)删除firefox 软件包
- 基本语法
安装rpm包
- 基本语法
rpm -ivh RPM包的名称 - 参数说明
- 1)i=install 安装
- 2)v=verbose 提示
- 3)h=hash 进度条
- 案例
- 1)安装firefox
1
21.先找到firefox的rpm安装包
rpm -ivm firefox-45.0.1.el6.centos.x86-64.rpm
- 1)安装firefox
- 基本语法
7.2 yum
介绍
yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包,并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。yum的基本指令
查询yum的服务器是否有安装的软件
1
yum list|grep xx(软件列表)
安装指定的yum包
1
2
3
4
5
6yum install xxx(下载安装)
```
- yum应用实例
- 使用yum安装firefox
```markdown
yum install firefox