Day13 04-Linux的虚拟机克隆-scp命令-ssh免登录-crontab定时器及时间同步操作

文章目录

      • 第五章 多虚拟机的操作
        • 5.1 虚拟机克隆【掌握】
          • 5.1.1 克隆前的准备工作
          • 5.1.2. 修改IP地址
          • 5.1.3. 修改主机名
          • 5.1.4. 修改域名映射文件
          • 5.1.5. 虚拟机之间通信
          • 5.1.6. 流程总结
        • 5.2. scp命令【重点】
          • 5.2.1. 命令格式
          • 5.2.2. 小技巧
        • 5.3. ssh免密登录【重点】
          • 5.3.1. ssh的简介
          • 5.3.2. 免密登录的原理
          • 5.3.3. 免密登录的实现
        • 5.4. 定时器crontab【掌握】
          • 5.4.1. crontab的简介
          • 5.4.2. cron服务
          • 5.4.3. cron的配置文件位置
          • 5.4.4. crontab命令格式
          • 5.4.5. 文件内容格式
          • 5.4.6. 应用案例
        • 5.5. 时间同步【掌握】
          • 5.5.1. 同步网络的时间
          • 5.5.2. 自定义时间服务器

第五章 多虚拟机的操作

5.1 虚拟机克隆【掌握】

5.1.1 克隆前的准备工作

安装Minimal的CentOS虚拟机

image-20210329164403065

我们后续的课程中,需要使用到3台虚拟机。因此,在这里我们再克隆两台出来即可。
虚拟机规划:
+------------+----------------+----------+
|   主机名    |       IP       |   防火墙  |
+------------+----------------+----------+
| qianfeng01 | 192.168.10.101 |   已关闭  |
+------------+----------------+----------+
| qianfeng02 | 192.168.10.102 |   已关闭  |
+------------+----------------+----------+
| qianfeng03 | 192.168.10.103 |   已关闭  |
+------------+----------------+----------+
5.1.2. 修改IP地址
# 与qianfeng01的配置一样,修改ifcfg-ens33文件
# 如果是Mac平台使用Parallels Desktop安装的虚拟机,修改ifcfg-eth0文件
# 将qianfeng02的IP地址修改为192.168.10.102
# 将qianfeng03的IP地址修改为192.168.10.103
[root@qianfeng01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33# 修改完IP地址后,需要重启网络服务
# 最好将3台虚拟机都重启一下
[root@qianfeng01 ~]# systemctl restart network
5.1.3. 修改主机名
[root@qianfeng01 ~]# hostname qianfeng02
[root@qianfeng01 ~]# hostnamectl set-hostname qianfeng02
5.1.4. 修改域名映射文件
[root@qianfeng02 ~]# vi /etc/hosts
...上方内容省略...
...下方添加域名的映射文件...
192.168.10.101 qianfeng01
192.168.10.102 qianfeng02
192.168.10.103 qianfeng03
5.1.5. 虚拟机之间通信
# 使用ping命令,检测三台虚拟机之前是否可以互相通信。这一点非常重要,如果虚拟机之间无法通信,在后续的集群使用中会出现问题。
# 如果出现无法连接,按照以下方面进行问题检查
# 1. 检查IP地址
# 2. 检查host文件映射
# 3. 检查防火墙是否关闭# qianfeng01
[root@qianfeng01 ~]# ping qianfeng02
[root@qianfeng01 ~]# ping qianfeng03# qianfeng02
[root@qianfeng02 ~]# ping qianfeng01
[root@qianfeng02 ~]# ping qianfeng03# qianfeng03
[root@qianfeng03 ~]# ping qianfeng01
[root@qianfeng03 ~]# ping qianfeng02
5.1.6. 流程总结
1. 检查主机名(临时+永久)
2. 检查网卡是否启动
3. 关闭NetworkManager网络管理服务
4. 关闭防火墙
5. 更改IP地址
6. 更改主机名和主机映射
7. 使用远程连接工具(MobaXterm、FinalShell)进行连接
8. 如果出现问题,按照以上流程检查

5.2. scp命令【重点】

cp命令,是拷贝的作用,可以实现将文件或者目录拷贝到另外一个位置。
scp命令,也是拷贝的作用,但是是远程拷贝,可以实现将文件或者目录拷贝到另外的一台机器上。
5.2.1. 命令格式
# scp file 远程用户名@远程服务器:目标路径
# 示例: 
scp ~/data/a.log xiaoxiaoqian@qianfeng02:/home/xiaoxiaoqian/data/           # 将本机的~/data/a.log文件,拷贝到qianfeng02机器上的/home/xiaoxiaoqian/data下
scp ~/data/a.log root@qianfeng02:/root/data/    # 将本机的~/data/a.log文件,拷贝到qianfeng02机器上的/root/data下
# 上述两个拷贝的区别:
# 其实都是拷贝,区别就是使用的用户。在进行拷贝的时候,是需要你输入目标机器的指定用户的密码的。
# 例如: 
# 第一个拷贝,xiaoxiaoqian@qianfeng02,需要验证qianfeng02节点上的xiaoxiaoqian的密码。
# 第二个拷贝,root@qianfeng02,需要验证qianfeng02节点上的root的密码。# 如果需要拷贝文件夹,添加-r
scp -r /usr/local/jdk root@qianfeng02:/usr/local/     # 将本机的/usr/local/jdk目录,拷贝到qianfeng02的/usr/local下
5.2.2. 小技巧
# 1. 如果远程的用户,与本机的用户名相同,可以省略目标的用户名
#    示例: 本机登录的用户是root,远程的qianfeng02的用户也是root,因此可以省略
scp ~/a.log root@qianfeng02:/root/data/     # 拷贝给qianfeng02的root用户
scp ~/a.log qianfeng02:/root/data                   # root用户省略,直接写qianfeng02即可# 2. 如果需要拷贝到远程服务器与本机相同的路径,可以使用$PWD
#    示例:
[root@qianfeng01 local]# pwd
/usr/local/
[root@qianfeng01 local]# scp -r jdk qianfeng02:/usr/local/      # 需要远程拷贝给qianfeng02的/usr/local目录,而本机当前也在这个路径下,因此可以简写
[root@qianfeng01 local]# scp -r jdk qianfeng02:$PWD                     # 用$PWD表示当前的工作路径

5.3. ssh免密登录【重点】

5.3.1. ssh的简介
ssh: 是一个远程登录的命令,可以远程登录到指定的虚拟机。其实,我们使用的远程连接工具,就是使用ssh实现的。ssh在进行远程登录的时候,需要进行身份验证,输入远程登录用户的密码。
例如:
ssh root@qianfeng02         # 需要输入qianfeng02节点的root密码
ssh qianfeng02              # 当远程登录的用户名,与当前的用户名相同的时候,远程用户名可以省略
在我们后续的使用中,集群的节点之间需要频繁的进行通信,因此免密登录是必须要配置的。
如果不配置免密登录,则在很多时候集群通信的时候,需要输入密码。这就需要人工维护,成本很高,而且很麻烦。
5.3.2. 免密登录的原理
1. qianfeng01使用ssh-keygen -t rsa生成公钥和私钥。
2. ssh-copy-id qianfeng02,将公钥拷贝到qianfeng02上,实际就是把公钥的内容追加到authorized_keys文件中。
3. 请求时: qianfeng01向qianfeng02发送连接请求时,附带主机、IP地址等信息。
4. qianfeng02收到请求后,去授权文件(authorized_keys)中查找qianfeng01的公钥,找到之后,随机生成一个字符串,并使用公钥加密,发送给qianfeng01。
5. qianfeng01收到密文后,用私钥解密,并把解密的结果返回给qianfeng02。
6. qianfeng02拿到解密结果之后,与之前的字符串进行比较,如果相同,则可以登录成功。

ssh-login

5.3.3. 免密登录的实现
我们最终的目标是实现qianfeng01免密登录到qianfeng02,即在qianfeng01上远程登录qianfeng02不需要密码。
  1. 在qianfeng01上生成一对钥匙,分为公钥和私钥

    image-20210329171418360

  2. 当前用户的家目录下的.ssh目录中,会生成两个文件

    image-20210329171448603

  3. 将公钥拷贝给要免密登录的机器

    最终要实现的是将id_rsa.pub,即公钥中的数据,添加到目标机器的authornized_keys文件中。你可以使用scp将公钥远程拷贝到目标机器,然后添加到目标文件末尾。但是麻烦。
    可以使用更简单的方式: ssh-copy-id 1. 如果没有这个命令,可以自己安装[root@qianfeng01 ~]# yum install openssh-clients -y2. 将公钥拷贝到目标机器[root@qianfeng01 ~]# ssh-copy-id qianfeng023. 输入密码,完成拷贝
    

    image-20210329171837588

  4. 拷贝完成后,会在要免密登录的机器上生成授权密码文件

    image-20210329171911630

  5. 免密登录是单向的

    免密登录是单向的,即qianfeng01可以免密登录qianfeng02,但是qianfeng02登录qianfeng01还需要密码。
    因此,按照上述的步骤,自己实现qianfeng01、qianfeng02、qianfeng03之间彼此免密。
    

5.4. 定时器crontab【掌握】

5.4.1. crontab的简介
- 在Linux中,周期性的执行任务一般由cron这个守护进程来处理,它是一个linux下的定时任务执行工具,可以在无需人工干预的情况下运行作业。[ps -ef|grep cron]
- cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。
- cron的配置文件称为“crontab”,是“cron table”的简写。
5.4.2. cron服务
[root@qianfeng01 ~]# service crond start    //启动服务
[root@qianfeng01 ~]# service crond stop     //关闭服务
[root@qianfeng01 ~]# service crond restart  //重启服务
[root@qianfeng01 ~]# service crond reload   //重新载入配置
[root@qianfeng01 ~]# service crond status   //查看服务状态 
5.4.3. cron的配置文件位置
1. /var/spool/cron/ 
2. 说明这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。
5.4.4. crontab命令格式
作用:用于生成cron进程所需要的crontab文件 
格式:crontab  [-u username] -e
5.4.5. 文件内容格式
格式如下:
* * * * * user-name command to be executed
共有六部分组成,分别表示:
分   时   日   月   星期  要运行的命令
解析:minute:     一小时中的哪一分钟 [0~59] hour:       一天中的哪个小时 [0~23] day:        一月中的哪一天 [1~31] month:      一年中的哪一月 [1~12] week:       一周中的哪一天 [0~6] 0表示星期天 commands:   执行的命令
书写注意事项 1 全都不能为空,必须填入,不知道的值使用通配符*表示任何时间 2 每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔。 3 命令应该给出绝对路径 4 用户必须具有运行所对应的命令或程序的权限5 */num   表示频率
5.4.6. 应用案例
1 每天早上6点 0 6 * * * echo "Good morning." >> /tmp/test.txt //注意 如果不进行追加 ,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
2 每两个小时 0 */2 * * * echo "Have a break now." >> /tmp/test.txt  
3 晚上11点到早上8点之间每两个小时和早上八点 0 23-8/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
4 周一到周五下午,5点半提醒学生15分钟后关机30 17 * * 1-5 /usr/bin/wall < /etc/issue45 17 * * 1-5 /sbin/shutdown -h now
5 学校的计划任务, 12点14点,检查apache服务是否启动*/2 12-14 * 3-6,9-12 1-5
6 每月 1、1 0、2 2日的4:45运行/apps/bin目录下的backup.sh45 4 1,10,22 * * /apps/bin/backup.sh
7 每周六、周日的 1 : 10运行一个find命令10 1 * * 6,0 /bin/find -name "core" -exec rm {} \;
8 在每天 18:00至23 :00之间每隔30分钟运行/apps/bin目录下的dbcheck.sh0,30 18-23 * * * /apps/bin/dbcheck.sh
9 每星期六的 11:00 pm运行/apps/bin目录下的qtrend.sh0 23 * * 6 /apps/bin/qtrend.sh

5.5. 时间同步【掌握】

在实际生产环境中,很多软件或者很多任务对集群上的时间是否一致要求是很严格的。有的要求集群中的所有机器上的时间差不能在10分钟以外,有的要求所有机器上的时间差不能在30秒以外。这样,在技术上,就要涉及到怎么将时间同步的问题了。
5.5.1. 同步网络的时间

同步时间

# 同步时间,需要使用ntpdate命令,如果没有可以使用yum安装。
# 使用ntpdate同步网络上的时间服务器的时间,例如: time.windows.com、ntp.aliyun.com
[root@qianfeng01 ~]# ntpdate -u ntp.aliyun.com

定时同步

# 可以将时间同步做成一个定时任务,每隔一段时间就同步一下网络的时间
[root@qianfeng01 ~]# crontab -e
* * * * * /usr/sbin/ntpdate -u ntp.aliyun.com
5.5.2. 自定义时间服务器
如果集群没有联网,那么可以自己搭建一个时间服务器,让集群中的所有机器都同步局域网内的时间服务器。
# 1 选择集群中的某一台机器作为时间服务器,例如qianfeng01
# 2 保证这台服务器安装了ntp.x86_64。
# 3 保证ntpd 服务运行......
[root@qianfeng01 ~]# sudo service ntpd start
#   开机自启动:
[root@qianfeng01 ~]# chkconfig ntpd on# 4 配置相应文件:
[root@qianfeng01 ~]# vi /etc/ntp.conf# Hosts on local network are less restricted.# restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap# 添加集群中的网络段位restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap# Use public servers from the pool.ntp.org project.# Please consider joining the pool (http://www.pool.ntp.org/join.html).# server 0.centos.pool.ntp.org iburst    注释掉# server 1.centos.pool.ntp.org iburst      注释掉# server 2.centos.pool.ntp.org iburst    注释掉# server 3.centos.pool.ntp.org iburst    注释掉server 127.127.1.0     -master作为服务器
# 5 其他机器要保证安装ntpdate.x86_64# 6 其他机器要使用root定义定时器
*/1 * * * * /usr/sbin/ntpdate -u qianfeng01 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/89700.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:如何创建 Elasticsearch PEM 和/或 P12 证书?

你是否希望使用 SSL/TLS 证书来保护你的 Elasticsearch 部署&#xff1f; 在本文中&#xff0c;我们将指导你完成为 Elasticsearch 创建 PEM 和 P12 证书的过程。 这些证书在建立安全连接和确保 Elasticsearch 集群的完整性方面发挥着至关重要的作用。 友情提示&#xff1a;你可…

嵌入式:ARM Day1

1. 思维导图 2.作业一 3.作业2

[保研/考研机试] KY135 又一版 A+B 浙江大学复试上机题 C++实现

题目链接&#xff1a; KY135 又一版 AB https://www.nowcoder.com/share/jump/437195121691736185698 描述 输入两个不超过整型定义的非负10进制整数A和B(<231-1)&#xff0c;输出AB的m (1 < m <10)进制数。 输入描述&#xff1a; 输入格式&#xff1a;测试输入包…

基于 Nginx All In One 的 Outline Wiki 部署方法

1. Outline 简介 官网&#xff1a;https://www.getoutline.com/ Outline 是一个开源的知识库和团队协作工具&#x1f9e0;&#xff0c;旨在帮助团队共享、组织和协作文档&#x1f4dd;。它提供了一个简洁的界面&#xff0c;使用户能够轻松创建、编辑和查看文档。 以下是 Out…

ArcGIS Pro应用—暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升教程

详情点击链接&#xff1a;ArcGIS Pro应用—暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升教程 第一&#xff1a;GIS及ArcGIS Pro 1.GIS基本原理及常用软件 2.ArcGIS Pro 安装与配置 3.ArcGIS Pro 3.0 的新…

【碎碎念随笔】1、回顾我的电脑和编程经历

✏️ 闲着无事&#xff0c;讲述一下我的计算机和代码故事 一、初识计算机 &#x1f5a5;️ 余家贫&#xff0c;耕植无钱买电脑。大约六年级暑假&#xff0c;我在姐姐哪儿第一次接触到了计算机&#xff08;姐姐也是买的二手&#xff09;。 &#x1f5a5;️ 计算机真有趣&#x…

pconsc4 安装

Pconsc4 安装遇到的问题 Pconsc4-github 按照红框给的一行命令&#xff0c;一行毁所有。 1 gcc and g not found # 1 Start by updating the packages list:sudo apt update# 2 Install the build-essential package by typing:sudo apt install build-essential## The comm…

Linux 终端操作命令(2)内部命令

Linux 终端操作命令 也称Shell命令&#xff0c;是用户与操作系统内核进行交互的命令解释器&#xff0c;它接收用户输入的命令并将其传递给操作系统进行执行&#xff0c;可分为内部命令和外部命令。内部命令是Shell程序的一部分&#xff0c;而外部命令是独立于Shell的可执行程序…

【Pytroch】基于K邻近算法的数据分类预测(Excel可直接替换数据)

【Pytroch】基于K邻近算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.数学公式3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 K最近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;是一种简单但常用的机器…

日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理

日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理 目录 日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理 1、在线Json &#xff0c;可以在线进行json 格式验证&#xff0c;解析转义等操作 2、Gif动图分解&#xff0c;在线把 gif 图分解成一张张单图 3、在线P…

财报解读:继续押注Disney+,迪士尼距离盈利还有多远?

迪士尼最新一季的“答卷”&#xff0c;透露着不小的寒气。 近日&#xff0c;迪士尼披露了2023财年第三季度&#xff08;自然年2023年Q2&#xff09;业绩报告&#xff0c;营收223.3亿美元&#xff0c;同比仅增长4%&#xff0c;低于市场预期的225.1亿美元&#xff1b;归母净亏损…

【从零学习python 】22. Python中的字典的增删改查及字典的变量

文章目录 字典的增删改查一、查看元素二、修改元素三、添加元素四、删除元素字典遍历练习进阶案例 字典的增删改查 一、查看元素 除了使用key查找数据&#xff0c;还可以使用get来获取数据 info {name:班长,age:18}print(info[age]) # 获取年龄 # print(info[sex]) # 获取…

从零实现kv存储(1):array初版

本节开始&#xff0c;逐步实现基于内存的kv存储引擎。 一、项目主要功能和知识点 参照redis&#xff0c;主要实现的功能&#xff1a; 1、数据的插入、查询、删除等操作 1&#xff09;SET&#xff1a;插入key - value 2&#xff09;GET&#xff1a;获取key对应的value 3&#…

接口mock常用工具

在进行测试时&#xff0c;我们经常需要模拟接口数据&#xff0c;尤其是在前后端分离项目的开发中&#xff0c;在后端未完成开发时&#xff0c;前端拿不到后端的数据&#xff0c;就需要对后端返回的数据进行模拟。 如下一些工具&#xff0c;可以完成接口的mock。 Yapi 首先添…

协程(一)单机--》并发--》协程

目录 一 协程的概述1.1 并行与并发1.2 线程1.3 新的思路1.4 Goroutine 二 第一个入门程序 一 协程的概述 我查看了网上的一些协程的资料&#xff0c;发现每个人对协程的概念都不一样&#xff0c;但是我认可的一种说法是&#xff1a;协程就是一种轻量级的线程框架&#xff08;K…

Unity UI.Image 六边形+流光 Shader

效果图 参考代码 Shader"Custom/HexFlowImage" {Properties{[PerRendererData] _MainTex ("Sprite Texture", 2D) "white" {}_Color ("Tint", Color) (1,1,1,1)_StencilComp ("Stencil Comparison", Float) 8_Stencil (…

Java并发编程(六)线程池[Executor体系]

概述 在处理大量任务时,重复利用线程可以提高程序执行效率,因此线程池应运而生。 它是一种重用线程的机制,可以有效降低内存资源消耗提高响应速度。当任务到达时&#xff0c;任务可以不需要的等到线程创建就能立即执行线程池可以帮助我们更好地管理线程的生命周期和资源使用,…

【TI毫米波雷达笔记】MMWave配置流程避坑

【TI毫米波雷达笔记】MMWave配置流程避坑 在TI SDK目录下的mmwave.h文档说明中 强调了要按以下配置&#xff1a; mmWave API The mmWave API allow application developers to be abstracted from the lower layer drivers and the mmWave link API.The mmWave file should b…

74、75、76——tomcat项目实战

tomcat项目实战 tomcat 依赖 java运行环境,必须要有jre , 选择 jdk1.8 JvmPertest 千万不能用 kyj易捷支付 项目机器 选择 一台机器 ,安装jdk1.8的机器下载tomcat的包 上传到机器,解压tomcattomcat文件 bin文件夹: 启动文件 堆栈配置文件 catalina.sh JAVA_OPTS="-Xm…

【分布式存储】数据存储和检索~LSM

在数据库领域&#xff0c;B树拥有无可撼动的地位&#xff0c;但是B树的缺点就是在写多读少的场景下&#xff0c;需要进行大量随机的磁盘IO读写&#xff0c;而这个性能是最差的。并且在删除和添加数据的时候&#xff0c;会造成整个树进行递归的合并、分裂&#xff0c;数据在磁盘…