Linux——任务调度、磁盘分区、网络配置

任务调度

什么是任务调度?

在工作中,我们可能需要每过一段时间备份一下服务器数据,而这个时候手动来备份是不太可能的,先不说能不能记住,每次备份也是一件非常麻烦的事情,那么我们就可以使用Linux中的任务调度机制,相当于一个定时器,可以定时执行任务或程序

crond使用方法

crontab -e # 编辑定时任务,执行这条语句我们会进入到一个类似于vim的编辑页面,设置我们要执行的程序及时间
crontab -l # 查看当前的定时任务
crontab -r # 删除当前用户的定时任务
service crontab restar # 重启任务调度

那么小伙伴就会问了,如何定义他的时间周期呢?我们通过实操先来大致的了解一下

假定我们要每隔一分钟将当前日期信息追加到/home/date中,需要按照以下步骤执行

crontab -e # 进入编辑页面
*/1 * * * * date >> /home/date

逐一解释一下五个占位符的含义

  • 第一个:代表一小时当中的第几分钟(0-59)
  • 第二个:代表一天当中的第几小时(0-23)
  • 第三个:代表一个月当中的第几天(1-12)
  • 第四个:代表一年当中的第几个月(1-12)
  • 第五个:代表一周当中的星期几(0-7,其中0和7都表示周日)

特殊符号的含义

  • *:代表任何时间,比如第一个*代表一小时中的每一分钟都执行
  • ,:代表不联系的时间,比如出现在第一个占位符上10,20代表一小时中的第十分钟和第二十分钟执行
  • -:代表连续的时间范围,比如出现在第一个占位符是上10-20代表一小时中的第十分钟到第二分钟,每分钟执行
  • */n:代表每隔多久执行一次,比如出现在第一个占位符上*/10代表一小时中每隔10分钟执行一次

通过一些案例来了解

45 22 * * * # 在22点45分执行命令
0 17 * * 1 # 在每周一的17点00分执行命令
0 5 1,15 * * # 在每个月的1号和15号的5:00执行命令
40 4 * * 1-5 # 在每周一到周五的4:40执行命令
*/10 4 * * * # 在4点时每隔10分钟执行命令
0 0 1,15 * 1 # 在每个月的1号和15号并且是周一的0:00来执行命令(通常不建议使用此方法,星期和号都代表天,容易混淆)

再来做一个实际案例

每隔一分钟,将当前日期和日历追加到/home/mycal中,这次我们使用执行脚本的方法

# 编写脚本
[root@yellowstarEdu01 home]# vim getcal
[root@yellowstarEdu01 home]# cat getcal
date >> /home/mycal
cal >> /home/mycal
# 查看一下root用户对getcal文件并没有执行权限,所以我们需要添加执行权限
[root@yellowstarEdu01 home]# ll
-rw-r--r--.  1 root       root         39 1225 14:38 getcal
[root@yellowstarEdu01 home]# chmod u+x mydate 
[root@yellowstarEdu01 home]# ll
-rwxr--r--.  1 root       root         39 1225 14:38 getcal
# 创建任务调度
crontab -e
# 编写任务
*/1 * * * * /home/getcal
# 查看结果
[root@yellowstarEdu01 home]# cat mycal
20211225日 星期六 14:43:01 CST
     十二月 2021    
日 一 二 三 四 五 六
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

at使用方法

at和crond的不同点在于,crond是根据时间来定时执行,每隔一段时间都会执行,而at设置了时间之后,只会在那个时间点执行一次任务,看一下原理

在这里插入图片描述

在使用at命令时,一定要保证有atd进程启动

# ps -ef 用来查看所有进程
[root@yellowstarEdu01 home]# ps -ef |grep atd
root       6786      1  0 14:12 ?        00:00:00 /usr/sbin/atd -f

at的时间定义

  • 接受当天的hh:mm式的时间指定,假如该时间已过,则在明天的该时间执行
  • 使用midnight(深夜),noon(中午)等时间来定义
  • 采用12小时计时制,如9am表示早上9点,3pm表示下午三点
  • 可以指定日期,如04:00 2021/12/25
  • 采用相对计时法,指定格式为now + count time-units,例如now + 2 minutes,表示2分钟后
  • 直接使用today(今天),tomorrow(明天)

通过几个案例来加深理解

# 2天后的下午5点执行 /bin/ls /home
[root@yellowstarEdu01 ~]# at 5pm + 2 minutes
at> /bin/ls /home <EOT>  # 输完指令之后,需要按两次ctrl+D进行保存,才会显示<EOT>
job 3 at Sat Dec 25 17:02:00 2021  # 3 代表该任务的编号
# 查看系统中没有执行的工作任务
[root@yellowstarEdu01 ~]# atq
3	Sat Dec 25 17:02:00 2021 a root
# 明天17点,输出时间到指定文件 /root/log100.log
[root@yellowstarEdu01 ~]# at 5pm tomorrow
at> date > /root/log100.log
at> <EOT>
job 6 at Sun Dec 26 17:00:00 2021
# 2分钟后,输出时间到指定文件 /root/log200.log
[root@yellowstarEdu01 ~]# at now + 2 minutes
at> date > /root/log200.log<EOT>
job 7 at Sat Dec 25 15:56:00 2021
# 删除已经设置的任务
[root@yellowstarEdu01 ~]# atq
7	Sat Dec 25 15:56:00 2021 a root
6	Sun Dec 26 17:00:00 2021 a root
3	Sat Dec 25 17:02:00 2021 a root
[root@yellowstarEdu01 ~]# atrm 3
[root@yellowstarEdu01 ~]# atq
6	Sun Dec 26 17:00:00 2021 a root # 再次查询,没有7号是因为7号任务已经执行了
[root@yellowstarEdu01 ~]# cat log200.log
20211225日 星期六 15:56:00 CST

Linux磁盘分区、挂载

原理介绍

  • 对于Linux来说,无论有几个分区,分给哪一个目录使用,他归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
  • Linux采用载入的处理方法,他的整个文件系统中,包含了一整套的文件和目录,且将一个分区和一个目录连接起来,这时要载入的一个分区将使他的存储空间在一个目录下获得

在这里插入图片描述

添加新的硬盘

第一步:添加新的硬盘

使用vm软件在虚拟机上添加新的硬盘

# lsblk 查看硬盘的使用情况
[root@yellowstarEdu01 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  953M  0 part /boot
├─sda2   8:2    0  1.9G  0 part [SWAP]
└─sda3   8:3    0   17G  0 part /
sr0     11:0    1  4.3G  0 rom
# 添加新的硬盘后需要重启
[root@yellowstarEdu01 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  953M  0 part /boot
├─sda2   8:2    0  1.9G  0 part [SWAP]
└─sda3   8:3    0   17G  0 part /
sdb      8:16   0    1G  0 disk 
sr0     11:0    1  4.3G  0 rom

第二步:对硬盘进行分区

执行以下命令有几个需要注意的选项

  • n:添加一个新的分区
  • w:写入并退出(正常情况下,新增完分区必须写入再退出,否则前面的工作将白搭)
  • q:不保存退出
[root@yellowstarEdu01 ~]# fdisk /dev/sdb

第三步:设置文件类型并挂载

# mkfs -t 文件类型 设备(用来设置文件类型)
[root@yellowstarEdu01 ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 261888 blocks
13094 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
# 设置好文件类型后,sdb1分区会出现对应的UUID和文件类型
[root@yellowstarEdu01 mymount]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    47fc30a4-a64a-4520-8dc7-18631fb6ac02 /boot
├─sda2 swap                    1fcf4207-ff9d-4398-9bec-0dcc1b3436f3 [SWAP]
└─sda3 ext4                    53a65469-a8ac-452f-a323-fd768f7bbcf4 /
sdb                                                                 
└─sdb1 ext4                    0b5e4b68-2688-41a5-a0dc-a9c7d3b553c0
# mount 分区 文件名
[root@yellowstarEdu01 /]# mount /dev/sdb1 /home/mymount
[root@yellowstarEdu01 /]# lsblk -f
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    47fc30a4-a64a-4520-8dc7-18631fb6ac02 /boot
├─sda2 swap                    1fcf4207-ff9d-4398-9bec-0dcc1b3436f3 [SWAP]
└─sda3 ext4                    53a65469-a8ac-452f-a323-fd768f7bbcf4 /
sdb                                                                 
└─sdb1 ext4                    0b5e4b68-2688-41a5-a0dc-a9c7d3b553c0 /home/mymount
sr0    iso9660 CentOS 7 x86_64 2018-11-25-23-54-16-00

以上我们的新的硬盘就已经创建完毕了,不过有一点需要注意的是,现在的挂载只是临时挂载,重启之后,挂载就会消失,要想永久挂载,我们需要对/etc/fstab进行修改

# 进入到文件我们发现里面设置着之前sda的三个分区,这里的设置相当于开机自动挂载,我们可以复制一行
vim /etc/fstab
UUID=53a65469-a8ac-452f-a323-fd768f7bbcf4 /                       ext4    defaults        1 1
UUID=47fc30a4-a64a-4520-8dc7-18631fb6ac02 /boot                   ext4    defaults        1 2
UUID=1fcf4207-ff9d-4398-9bec-0dcc1b3436f3 swap                    swap    defaults        0 0
# 新增一行
UUID=0b5e4b68-2688-41a5-a0dc-a9c7d3b553c0 /home/mymount           ext4    defaults        1 1

常用指令

取消挂载

umount 分区或挂载目录

整体磁盘使用情况

[root@yellowstarEdu01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        17G  5.2G   11G   33% /
devtmpfs        472M     0  472M    0% /dev
tmpfs           487M     0  487M    0% /dev/shm
tmpfs           487M  8.4M  478M    2% /run
tmpfs           487M     0  487M    0% /sys/fs/cgroup
/dev/sda1       922M  133M  726M   16% /boot
/dev/sdb1       991M  2.6M  922M    1% /home/mymount
tmpfs            98M  8.0K   98M    1% /run/user/42
tmpfs            98M     0   98M    0% /run/user/0

查询指定目录的使用情况(默认是当前目录)

  • -h:带计量单位
  • -s:指定目录大小占用汇总
  • –max-depth=1:子目录深度
  • -c:列出明细的同时,增加汇总值
  • -a:含文件
[root@yellowstarEdu01 home]# du -h --max-depth=1
28K	./jack
87M	./yellowstar
28K	./marry
16K	./tom
20K	./mymount
87M	.

做几个例子

# 统计/home文件夹下文件的个数
[root@yellowstarEdu01 home]# ls -l | grep "^-" | wc -l
3
# 统计/home文件夹下目录的个数
[root@yellowstarEdu01 home]# ls -l | grep "^d" | wc -l
5
# 统计/home文件夹下文件的个数,包括子文件夹
[root@yellowstarEdu01 home]# ls -lR | grep "^-" | wc -l
7
# 统计/home文件夹下目录的个数,包括子文件夹
[root@yellowstarEdu01 home]# ls -lR | grep "^d" | wc -l
# 以树形结构显示目录,系统没有tree指令,需要先安装
yum install tree
tree /home
/home
├── getcal
├── jack
├── marry
├── mycal
├── mydate
├── mymount
│   └── lost+found
├── tom
│   ├── animal.tar.gz
│   └── home
│       └── tom
│           ├── dog.txt
│           └── pig.txt
└── yellowstar
    ├── iamtom.txt
    ├── \345\205\254\345\205\261
    ├── \346\250\241\346\235\277
    ├── \350\247\206\351\242\221
    ├── \345\233\276\347\211\207
    ├── \346\226\207\346\241\243
    ├── \344\270\213\350\275\275
    ├── \351\237\263\344\271\220
    └── \346\241\214\351\235\242
        └── hello\ A

网络配置

Linux网络原理

关于Linux的网络原理,先看一下原理图。

本地电脑除了自己的ip地址外,还会生成一个vmnet的ip,用于与虚拟机实现网络交互,两者联通之后,虚拟机通过本地的无线网卡可以访问局域网的网关,通过网关来访问外网地址,就达到了网络通信的效果。

在这里插入图片描述

查看IP指令,ping指令

查看IP指令在虚拟机中和主机中有一些区别

# 虚拟机
ifconfig
# 主机
ipconfig

ping指令可以查看当前机器与某个IP是否存在网络链接,如果ping的通则代表可以访问该网址

ping www.baidu.com

修改虚拟机IP为固定IP

每次重启虚拟机时,默认情况下系统会随机生成一个IP供虚拟机使用,这样的好处在于可以避免IP冲突,但在开发过程中不利于我们的操作,所以我们经常需要修改虚拟机IP为固定IP

第一步:修改配置文件

# 修改ifcfg-ens33文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 内容如下
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
# 将BOOTPROTO=dhcp修改为static
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="36bfe10b-1bef-4faf-bba2-52ba80f2f1e3"
DEVICE="ens33"
ONBOOT="yes"
# IP地址
IPADDR=192.168.200.130
# 网关
GATEWAY=192.168.200.2
# 域名解析器
DNS1=192.168.200.2

第二步:编辑网络配置器

如图所示,以下两个地方都需要修改

在这里插入图片描述

在这里插入图片描述

第三步:重启网络服务或者重启系统生效

# 重启网络服务指令
service network restart
# 重启系统
reboot

主机名和host映射

查看、修改主机名

# 查看主机名
[root@yellowstarEdu100 ~]# hostname
yellowstarEdu100
# 修改主机名,修改指定文件/etc/hostname

设置主机名和host映射

# windows系统下
# 在C:\Windows\System32\drivers\etc\hosts文件指定
192.168.200.130    yellowstarEdu01

在这里插入图片描述

# Linux系统下
# 尝试直接使用ping主机的名称,发现失败
[root@yellowstarEdu01 ~]# ping DESKTOP-MNKEPTA
ping: DESKTOP-MNKEPTA: 未知的名称或服务
# 在/etc/hosts文件下指定
192.168.200.1    DESKTOP-MNKEPTA
[root@yellowstarEdu01 ~]# vim /etc/hosts
[root@yellowstarEdu01 ~]# ping DESKTOP-MNKEPTA
PING DESKTOP-MNKEPTA (192.168.200.1) 56(84) bytes of data.

主机名解析机制分析(Hosts、DNS)

当用户在浏览器上输入了www.baidu.com会发生以下一些行为

  1. 浏览器先检查浏览器的缓存中是否有该域名解析的IP地址

  2. 如果没有,就坚持DNS解析器缓存,如果有直接返回IP完成解析

    以上两种缓存可以理解为本地缓存,一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址

  3. 如果本地缓存中没有找到相对于的映射,检查系统中hosts文件中有没有配置对应的域名的IP映射

  4. 如果以上都没有找到对应的IP,则到域名服务DNS进行解析域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值