2024年Linux最全云计算day13-Git 版本控制系统、jenkins安装(笔记),蚂蚁金服4面Linux运维高级开发

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

git版本监控组

1.安装和配置git
[root@k8s-node2 ~]# yum install git -y
[root@k8s-node2 ~]# git --version 
git version 1.8.3.1

git config --global user.name "lcx"
git config --global user.email "245684979@qq.com"
git config --global color.ui   "true"


2. 创建版本库
git init 

3.git仓库添加文件
git add .  #添加文件到缓冲区
git commit -m 'ad three file'

4. git 修改文件名称并提交
git mv file1 file4
git commit -m 'change file name'

5. git的文件对比
git diff file3   #本地目录和缓冲去文件对比
git diff --cached file3   #缓冲区文件和仓库文件对比

6. 实现回退功能

[root@k8s-node2 ~]# git log --oneline 
58bea1a add three file
fe9e8c2 add two file
[root@k8s-node2 ~]# cat file2
456456456
8888888
[root@k8s-node2 ~]# git reset --hard 58bea1a
HEAD is now at 58bea1a add three file
[root@k8s-node2 ~]# cat file2
456456456


#查看所有历史版本
[root@k8s-node2 ~]# git reflog --oneline
fe9e8c2 HEAD@{0}: reset: moving to fe9e8c2
58bea1a HEAD@{1}: commit: add three file
fe9e8c2 HEAD@{2}: commit (initial): add two file

[root@k8s-node2 ~]# git reset --hard 58bea1a


撤回

[root@k8s-node2 ~]# echo 8888888 > file2 
[root@k8s-node2 ~]# git diff file2
diff --git a/file2 b/file2
index 7d7a948..80f456a 100644
--- a/file2
+++ b/file2
@@ -1 +1 @@
-456456456
+8888888
[root@k8s-node2 ~]# git checkout file2
[root@k8s-node2 ~]# git diff file2
[root@k8s-node2 ~]# cat file2 
456456456

撤销修改的文件

提交到缓冲区的文件撤回
git reset HEAD file2

未add到缓冲区的文件撤回
git checkout -- file2


7. git分支管理
#查看分支
git branch    ----> * master

#增加一个新分支
git branch dev01

#切换分支
git checkout dev01

#合并分支
git merge master

#在开发分支上合并主分支
git  merge master -m '注释'

#切回主分支
git checkout master

#在主分支次合并开发分支
git merge dev01 -m '注释'

8. git标签管理

标签就是给commit起一个别名,容易记忆

#添加标签
git log --oneline 
git tag v1.2    ----> 给当前版本打标签
git tag -a v1.0 -m '注释,优化了修复了什么' <commit的ID>

#删除标签
git tag -d v1.2


[root@k8s-node2 demo]# git log --oneline 
b8e21cc add test.txt
9d5ab15 add test.txt
382f080 add test.txt
ff6047d add file6 file7
b693580 add file6 file7
58bea1a add three file
fe9e8c2 add two file
[root@k8s-node2 demo]# git tag 
[root@k8s-node2 demo]# git tag v1.2 
[root@k8s-node2 demo]# git tag 
v1.2
[root@k8s-node2 demo]# git show v1.2 
commit b8e21cc519dfd918ee880831e37585afcdf73410
Author: oldqiang <296917342@qq.com>
Date:   Mon Sep 23 12:03:35 2019 +0800

    add test.txt

diff --git a/demo/test.txt b/demo/test.txt
index 69f66d3..d99f9f0 100644
--- a/demo/test.txt
+++ b/demo/test.txt
@@ -1,3 +1,3 @@
 11111
-aaaaa
+22222
 33333
[root@k8s-node2 demo]# git tag -a v1.0 -m 'v1.0 add 后裔' fe9e8c2
[root@k8s-node2 demo]# git tag 
v1.0
v1.2
[root@k8s-node2 demo]# git show v1.0
tag v1.0
Tagger: oldqiang <296917342@qq.com>
Date:   Mon Sep 23 12:18:45 2019 +0800

v1.0 add 后裔

commit fe9e8c25cfb61eb63da6681dc09d054cd5739243
Author: oldqiang <296917342@qq.com>
Date:   Mon Sep 23 10:44:54 2019 +0800

    add two file

diff --git a/file1 b/file1
new file mode 100644
index 0000000..5721413
--- /dev/null
+++ b/file1
@@ -0,0 +1 @@
+423


扩展
Git 打补丁-- patch 和 diff 的使用
diff
patch 打补丁,创建补丁,卸载补丁

git克隆 码云网站复制项目链接
[外链图片转存失败(img-ZksPvapA-1569213856173)(https://upload-images.jianshu.io/upload_images/16952149-dc299a71ec5aeca1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

9. git远程仓库gitee

ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub 
cd /root/demo/
ll
git remote add origin git@gitee.com:linuxcx/linux.git
git push -u origin master

10. gitlab安装
#上传gitlab-ce-11.9.11-ce.0.el7.x86\_64.rpm到当前目录

echo "192.168.37.202 mirrors.aliyun.com" >>/etc/hosts
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum localinstall gitlab-ce-11.9.11-ce.0.el7.x86_64.rpm -y


vim  /etc/gitlab/gitlab.rb
#设置访问url和关闭prometheus
external_url 'http://http://gitlablcx.com'
prometheus_monitoring['enable'] = false

#配置gitlab通过smtp发送邮件
[root@k8s-node2 demo]# vim /etc/gitlab/gitlab.rb 
gitlab_rails['gitlab\_email\_enabled'] = true
gitlab_rails['gitlab\_email\_from'] = '245684979@qq.com'
gitlab_rails['gitlab\_email\_display\_name'] = 'linux\_gitlab'

gitlab_rails['smtp\_enable'] = true
gitlab_rails['smtp\_address'] = "smtp.qq.com"
gitlab_rails['smtp\_port'] = 465
gitlab_rails['smtp\_user\_name'] = "245684979"
gitlab_rails['smtp\_password'] = "lvlina.199625"
gitlab_rails['smtp\_domain'] = "qq.com"
gitlab_rails['smtp\_authentication'] = "login"
gitlab_rails['smtp\_enable\_starttls\_auto'] = true
gitlab_rails['smtp\_tls'] = true

#重新配置
gitlab-ctl reconfigure

11.gitlab汉化

#下载汉化包
https://gitlab.com/xhang/gitlab

gitlab-ctl stop
tar xf gitlab-11-9-stable-zh.tar.gz
\cp -a gitlab-11-9-stable-zh/* /opt/gitlab/embedded/service/gitlab-rails/

12. gitlab-用户-用户组-项目之间的关系

先创建用户组,在基于用户组创建项目,最后创建用户,编辑用户组,添加成员,注意权限

13. gitlab备份和恢复
#备份
gitlab-rake gitlab:backup:create

#恢复
gitlab-ctl stop
gitlab-rake gitlab:backuip:restore BACKUP=1510472027_2019_09_23_9.4.5
gitlab-ctl start

vim /etc/gitlab/gitlab.rb
gitlab_rails['manage\_backup\_path'] = true
gitlab_rails['backup\_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup\_keep\_time'] = 604800

#迁移云主机
先备份,云主机安装相同版本,恢复

#更新配置
gitlab-ctl reconfigure

14.gitlab版本升级
gitlab升级,要小版本跨   10--->11--->12

扩展内容:

1.安装svn服务器,将svn中的数据迁移到git仓库
git-svn
git clone svn

svn是一个中心化的版本控制工具,git是分布式的,每个人都可以有完整的代码仓库

#安装svn
yum install subversion -y
mkdir /svn/repo -p

#初始化仓库
svnadmin create /svn/repo

cd /svn/repo/conf
vim  svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /svn/repo
[sasl]


vim passwd
[users]
admin = 123456

vim authz
[/]
admin = rw
test = r

启动svn服务
svnserve -d -r /svn/repo

#svn迁移到git
yum  install  git-svn  -y
git svn clone svn://10.0.0.13 --username=admin --no-metadata --authors-file=password.txt git

cat password.txt
admin=<245684979@qq.com>


2.找回gitlab的root密码



2. 持续部署

gitlab, lb(部署服务器), web01,web02

#lb01,web01,web02都按照nginx
echo "192.168.37.202 mirrors.aliyun.com" >>/etc/hosts
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install nginx -y

#创建upstream资源池文件
vim  /etc/nginx/upstream_monitor
server 10.0.0.7;


![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)


最全的Linux教程,Linux从入门到精通

======================

1.  **linux从入门到精通(第2版)**

2.  **Linux系统移植**

3.  **Linux驱动开发入门与实战**

4.  **LINUX 系统移植 第2版**

5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)



第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。



![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)



**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**

> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值