Linux 操作系统——定时任务调度、磁盘分区与挂载、网络配置
11 定时任务调度
11.1 crond 任务调度
crontab 进行 定时任务的设置
11.1.1 概述
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。示意图
11.1.2 基本语法
crontab [选项]
11.1.3 常用选项
11.1.4 快速入门
设置任务调度文件:/etc/crontab
设置个人任务调度。执行 crontab –e 命令。接着输入任务到调度文件
如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
参数细节说明
5 个占位符的说明
特殊符号的说明
特殊时间执行案例
11.1.5 应用实例
案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
*/1 * * * * date >> /tmp/mydate
案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中步骤:
(1) vim /home/my.sh 写入内容 date >> /home/mycal 和 cal >> /home/mycal
(2) 给 my.sh 增加执行权限,chmod u+x /home/my.sh
(3) crontab -e 增加 */1 * * * * /home/my.sh
案例 3: 每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中。提示: 指令为
mysqldump -u root -p 密码 数据库 > /home/db.bak
步骤(1) crontab -e
步骤(2) 0 2 * * * mysqldump -u root -proot testdb > /home/db.bak
11.1.6 crond 相关指令
conrtab –r:终止任务调度。
crontab –l:列出当前有那些任务调度
service crond restart [重启任务调度]
11.2 at 定时任务
11.2.1 基本介绍
at 命令是一次性定时计划任务,at 的守护进程 atd 会以后台模式运行,检查作业队列来运行。
默认情况下,atd 守护进程每 60 秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
at 命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
在使用 at 命令的时候,一定要保证 atd 进程的启动 , 可以使用相关指令来查看
ps -ef | grep atd //可以检测 atd 是否在运行
画一个示意图
11.2.2 at 命令格式
at [选项] [时间]
Ctrl + D 结束 at 命令的输入, 输出两次
11.2.3 at 命令选项
11.2.4 at 时间定义
at 指定时间的方法:
接受在当天的 hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如:04:00
使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午 4 点)等比较模糊的词语来指定时间。
采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。例如:12pm
指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2021-03-1
使用相对计时法。指定格式为:now + count time-units ,now 就是当前时间,time-units 是时间单位,这里能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,几天,几小时。例如:now + 5 minutes
直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。
11.2.5 应用实例
更多操作
案例 1:2 天后的下午 5 点执行 /bin/ls /home
案例 2:atq 命令来查看系统中没有执行的工作任务
案例 3:明天 17 点钟,输出时间到指定文件内 比如 /root/date100.log
案例 4:2 分钟后,输出时间到指定文件内 比如 /root/date200.log
案例 5:删除已经设置的任务 , atrm 编号
atrm 4 //表示将 job 队列,编号为 4 的 job 删除.
12 磁盘分区、挂载
12.1 Linux 分区
12.1.1 原理介绍
Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。
Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
示意图
12.1.2 硬盘说明
Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
对于 IDE 硬盘,驱动器标识符为“hdx~”,“hd”表明分区所在设备的类型,这里是指 IDE 硬盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区,前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例:hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。
对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样
12.1.3 查看所有设备挂载情况
命令 :lsblk 或者 lsblk -f
12.2 挂载的经典案例
12.2.1 说明:
以增加一块硬盘为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的概念。
12.2.2 如何增加一块硬盘
虚拟机添加硬盘
分区
格式化
挂载
设置可以自动挂载
12.2.3 虚拟机增加硬盘
在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)!
12.2.4 分区
分区命令 fdisk /dev/sdb 开始对 /sdb 进行分区
m 显示命令列表
p 显示磁盘分区 同 fdisk –l
n 新增分区
d 删除分区
w 写入并退出
说明:开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w 写入分区并退出,若不保存退出输入 q。
12.2.5 格式化磁盘
格式化磁盘(生成 UUID)分区命令:mkfs -t ext4 /dev/sdb1 其中 ext4 是分区类型
12.2.6 挂载
挂载: 将一个分区与一个目录联系起来
mount 设备名称 挂载目录例如: mount /dev/sdb1 /newdisk
卸载:umount 设备名称 或者 挂载目录例如: umount /dev/sdb1 或者 umount /newdisk
注意: 用命令行挂载,重启后会失效
12.2.7 永久挂载
永久挂载: 通过修改 /etc/fstab 实现挂载添加完成后 执行 mount –a 即刻生效
最后两个数字,第一个数字:0/1=备份/不备份,第二个数字:2/1/0=根目录/其他目录文件检查/不检查
12.3 磁盘情况查询
12.3.1 查询系统整体磁盘使用情况
基本语法
df -h
应用实例
查询系统整体磁盘使用情况
12.3.2 查询指定目录的磁盘占用情况
基本语法
du -h
查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
应用实例
查询 /opt 目录的磁盘占用情况,深度为 1
12.4 磁盘情况-工作实用指令
统计/opt 文件夹下文件的个数
ls -l /opt | grep "^-" | wc -l
统计/opt 文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
统计/opt 文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep "^-" | wc -l
统计/opt 文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep "^d" | wc -l
以树状显示目录结构 tree 目录注意,如果没有 tree ,则使用 yum install tree 安装
13 网络配置
13.1 Linux 网络配置原理图
13.2 查看网络 IP 和网关
13.2.1 查看虚拟网络编辑器和修改 IP 地址
13.2.2 查看网关
13.3 查看 windows 环境的中 VMnet8 网络配置 (ipconfig 指令)
13.4 查看 linux 的网络配置 ifconfig
13.5 ping 测试主机之间网络连通性
13.5.1 基本语法
ping 目的主机 (功能描述:测试当前服务器是否可以连接目的主机)
13.5.2 应用实例
测试当前服务器是否可以连接百度
ping www.baidu.com
13.6 linux 网络环境配置
13.6.1 第一种方法(自动获取):
说明:登陆后,通过界面的来设置自动获取 ip,特点:linux 启动后会自动获取 IP,缺点是每次自动获取的 ip 地址可能不一样
13.6.2 第二种方法(指定 ip)
说明:
直接修改配置文件来指定 IP,并可以连接到外网(程序员推荐)
编辑 /etc/sysconfig/network-scripts/ifcfg-ens33
要求:将 ip 地址配置的静态的,比如: ip 地址为 192.168.200.130
ifcfg-ens33 文件说明
DEVICE=eth0 #接口名(设备,网卡)
HWADDR=00:0C:2x:6x:0x:xx #MAC 地址
TYPE=Ethernet #网络类型(通常是 Ethemet)
UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44 #随机 id
#系统启动的时候网络接口是否有效(yes/no)
ONBOOT=yes
# IP 的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配 IP|BOOTP 协议|DHCP 协议)
BOOTPROTO=static
#IP 地址
IPADDR=192.168.200.130
#网关
GATEWAY=192.168.200.2
#域名解析器
DNS1=192.168.200.2
重启网络服务或者重启系统生效
service network restart、reboot
13.7 设置主机名和 hosts 映射
13.7.1 设置主机名
为了方便记忆,可以给 linux 系统设置主机名, 也可以根据需要修改主机名
指令 hostname : 查看主机名
修改文件在 /etc/hostname 指定
修改后,重启生效
13.7.2 设置 hosts 映射
思考:如何通过 主机名能够找到(比如 ping) 某个 linux 系统?
windows
在 C:\Windows\System32\drivers\etc\hosts 文件指定即可案例: 192.168.200.130 PangHu
linux
在 /etc/hosts 文件 指定
案例: 192.168.200.1 PangHu-PC
13.8 主机名解析过程分析(Hosts、DNS)
13.8.1 Hosts 是什么
一个文本文件,用来记录 IP 和 Hostname(主机名)的映射关系
13.8.2 DNS
DNS,就是 Domain Name System 的缩写,翻译过来就是域名系统是互联网上作为域名和 IP 地址相互映射的一个分布式数据库
13.8.3 应用实例: 用户在浏览器输入了[www.baidu.com]
浏览器先检查浏览器缓存中有没有该域名解析 IP 地址,有就先调用这个 IP 完成解析;如果没有,就检查 DNS 解析器缓存。这两个缓存,可以理解为 本地解析器缓存
一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的 IP 地址(DNS 解析记录).如 在 cmd 窗口中输入
ipconfig /displaydns //DNS 域名解析缓存
ipconfig /flushdns //手动清理 dns 缓存
如果本地解析器缓存没有找到对应映射,检查系统中 hosts 文件中有没有配置对应的域名 IP 映射,如果有,则完成解析并返回。
如果 本地 DNS 解析器缓存 和 hosts 文件 中均没有找到对应的 IP,则到域名服务 DNS 进行解析域
示意图
作者:胖虎不秃头
链接:https://juejin.cn/post/7135621232958914567
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
版权声明: 本文为 InfoQ 作者【胖虎不秃头】的原创文章。
原文链接:【http://xie.infoq.cn/article/c484f3d26813b67bdfdcf8027】。文章转载请联系作者。
评论