前言

  • 时间:2021.8.11
  • 内容:
    • shell编程:crontab定时任务
    • yum命令:包管理器
    • mysql安装:集群和分布式

1 shell编程

1-1 用处

  • 就像是把一段需求命令集合起来,定时去执行这个文件(的命令),减少人工操作。

    • 比如说有些东西写入数据库,不可能是一在内存里就写进数据库里去的,如果用户是我这样纠结症患者,各种去改就很容易出问题,更何况也很废机子。所以就出现了,有些东西需要线上人比较少的半夜去操作,总不能每天都找个人加班到夜黑风高然后去跑这些“几乎不太会变动”的命令操作,用shell就可以解决这种烦恼,定时去规模化执行一段代码~。
    • 再比如说,有些网站的访问量很大,日志文件也很庞大,可能需要隔几个小时就搬到一个文件夹里,这种操作也可以用shell定时搞定。(自动化运维)
    • 再比如说,例如catlina这种启动日志文件,只要正常启动就好了,没什么意义的,需要每天都删,用shell就可以减少掉很多的人力成本。但access这种请求日志就需要留下来,需要人工判断。(现在的用户行为,基本是通过日志来采集的)

1-2 基础

  • 编码

    • #!/bin/bash为开头,#表示注释,虽然这是一句注释看起来可有可无的,但这是规范就和utf-8那样,写就写呗,初学总是规矩一些好,懒不到这个程度的叭…

      #!/bin/bash
      
    • 输出 echo,调用变量用$,注意不能乱缩进哦~有无分号都行。

      #!/bin/bash
      na="hadoop"
      echo $na
      echo "--end--"
      

1-3 定时任务

  • 注意需要联网才能做这个事儿

    • 桥接模式下一般都是没问题的,仅主机模式上网需要配置DNS,虚拟机中的DNS是外面电脑联网的默认网关(也就是共享)。

    • 重新设置了那个en文件之后,要重启下服务器service network restart,并且网卡要重新共享(硬件是必须重启,软件是看情况重启),以及设备–>网络–>启动网络连接 这个再重新连一下(好像有个小电脑会因此亮灭滴~)

    • 联网还是有问题的话,可以试下设置静态ip地址,在22天有图发过

      BOOTRPOTO=static
      ONBOOT=yes
      PIADDR=主机地址
      NETMASK=子网掩码
      GATEWAY=网关地址
      DNS1=外面电脑的默认网关
      
  • crontab定时任务配置

    *    *    *    *    *
    -    -    -    -    -
    |    |    |    |    |
    |    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
    |    |    |    +---------- 月份 (1 - 12)
    |    |    +--------------- 一个月中的第几天 (1 - 31)
    |    +-------------------- 小时 (0 - 23)
    +------------------------- 分钟 (0 - 59)
    
    • 总共五颗星星,可以反着读,代表的含义分别为:分时日月周 * * * * *

      • “*”:代表取值范围内的所有数字,代表这个位置的星所拥有的全部范围,比如第一颗星代表0-59分钟
      • “/”:代表每过多少数字,也就是每隔多少多少时间
      • “-”:代表从什么到什么,左右两边会有个数字,也就是从什么时间到什么时间
      • “,”:代表散列数字,有点像并集的意思
    • 举些例子理解叭~

      * * * * * myCommand             (每1分钟执行一次myCommand)
      3,15 * * * * myCommand          (每小时的第3和第15分钟执行)
      3,15 8-11 */2  *  * myCommand   (每隔两天的上午8点到11点的第3和第15分钟执行)
      3,15 8-11 * * 1 myCommand       (每周一上午8点到11点的第3和第15分钟执行)
      
    • 常用命令

      • 命令行输入
      crontab [-u username]-e      (编辑工作表)-l      (列出工作表里的命令)-r      (删除当前用户的计划任务)
      
      • 查看crontab服务状态
      service crond status
      service crond reload
      service crond restart
      service crond start
      service crond stop
      
      • 编辑内容

        echo 是输出的意思,类似于printf。

        echo "内容" >> 地址        (输出追加重定向,追加一条命令)
        echo "内容" > 地址       (输出重定向,覆盖重写文件)
        
    • 小任务:每一分钟向 1.txt 文本写入 Hello 字符串

      • 创建好 1.txt,位置:/home/hadoop/1.txt
      • 使用命令: > crontab –e 进入编辑计划任务: * * * * * echo “Hello” >> /home/hadoop/1.txt
      • 重新载入计划任务: service crond reload

1-4 网络故障处理

  1. 虚拟机系统配置静态 ip 地址:虚拟机软件里设置 IP 的地址。(主机地址IPADDR)
  2. 虚拟机系统配置静态 dns 地址:外面机器的默认网关。(网关地址)
  3. 虚拟机系统的网卡服务需要重启。(相当于拔网线:设备–>网络–>启动网络连接 )
  4. 外面机器的网卡共享需要重新共享。
  5. 网卡配置要准确。(仅主机模式)?
  6. 重启网络服务:service network restart

2 yum命令

这部分来自菜鸟学堂~~~~

2-1 用处

yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。

基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

2-2 语法

yum [options] [command] [package ...]
  • options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等。
  • command:要进行的操作。
  • package:安装的包名

2-3 常用命令

  1. 列出所有可更新的软件清单命令:yum check-update
  2. 更新所有软件命令:yum update
  3. 仅安装指定的软件命令:yum install <package_name>
  4. 仅更新指定的软件命令:yum update <package_name>
  5. 列出所有可安裝的软件清单命令:yum list
  6. 删除软件包命令:yum remove <package_name>
  7. 查找软件包命令:yum search <keyword>
  8. 清除缓存命令:
  • yum clean packages: 清除缓存目录下的软件包
  • yum clean headers: 清除缓存目录下的 headers
  • yum clean oldheaders: 清除缓存目录下旧的 headers
  • yum clean, yum clean all (= yum clean packages; yum clean oldheaders):清除缓存目录下的软件包及旧的 headers

3 mysql安装

3-1 下载

  • 不用安装最新版的,下载社区版Red Hat 5.7.35。

    • 不要死在潮流上…(小红帽是CentOs的爸爸)
    • 企业里更多用的集群版,但需要很多配置才能成功,100%失败100%成功;企业版和集群版都是是收费的。
    • 这里有个小故事…原来mysql是收费的,后来被sum公司收购就免费了,但是sum公司后期经营不善被oracle公司收购了。oracle公司自己有一个oracle收费数据库,自然不信任免费的mysql数据库,所以团队分支出来去单独开发这个mysql变成mariadb数据库,oracle为啥要去开发一个别人的产品来打败自己的产品呢?所以后来mariadb就被淹没了。目前mysql还是免费的,官方也生成会一直免费,但以后的事儿谁说的准呢?(本段纯属乱写)
  • 集群和分布式:
    • 集群:来了一个任务,每个人都可以去做,每个人收到的任务都是一样的。
    • 分布式:来了一个任务,分解成多个任务去做它。

3-2 解压

  • 因为别人都是以gz结尾,它是以tar结尾,所以和其他的不太一样。

    tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar
    
  • 使用 yum search 命令搜索,安装perl和net-tools依赖库。(只有最后一个server包需要这个,也可以放在最后,安装出错有可能是因为网络没搞好,ping不通的话,可以去/etc/sysconfig/network-scripts/的en文件里配置下)

    yum search net-tools
    
    sudo yum install perl.x86_64
    
    sudo yum install net-tools.x86_64
    
  • 先安装社区软件。

    sudo rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
    
  • Centos 系统自带的 MaraiBD 的库冲突,需要卸载。

    sudo rpm -e --nodeps mariadb-libs-1:5.5.68-1.el7.x86_64
    
  • 开始安装。

    从lib开始安装下面这个格式安装,有报错就先去安装它的上级,前面的顺序就是这样摸索出来滴~

    sudo rpm –ivh mysql-...
    

    还是写一下我的顺序叭~

    sudo rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
    
    sudo rpm -ivh mysql-community-libs-compat-5.7.35-1.el7.x86_64.rpm
    
    sudo rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
    
    sudo rpm -ivh mysql-community-devel-5.7.35-1.el7.x86_64.rpm
    
    sudo rpm -ivh mysql-community-embedded-5.7.35-1.el7.x86_64.rpm
    
    sudo rpm -ivh mysql-community-embedded-compat-5.7.35-1.el7.x86_64.rpm
    
    sudo rpm -ivh mysql-community-embedded-devel-5.7.35-1.el7.x86_64.rpm
    
    sudo rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm
    

    此时已经基本装好mysql了,还有一个test软件包没装(因为用不上),强装的话会报错:

    perl(Data::Dumper) 被 mysql-community-test-5.7.35-1.el7.x86_64 需要
    perl(JSON) 被 mysql-community-test-5.7.35-1.el7.x86_64 需要
    

    但如果要装的话:

    #这句话解决第一个Data的报错
    sudo yum -y install autoconf
    
    #查找perl-JSON相关包名称
    yum list perl-JSON  或 yum list |grep "perl-JSON"# 安装perl-JSON
    sudo yum install -y perl-JSON-2.59-2.el7.noarch#重新安装
    sudo rpm -ivh mysql-community-test-5.7.35-1.el7.x86_64.rpm
    
  • 查看 mysql 数据库服务状态:
    如果这里出现报错,可以去重新安装一下server最后这个包(详见3-5报错)

    service mysqld status
    service mysqld start
    service mysqld stop
    

3-3 初始化mysql数据库

  • 搜索初始密码:grep 命令用于查找文件里符合条件的字符串

    sudo grep password /var/log/mysqld.log
    
  • 可以看到例如下方的伢子:最后一串乱七八糟的就是系统给的初始密码

    2021-08-26T12:26:23.985077Z 1 [Note] A temporary password is generated for root@localhost: oyXajf2F=HEn
    
  • 登录数据库(为了改密码):

    mysql -u root -p
    

    打完这句话回车之后需要输入密码,直接选中上面的“初始密码”,鼠标右击就会自动完成ctrl+c ctrl+v的步骤惹。(不要自己手打!!!容易错!!!

  • 降低密码的要求。

    sql > set global validate_password_length = 0;
    sql > set global validate_password_policy = 0;
    
  • 修改原始密码。

    sql > set password = password(“123456”);
    sql> flush privileges;
    
  • 使命令生效。

    flush privileges;
    
  • 重启 mysql 服务。

    service mysqld restart
    
  • 打开 MySQL 服务器远程访问:默认 MySQL 不能远程,只能 localhost 访问。(此时可以用新密码啦)

    mysql -h localhost -u root -p
    123456
    exit;
    
  • 关闭防火墙,才能连接到navicat

    service firewalld stop
    

3-4 总结安装步骤

  1. 下载mysql旧版linux版压缩文件,用secureFX上传至虚拟机服务器后台。(默认地址cd即可:/home/用户名/)

  2. 解压压缩文件。tar -xvf …

  3. 安装yum和net-tools依赖库。sudo yum install…

  4. 提前安装社区软件。sudo rpm -ivh…

    (这步非常重要,不能太早不能太晚,只能夹在第3 5步骤之间,不然会有各种各样问题的!!)

  5. 卸载centos自带的MaraiBD 数据库。sudo rpm -e --nodeps…

  6. 逐个安装第2步解压的软件包。sudo rpm -ivh…

    (注意社区软件已经在第4步提前安装掉了哦~)

  7. 测试mysql状态。service mysqld status

  8. 初始化mysql数据库:自定义密码,连接到navicat。

3-5 报错

[hyidol@centos7 ~]$ service mysqld status
Redirecting to /bin/systemctl status mysqld.service
Unit mysqld.service could not be found.
  • 翻译出来:重定向到/bin/systemctl status。mysqld单位。找不到服务。
  • debug过程:
    • 去/bin这个地址下,看了systemctl这个文件,都是乱码,想了想会不会是编码的问题呢?
    • 查了下,说可以去/var/log这个地址看mysqld.log的日志,然鹅进来之后发现这个文件都没有生成。
    • 把前面的一个个压缩包重新安装一下(已安装过的就回提示已安装),结果发现最后一个包还能更新…

3-6 mysql的常用指令

  • 进入数据库的指令:mysql -u -root -p 回车键之后会让你输入密码,此时输入的东西是看不到的,输完密码再回车就好。不小心输错了可以直接删除,虽然看起来删了个寂寞,但实际操作下这个删除好像是有用的,实在不行再回车会让你重新输入的。
  • 在数据库环境下,是mysql>的形式,每条语句需要以分号结尾才算结束,退出这种模式可以输入exit;或者quit;来实现。
  • show tables:查看当前数据库中的所有表名。

2021暑期学习第23天相关推荐

  1. 《强化学习周刊》第23期:NeurIPS 2021强化学习的最新研究与应用

    No.23 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.并且诸多研究成果发表于NeurIPS 20 ...

  2. 2021年11月23日对自己的一次鼓励

    2021年11月23日 author:陈镇坤27 创建时间:2021年11月23日15:23:31 ------------------------------ 学习犹如逆水行舟,不进则退 从今年7月 ...

  3. 2021暑期积分赛一

    2021暑期积分赛一 A - Constructing the Array (CF353D) B - Taxi (CF158B) C - Running Median HDU - 3282 D - W ...

  4. 繁凡的对抗攻击论文精读(二)CVPR 2021 元学习训练模拟器进行超高效黑盒攻击(清华)

    点我轻松弄懂深度学习所有基础和各大主流研究方向入门综述! <繁凡的深度学习笔记>,包含深度学习基础和 TensorFlow2.0,PyTorch 详解,以及 CNN,RNN,GNN,AE, ...

  5. StatQuest学习笔记23——RNA-seq简介

    StatQuest学习笔记23--RNA-seq简介 前言--主要内容 这篇笔记是StatQuest系列笔记的第58节,主要内容是讲RNA-seq的原理.StatQuest系列教程的58到62节是协录 ...

  6. 《强化学习周刊》第24期:CORL 2021强化学习的最新研究与应用

    No.24 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.并且诸多研究成果发表于CORL 2021学 ...

  7. ​《2021联邦学习全球研究与应用趋势报告》发布,中美为最大领跑者 | 附下载链接...

    撰文:XT 编审:寇建超 排版:李雪薇 7 月 31 日,美国亚马逊公司(Amazon)被卢森堡数据保护委员会处以 7.46 亿欧元(约合 57.2 亿元人民币)的罚款,原因是 Amazon 违反了欧 ...

  8. 深度学习(23)随机梯度下降一: 随机梯度下降简介

    深度学习(23)随机梯度下降一: 随机梯度下降简介 1. What's Gradient? 2. What does it mean? 3. How to search? 4. For instanc ...

  9. 【信息安全111班暑期学习工作任务】

    信息安全111班暑期学习工作任务 : (一).暑假期间需要完成暑期社会实践报告,还有就是思政部的征文活动,要求每位同学都要上交,具体细节见群共享文件. (二).Java老师上学期已经说了在本部有一个他 ...

最新文章

  1. 接Window服务(二)
  2. 老男孩为网友工作疑难问题解答一例
  3. python连接linux服务器读取txt文件_Python文件处理
  4. pve 不订阅更新_??“吃鸡”体验服已无更新,暗夜危机2.0或将被1款新游代替
  5. C# 中的 in 参数和性能分析
  6. html 长文本 截断 jquery 扩展脚本
  7. 设计模式杂谈(一)——设计模式概述
  8. Android 自定义字体,设置字体
  9. c语言中通过指针引用数组,C语言基础(二)
  10. Pytorch专题实战——交叉熵损失函数(CrossEntropyLoss )
  11. java u0002_老玩法,输出金字塔
  12. 如何在mysql中创建学生信息表_数据库怎么创建学生信息表
  13. 项目管理-项目启动会
  14. Matlab中函数imnoise使用浅谈
  15. 新视野大学英语(第三版)读写教程4答案
  16. 外贸软件常见图片类问题丨汇信
  17. vue3 render函数的写法
  18. C 语言隐式类型转换
  19. Manjaro安装有道词典,启动报错解决
  20. 浏览器交响曲 (一)浏览器中的js执行机制

热门文章

  1. js调用APP后,如果有App直接进App,没有则进入App下载页面
  2. python微信好友分析_基于python实现微信好友数据分析(简单)
  3. 阿里云云安全 ACP(二)云盾的网络级防护
  4. Mitaka正式发布 盘点OpenStack中国贡献
  5. C#异常处理try catch
  6. 桌面图标文件夹图标隐藏恢复
  7. 刘昊威 尊重自己的体系——《Men’s Uno 风度》 2012年6月号
  8. CMake中option和cmake_dependent_option的使用
  9. 谷歌浏览器有些图片不显示
  10. 头顶技术价格两座大山 OLED揠苗助长前景蒙忧