@


本文以 CentOS7.6 为例

1:定时任务调度

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

任务调度分类:

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

1.1:crontab

功能描述:用来设置定期执行任务。定时任务以类似文本的形式保存,称为时程表。

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

重启任务调度

service crond restart

基本语法

crontab 选项

常用选项

参数 说明
-l 查询定时任务,列出时程表。
-e 编辑个人定时任务,执行文本编辑器(默认为 vi 编辑器)来设定时程表。
-r 删除当前用户所有定时任务,即清空时程表。

编辑时程表时,任务可为命令,也可为 shell 脚本。另外,涉及到路径,最好使用绝对路径。

时程表占位符说明

占位符 含义 范围
第一个 “ * ” 分钟 0 ~ 59
第二个 “ * ” 小时 0 ~ 23
第三个 “ * ” 一个月中的第几天 1 ~ 31
第四个 “ * ” 月份 1 ~ 12
第五个 “ * ” 一周当中的星期几 0 ~ 6(0为星期天)

特殊符号说明

特殊符号 含义
“ * ” 代表任何时间。比如第一个 “ * ” 就代表每分钟都执行一次。
“ , ” 代表不连续的时间。如 “ 0 8,12,16 * * * ” 就代表在每天的 8:00,12:00,16:00 都执行一次。
“ - ” 代表连续的时间范围。如 “ 30 5 * * 1-6 ” 就代表在周一到周六的凌晨 5:30 执行。
“ */n ” 代表每隔多久执行一次。如 “ */10 * * * * ” 就代表每隔 10 分钟执行一次。

时间执行示例:

* * * * *         每分钟定时执行一次
0 * * * * 每小时整点定时执行一次
0 0 * * * 每天 0:00 定时执行一次
*/1 * * * * 每分钟定时执行一次
45 22 * * * 每天 22:45 执行
0 17 * * 1 每周一 17:00 执行
0 5 1,15 * * 每月 1 号和 15 号的 5:00 执行
40 4 * * 1-5 每周一到周五的 4:00 执行
*/10 4 * * * 每天的 4:00,每隔 10 分钟执行一次(5:00 过后不再执行)
0 0 1,15 * 1 每月 1 号和 15 号,和每周一的 0:00 执行 注意:星期几和几号最好不要同时出现,阅读时容易引起混乱

示例:

/*
每隔 5 分钟,就将当前的日期信息,追加到 /tmp/mydate.txt 文件中
*/
# 设定时程表,编辑定时任务
crontab -e
# 进入 vi 编辑器的形式,编辑定时任务指令
*/5 * * * * date >> /tmp/mydate.txt /*
在 /home/ 目录下,创建 shell 脚本 my.sh,实现上一个示例.
*/
# 准备脚本文件
vim /home/my.sh
# 写入以下命令
date >> /tmp/mydate.txt
# 给 my.sh 增加执行权限
chmod u+x /home/my.sh
# 设定时程表,编辑定时任务
crontab -e
# 进入 vi 编辑器的形式,编辑定时任务指令
*/5 * * * * /home/my.sh

1.2:at

功能描述:一次性定时计划任务。默认从标准输入读取要执行的命令。(并非所有 Linux 发行版都自带 at 命令)

at 的守护进程 atd 会以后台模式运行,检查作业队列来运行。

默认情况下,atd 守护进程每 60 秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

在使用 at 命令的时候,一定要保证 atd 进程的启动 , 可以使用相关指令来查看。

检测 atd 是否在运行

ps -ef | grep atd

查看未执行的任务

atq

查询到的第一列即为任务编号。

删除未执行的任务

atrm 编号

基本语法

at 选项

常用选项

参数 说明
时间 以标准输入(命令行)来输入定时任务。需要按两次【ctrl】+【D】来结束输入。
-I(大写 i) atq 别名,相当于 atq 指令。
-d atrm别名,相当于 atrm 指令。
-v 显示任务将被执行的时间。
-t 时间参数 以时间参数的形式提交要运行的任务。
-f 文件 从指定文件读入任务而不是从标准输入读入。

指定时间的方法

  • 接受 hh:mm(小时:分钟)式的时间指定。假如该时间在当天已过去,那就放在第二天执行。例如:at 04:00。
  • 使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午 4 点)等比较模糊的词语来指定时间。
  • 采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。例如:at 12pm。
  • 使用相对计时法。指定格式为:now + 数字 时间单位,now 就是时间(默认当前,可自己设定),时间单位能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。例如:at now + 5 minutes、at 5pm + 5 days。
  • 直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。
  • 指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:at 04:00 2021-03-1

比较抽象。。。由于非常复杂且不常用,这里只举几个简单例子。

示例:

/*
2 天后的下午 5 点执行 /bin/ls /home 命令
*/
# 输入 at 指令并执行
at 5pm + 2 days
# 输入要执行的指令。此时有 “ at> ” 提示。完成后需按两次【ctrl】+【D】来结束
/bin/ls /home /*
明天 17 点钟,输出时间到指定文件内。比如 /root/date100.log
*/
# 输入 at 指令并执行
at 5pm tomorrow
# 输入要执行的指令。此时有 “ at> ” 提示。完成后需按两次【ctrl】+【D】来结束
date > /root/date100.log

2:磁盘分区与挂载

2.1:原理介绍

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

Linux 采用了一种叫 “ 载入 ” 的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来(挂载)。这时载入的一个分区的存储空间与一个目录(挂载点)对应

2.2:硬盘说明

Linux 硬盘分 IDE 硬盘和 SCSI 硬盘。目前基本上是 SCSI 硬盘。

  • IDE 硬盘

    对于 IDE 硬盘,驱动器标识符为 “ hdx~ ”。

其中 “ hd ” 表明分区所在设备的类型是 IDE 硬盘。“ x ” 为盘号(a为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“ ~ ” 代表分区,前四个分区用数字 1 到4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。

例,hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。

  • SCSI 硬盘

    对于 SCSI 硬盘,标识符为 “ sdx~ ”。

用 “ sd ” 来表示分区所在设备的类型是 SCSI 硬盘。其余则和 IDE 硬盘的表示方法一样。

2.3:磁盘目录情况查询

2.3.1:lsblk

功能描述:查看设备挂载情况,列出所有可用块设备的信息。(list block)

基本语法

lsblk [选项]

常用选项

参数 说明
-a 显示所有设备。(不加选项,默认为此选项)
-f 显示文件系统信息。

示例:

参数说明:

  • NAME:块设备名与分区情况。
  • MAJ:MIN:表示主要和次要设备号。
  • RM:表示设备是否为可移动设备。(1 为可移动设备)
  • SIZE:设备的容量大小信息。
  • RO:设备是否为只读。(0 代表不是只读的)
  • TYPE:表示块设备是否是磁盘或磁盘上的一个分区。(如上图,sda 为磁盘。sda1、sda2、sda3 为 sda 分区。sr0 为只读存储 rom)
  • MOUNTPOINT:挂载点。

参数说明:

  • NAME:块设备名与分区情况。
  • FSTYPE:文件类型。
  • UUID:分区 40 位唯一标识符。
  • MOUNTPOINT:挂载点。

2.3.2:df

功能描述:查询系统整体磁盘使用情况。(disk free)

基本语法

df [选项] [目录或文件]

常用选项

参数 说明
-h 使用便于人类可读的格式列出信息。
-H 与 -h 类似,但是以 1000 为换算单位而不是用 1024。

示例:

2.3.3:du

功能描述:查询指定目录或文件的磁盘占用情况。(disk usage)

基本语法

du [选项] [目录或文件]

常用选项

参数 说明
-h 使用便于人类可读的格式列出信息。
-H 与 -h 类似,但是以 1000 为换算单位而不是用 1024。
-s 仅显示占用大小汇总。
-a 列出包含文件在内的大小
-c 除了显示目录或文件的大小外,也显示占用大小的总和。
--max-depth=数字 统计的子目录深度,超过指定层数的目录后,予以忽略。

示例:

2.3.4:tree

功能描述:以树状图列出目录的内容。(并非所有 Linux 发行版都自带)

基本语法

tree [选项] 目录

常用选项

参数 说明
-a 显示所有文件和目录。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。

2.3.5:其他查看指令示例

# 统计 /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

2.4:分区与挂载

2.4.1:fdisk

功能描述:一个创建和维护分区表的程序,即可用来分区。

基本语法

fdisk [选项]

常用选项

参数 说明
/dev/硬盘 以命令的方式进行硬盘分区处理。
-l 查看分区情况。

分区时选项说明

选项 说明
m 显示菜单和帮助信息。
p 显示磁盘分区。同 fdisk -l。
n 新建分区。
d 删除分区。
q 退出不保存。
w 保存修改并退出。

示例:

# 对 /sdb 分区
fdisk /dev/sdb

2.4.2:mkfs

功能描述:用于在特定的分区上建立 Linux 文件系统,即格式化。(make file system)

基本语法

mkfs [选项] /dev/磁盘分区

常用选项

参数 说明
-t 分区类型 将磁盘分区格式化为指定格式。

示例:

# 将 sdb1 分区格式化为 ext4 格式
mkfs -t ext4 /dev/sdb1

2.4.3:mount

功能描述:用于挂载 Linux 系统外的文件。即将一个分区与一个目录联系起来。

注:以命令行的方式操作,重启后会失效。如需永久生效,要在 /etc/fstab 配置文件中编辑。

基本语法

mount [选项] 磁盘分区 挂载目录

常用选项

参数 说明
-o ro 以只读模式挂上。
-o rw 以可读写模式挂上。(默认为此)
-a 将 /etc/fstab 中的定义立即生效。

示例:

# 将 /dev/sdb1 以只读模式挂在 /newdisk/ 之下。
mount -o ro /dev/sdb1 /newdisk # # 将 /dev/sdb1 以可读写模式挂在 /newdisk/ 之下。
mount /dev/sdb1 /newdisk

2.4.4:umount

功能描述:用于卸除文件系统。即移除挂载。(unmount)

注:以命令行的方式操作,重启后会失效。如需永久生效,要在 /etc/fstab 配置文件中编辑。

基本语法

umount name

“ name ” 可以用分区名称或挂载点。

示例:

# 将上例中 sdb1 卸载。
方式一、 umount /dev/sdb1
方式二、 umount /newdisk

2.4.5:相关配置文件

有关挂载的配置,保存在 /etc/fstab 文件。

可通过编辑此文件来改变挂载。

可用分区 UUID 或路径进行挂载。

示例:

将 /dev/sdb1 挂在 /newdisk/ 之下。

2.5:挂载案例

这里以增加一块硬盘为例(虚拟机进行),进行磁盘分区、挂载、卸载。

总体步骤:

  1. 添加硬盘。
  2. 给硬盘分区。
  3. 格式化。
  4. 挂载。

2.5.1:虚拟机添加硬盘

在设备列表里添加硬盘,然后只需一直【下一步】,只有选择磁盘大小的地方需要修改,直到完成。然后重启系统才能识别。

可以看到硬盘为 sdb。还没有分区。

2.5.2:硬盘分区

给添加的硬盘分区。这里为了方便,只分一个区。

fdisk /dev/sdb

输入 n,新增分区;然后输入 p(分区类型为主分区);两次回车默认分配剩余全部空间。最后输入 w ,写入分区并退出。分区完成。

可以看到有了一个分区。

2.5.3:格式化

新增分区需格式化后才能分配 UUID。

mkfs -t ext4 /dev/sdb1

格式化后分配了 UUID。

2.5.4:挂载

将 /dev/sdb1 挂在 /newdisk/ 之下。/newdisk/ 即为挂载点,挂载点可随意更改。

mount /dev/sdb1 /newdisk

如需永久挂载,只需在 /etc/fstab 中配置。

3:网络配置

3.1:相关指令

3.1.1:ifconfig

功能描述:用于显示或设置网络配置。

基本语法

ifconfig

ifconfig 指令也可搭配相关选项参数来进行网络配置设置。

3.1.2:ping

功能描述:用于检测主机,测试是否可以连接目的主机。

基本语法

ping [选项] 目的主机

“ 目的主机 ” 可以是 ip 地址,可以是域名,也可以是主机名。

常用选项

参数 说明
-c 数字 设置收到指定次数包后,自动停止
-i 数字 指定收发信息的间隔时间,单位为秒。
-s 数字 设置发送包的大小。
-t 设置存活数值 TTL 的大小。

3.1.3:netstat

功能描述:用于查看网络状态。

基本语法

netstat [选项]

常用选项

参数 说明
-a 或 --all 显示所有连接和监听端口。
-n 以数字形式显示地址和端口号。
-p 显示建立相关连接的程序名。
-t 仅显示 tcp 相关。
-u 仅显示 udp 相关。

3.1.4:其他指令

重启网络服务

service network restart

查看主机名

hostname

3.2:网络环境配置

3.2.1:指定静态 ip

Linux 启动后会通过 DHCP 自动获取 IP 地址。如果需要指定固定的 ip 地址,需要在 /etc/sysconfig/network-scripts/ifcfg-ens33 文件中配置。

ifcfg-ens33文件参数

参数 说明
TYPE 网卡类型(通常是 Ethemet 以太网)
PROXY_METHOD 代理方式
BROWSER_ONLY 只是浏览器
BOOTPROTO 网卡的引导协议(static:静态IP。dhcp:动态IP。bootp:BOOTP 协议。none:不指定)
DEFROUTE 默认路由
IPV4_FAILURE_FATAL 是否开启 IPv4 致命错误检测
IPV6INIT IPV6是否自动初始化
IPV6_AUTOCONF IPv6 是否自动配置
IPV6_DEFROUTE IPv6 是否可以为默认路由
IPV6_FAILURE_FATAL 是否开启 IPv6 致命错误检测
IPV6_ADDR_GEN_MODE IPv6 地址生成模型
NAME 网卡物理设备名称
UUID 通用唯一识别码
DEVICE 网卡设备名称,必须和 “ NAME ” 值一样
ONBOOT 是否开机启动
IPADDR 本机IP,通常与静态 ip 配合使用。
NETMASK 子网掩码,通常与静态 ip 配合使用。
GATEWAY 默认网关,通常与静态 ip 配合使用。
DNS1 域名解析器,通常与静态 ip 配合使用。

设置静态 ip,一般情况只需更改 BOOTPROTO、IPADDR、GATEWAY、DNS1。如果没有参数自己添加即可。

然后重启网络服务或者重启系统即可生效。

示例(ip 部分改为自己的相应设置):

BOOTPROTO="static"
IPADDR=192.168.200.130
GATEWAY=192.168.200.2
DNS1=192.168.200.2

3.2.2:设置主机名

为了方便记忆,可以给 Linux 主机设置主机名,也可以根据需要修改主机名。

只需编辑 /etc/hostname 配置文件即可。重启后生效。

3.2.3:设置 hosts 映射

为了能够通过主机名找到某个 linux 主机(比如 ping),需要设置 hosts 映射。

只需配置 /etc/hosts 文件:

# 在文件中添加:
ip 主机名

示例:

192.168.200.1 myThinkPad

对于 Windows 系统,hosts 映射在 C:\Windows\System32\drivers\etc\hosts 文件配置。

3.3:防火墙

在真实生产环境,需要将防火墙打开,并打开指定的端口。

关闭防火墙

systemctl stop firewalld

开启防火墙

systemctl start firewalld

重载防火墙

firewall-cmd --reload

查询端口是否开放

firewall-cmd --query-port=端口/协议

打开端口

firewall-cmd --permanent --add-port=端口号/协议

关闭端口

firewall-cmd --permanent --remove-port=端口号/协议


不祈多积,多文以为富。

——《礼记 · 儒行》

《Linux基础》05. 定时任务调度 · 磁盘分区与挂载 · 网络配置的更多相关文章

  1. linux中利用fstab实现磁盘分区自动挂载

    如何格式化磁盘.给磁盘分区以及挂载,参考我的另一篇博客: https://www.cnblogs.com/mediocreWorld/p/11123786.html 博客中有一个格式化分区的命令: m ...

  2. Linux基础(一)磁盘分区

    磁盘分区 一.磁盘结构 先来看看老磁盘 1)磁头(head):不解释 2)扇区(sector):磁盘的最小存储单位,大小为512bytes或者4k 3)磁道(trcack):扇区组成的一个圆 4)柱面 ...

  3. Linux 实用指令(7)--Linux 磁盘分区、挂载

    目录 Linux 磁盘分区.挂载 1 分区基础知识 1.1 分区的方式: 1.2 windows 下的磁盘分区 2 Linux分区 2.1 原理分析 2.2 磁盘说明 2.3 使用lsblk指令查看当 ...

  4. linux学习之路第九天(磁盘分区,挂载详解)

    磁盘分区,挂载 -----分区基础知识 分区的方式 1)mbr分区: 1.最多支持四个主分区 2.系统只能安装在主分区 3.扩展分区要占一个主分区 4.mbr最大只支持2TB,但拥有最好的兼容性 -- ...

  5. Linux磁盘分区和挂载

    Linux磁盘分区和挂载 分区 分区的方式: mbr分区 最多支持4个主分区 系统只能安装到主分区上 扩展分区要占用一个主分区 MBR最大支持2TB,但拥有最好的兼容性 gtp分区 支持无线多个主分区 ...

  6. Linux下磁盘分区、挂载、卸载操作记录

    Linux下磁盘分区.挂载.卸载操作记录. 操作环境:CentOS release 6.5 (Final) Last :: from 118.230.194.76 [root@CentOS ~]# [ ...

  7. linux磁盘分区、挂载、查看

    实战: 34    查看本机所有磁盘                 fdisk -l 35    查看磁盘挂载情况                lsblk -f 36            39: ...

  8. Linux磁盘分区、挂载、查看文件大小

    快速查看系统文件大小命令 du -ah --max-depth=1 后面可以添加文件目录 ,如果不添加默认当前目录. 下面进入正题~~ 磁盘分区.挂载 引言: ①.分区的方式 a)mbr分区: 最多支 ...

  9. 初始化Linux数据盘、磁盘分区、挂载磁盘(fdisk)

    1.操作场景 2.前提条件 3.划分分区并挂载磁盘 4.设置开机自动挂载磁盘分区 1.操作场景 本文以云服务器的操作系统为"CentOS 7.4 64位"为例,采用fdisk分区工 ...

  10. Linux 磁盘分区和挂载

    目录 Linux 磁盘分区和挂载 windows 下的分区 磁盘管理 相关命令 分区及挂载实现步骤 添加硬盘 分区步骤 步骤 挂载步骤 卸载分区步骤 补充: Linux 磁盘分区和挂载 windows ...

随机推荐

  1. vue全家桶进阶之路2:JavaScript

    JavaScript(简称"JS")是当前最流行.应用最广泛的客户端脚本语言,用来在网页中添加一些动态效果与交互功能,在 Web 开发领域有着举足轻重的地位.JavaScript ...

  2. values() 字典形式显示查询结果

    values() 字典形式显示查询结果 name,age为数据库的两个列 Student.objects.values('name','age')

  3. Django admin管理工具的使用、定制及源码解析

    admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...

  4. Django自定义storage上传文件到Minio

    首先新建一个MyStorage.py,自定义Storage类 from io import BytesIO from django.core.files.storage import Storage ...

  5. ARC142

    ARC142 考试情况:一眼订正,鉴定为做出前三题. A - Reverse and Minimize 分析题目性质可得三种情况: \(K\) 末尾有 \(0\) 最多只有 \(K\) 本身一个答案. ...

  6. 2023-06-24:给你一根长度为 n 的绳子, 请把绳子剪成整数长度的 m 段, m、n都是整数,n > 1并且m > 1, 每段绳子的长度记为 k[0],k[1]...k[m - 1]。 请问

    2023-06-24:给你一根长度为 n 的绳子, 请把绳子剪成整数长度的 m 段, m.n都是整数,n > 1并且m > 1, 每段绳子的长度记为 k[0],k[1]...k[m - 1 ...

  7. git推送时被拒绝,发现class文件被人上传到仓库的解决办法

    写好的代码commit之后,想要推送到远端,结果发现有同事提交了class文件 这时候我们需要执行以下指令 git stash git pull git stash pop 原理:先把commit的东 ...

  8. XHbuilder 需要的 ipa 签名,超详细的教程,你不看吃亏的是自己!

    今天使用 hbuilder 运行到 ios 真机的时候,突然发现还需要 ipa 签名,这是什么东东呢? 1.IPA 签名是什么? 因苹果公司禁止企业证书用于非企业内部开发者.所以开发者无法再使用DCl ...

  9. zip文件结构

    转starshine博客 一个zip文件由三个部分组成:压缩源文件数据区.压缩源文件目录区.压缩源文件目录结束标志 压缩源文件数据区: 50 4B 03 04:这是头文件标记(0x04034b50) ...

  10. CocosCreator + Vscode + Ts 代码注释生成文档,利用typedoc

    需求: 脚本的代码注释,生成为文档 基本搭建环境: (cocoscreator 2.4.x + vscode + ts) .(nodejs + npm) 步骤: 1.安装typedoc: npm in ...