2021暑期学习第23天
前言
- 时间: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 网络故障处理
- 虚拟机系统配置静态 ip 地址:虚拟机软件里设置 IP 的地址。(主机地址IPADDR)
- 虚拟机系统配置静态 dns 地址:外面机器的默认网关。(网关地址)
- 虚拟机系统的网卡服务需要重启。(相当于拔网线:设备–>网络–>启动网络连接 )
- 外面机器的网卡共享需要重新共享。
- 网卡配置要准确。(仅主机模式)?
- 重启网络服务: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 常用命令
- 列出所有可更新的软件清单命令:
yum check-update
- 更新所有软件命令:
yum update
- 仅安装指定的软件命令:
yum install <package_name>
- 仅更新指定的软件命令:
yum update <package_name>
- 列出所有可安裝的软件清单命令:
yum list
- 删除软件包命令:
yum remove <package_name>
- 查找软件包命令:
yum search <keyword>
- 清除缓存命令:
yum clean packages
: 清除缓存目录下的软件包yum clean headers
: 清除缓存目录下的 headersyum clean oldheaders
: 清除缓存目录下旧的 headersyum 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 总结安装步骤
下载mysql旧版linux版压缩文件,用secureFX上传至虚拟机服务器后台。(默认地址cd即可:/home/用户名/)
解压压缩文件。tar -xvf …
安装yum和net-tools依赖库。sudo yum install…
提前安装社区软件。sudo rpm -ivh…
(这步非常重要,不能太早不能太晚,只能夹在第3 5步骤之间,不然会有各种各样问题的!!)
卸载centos自带的MaraiBD 数据库。sudo rpm -e --nodeps…
逐个安装第2步解压的软件包。sudo rpm -ivh…
(注意社区软件已经在第4步提前安装掉了哦~)
测试mysql状态。service mysqld status
初始化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天相关推荐
- 《强化学习周刊》第23期:NeurIPS 2021强化学习的最新研究与应用
No.23 智源社区 强化学习组 强 化 学 习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.并且诸多研究成果发表于NeurIPS 20 ...
- 2021年11月23日对自己的一次鼓励
2021年11月23日 author:陈镇坤27 创建时间:2021年11月23日15:23:31 ------------------------------ 学习犹如逆水行舟,不进则退 从今年7月 ...
- 2021暑期积分赛一
2021暑期积分赛一 A - Constructing the Array (CF353D) B - Taxi (CF158B) C - Running Median HDU - 3282 D - W ...
- 繁凡的对抗攻击论文精读(二)CVPR 2021 元学习训练模拟器进行超高效黑盒攻击(清华)
点我轻松弄懂深度学习所有基础和各大主流研究方向入门综述! <繁凡的深度学习笔记>,包含深度学习基础和 TensorFlow2.0,PyTorch 详解,以及 CNN,RNN,GNN,AE, ...
- StatQuest学习笔记23——RNA-seq简介
StatQuest学习笔记23--RNA-seq简介 前言--主要内容 这篇笔记是StatQuest系列笔记的第58节,主要内容是讲RNA-seq的原理.StatQuest系列教程的58到62节是协录 ...
- 《强化学习周刊》第24期:CORL 2021强化学习的最新研究与应用
No.24 智源社区 强化学习组 强 化 学 习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注.并且诸多研究成果发表于CORL 2021学 ...
- 《2021联邦学习全球研究与应用趋势报告》发布,中美为最大领跑者 | 附下载链接...
撰文:XT 编审:寇建超 排版:李雪薇 7 月 31 日,美国亚马逊公司(Amazon)被卢森堡数据保护委员会处以 7.46 亿欧元(约合 57.2 亿元人民币)的罚款,原因是 Amazon 违反了欧 ...
- 深度学习(23)随机梯度下降一: 随机梯度下降简介
深度学习(23)随机梯度下降一: 随机梯度下降简介 1. What's Gradient? 2. What does it mean? 3. How to search? 4. For instanc ...
- 【信息安全111班暑期学习工作任务】
信息安全111班暑期学习工作任务 : (一).暑假期间需要完成暑期社会实践报告,还有就是思政部的征文活动,要求每位同学都要上交,具体细节见群共享文件. (二).Java老师上学期已经说了在本部有一个他 ...
最新文章
- 接Window服务(二)
- 老男孩为网友工作疑难问题解答一例
- python连接linux服务器读取txt文件_Python文件处理
- pve 不订阅更新_??“吃鸡”体验服已无更新,暗夜危机2.0或将被1款新游代替
- C# 中的 in 参数和性能分析
- html 长文本 截断 jquery 扩展脚本
- 设计模式杂谈(一)——设计模式概述
- Android 自定义字体,设置字体
- c语言中通过指针引用数组,C语言基础(二)
- Pytorch专题实战——交叉熵损失函数(CrossEntropyLoss )
- java u0002_老玩法,输出金字塔
- 如何在mysql中创建学生信息表_数据库怎么创建学生信息表
- 项目管理-项目启动会
- Matlab中函数imnoise使用浅谈
- 新视野大学英语(第三版)读写教程4答案
- 外贸软件常见图片类问题丨汇信
- vue3 render函数的写法
- C 语言隐式类型转换
- Manjaro安装有道词典,启动报错解决
- 浏览器交响曲 (一)浏览器中的js执行机制