├── .gitignore
├── _config.yml
├── Backend
├── Csharp
│ └── main.md
└── Python
│ ├── main.md
│ └── start.md
├── 运维文档
├── images
│ ├── IP地址.png
│ ├── 国内镜像.png
│ ├── 打开终端.png
│ ├── ssh保存密码.png
│ ├── 安装Redis.png
│ ├── 安装SSH服务.png
│ ├── 查看容器列表.png
│ ├── 选择DVD.png
│ ├── Hyper安装勾选.png
│ ├── Hyper管理器.png
│ ├── Hyper管理工具.png
│ ├── Smartty配置.png
│ ├── 开始安装redis.png
│ ├── Centos7安装主界面.png
│ ├── Centos7安装前.png
│ ├── Centos7安装步骤1.png
│ ├── Hyper管理器界面.png
│ ├── Smartty传输文件.png
│ ├── 下载Centos按钮.png
│ ├── 检查Docker镜像列表.png
│ ├── 虚拟机安装向导步骤1.png
│ ├── 虚拟机安装向导步骤2.png
│ ├── 虚拟机安装向导步骤3.png
│ ├── 虚拟机安装向导步骤4.png
│ ├── 虚拟机安装向导步骤5.png
│ ├── 虚拟机安装向导步骤6.png
│ ├── 虚拟机安装向导步骤7.png
│ ├── 虚拟机安装向导步骤8.png
│ ├── 虚拟机操作界面-关机状态.png
│ ├── Centos7安装-打开网络.png
│ ├── Centos7安装-最小安装.png
│ ├── Centos7安装-欢迎界面.png
│ ├── Centos7安装-磁盘选项.png
│ ├── Centos7安装-语言选择.png
│ ├── Centos7安装-进系统.png
│ ├── Centos7安装-Gnome桌面.png
│ ├── Centos7安装-安装过度界面.png
│ ├── Centos7安装-接收许可证.png
│ ├── Centos7安装-配置用户界面.png
│ ├── Smartty操纵centos.png
│ ├── Smartty连接centos.png
│ └── Centos7安装-设置root密码.png
├── termux-redis.md
├── Centos安装Docker.md
├── Ubuntu安装Git最新版.md
├── 虚悬镜像.md
├── Solr7部署.md
├── 虚拟机环境下Centos7磁盘扩容.md
├── Ubuntu安装Nodejs.md
├── 在win10操作系统下安装Hyper-v.md
├── Centos下如何使用tcpdump抓包.md
├── Centos环境下防火墙配置.md
├── SpringBoot部署.md
├── Centos物理机如何扩展硬盘.md
├── samba如何和windows共享交互.md
├── 安装Java.md
├── 安装ELK.md
├── git-two-account.md
├── 安装Maven.md
├── Elasticsearch测试.md
├── termux-mysql.md
├── Mysql导入导出.md
├── Docker日志容量限制.md
├── 通过Hyper-v安装Centos7.5.md
├── 基于Docker安装和运行常用容器.md
├── 在纯净的Centos7.5下安装常用软件和Docker.md
└── Mosquitto安装使用.md
├── AI
├── AI.md
└── Deepseek.md
├── 实战演练
└── 自动化部署
│ ├── images
│ ├── gitlabbaidu.png
│ ├── gitlablogin.png
│ └── nginxconf.png
│ ├── aspnetcore.md
│ ├── gitlabSetup.md
│ ├── CICD.md
│ └── main.md
├── 编程文档
├── 使用指定端口运行项目.md
├── EF设置查询超时.md
└── git
│ └── main.md
├── LICENSE
├── DevOps
├── SonarQubeUse.md
└── SonarQube.md
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea
2 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-cayman
--------------------------------------------------------------------------------
/Backend/Csharp/main.md:
--------------------------------------------------------------------------------
1 | #### Csharp 相关研究
2 | - 基础语法
3 | - 跨平台相关
4 | - 常用框架研究
5 | - 性能指标
6 |
--------------------------------------------------------------------------------
/运维文档/images/IP地址.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/IP地址.png
--------------------------------------------------------------------------------
/运维文档/images/国内镜像.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/国内镜像.png
--------------------------------------------------------------------------------
/运维文档/images/打开终端.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/打开终端.png
--------------------------------------------------------------------------------
/运维文档/images/ssh保存密码.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/ssh保存密码.png
--------------------------------------------------------------------------------
/运维文档/images/安装Redis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/安装Redis.png
--------------------------------------------------------------------------------
/运维文档/images/安装SSH服务.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/安装SSH服务.png
--------------------------------------------------------------------------------
/运维文档/images/查看容器列表.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/查看容器列表.png
--------------------------------------------------------------------------------
/运维文档/images/选择DVD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/选择DVD.png
--------------------------------------------------------------------------------
/运维文档/images/Hyper安装勾选.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Hyper安装勾选.png
--------------------------------------------------------------------------------
/运维文档/images/Hyper管理器.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Hyper管理器.png
--------------------------------------------------------------------------------
/运维文档/images/Hyper管理工具.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Hyper管理工具.png
--------------------------------------------------------------------------------
/运维文档/images/Smartty配置.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Smartty配置.png
--------------------------------------------------------------------------------
/运维文档/images/开始安装redis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/开始安装redis.png
--------------------------------------------------------------------------------
/AI/AI.md:
--------------------------------------------------------------------------------
1 | ### AI introduce
2 |
3 | ### Article list
4 | - [Run DeepSeek in laptop](/AI/Deepseek.md)
5 |
6 |
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装主界面.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装主界面.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装前.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装前.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装步骤1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装步骤1.png
--------------------------------------------------------------------------------
/运维文档/images/Hyper管理器界面.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Hyper管理器界面.png
--------------------------------------------------------------------------------
/运维文档/images/Smartty传输文件.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Smartty传输文件.png
--------------------------------------------------------------------------------
/运维文档/images/下载Centos按钮.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/下载Centos按钮.png
--------------------------------------------------------------------------------
/运维文档/images/检查Docker镜像列表.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/检查Docker镜像列表.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机安装向导步骤1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤1.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机安装向导步骤2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤2.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机安装向导步骤3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤3.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机安装向导步骤4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤4.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机安装向导步骤5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤5.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机安装向导步骤6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤6.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机安装向导步骤7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤7.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机安装向导步骤8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机安装向导步骤8.png
--------------------------------------------------------------------------------
/运维文档/images/虚拟机操作界面-关机状态.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/虚拟机操作界面-关机状态.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-打开网络.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-打开网络.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-最小安装.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-最小安装.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-欢迎界面.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-欢迎界面.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-磁盘选项.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-磁盘选项.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-语言选择.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-语言选择.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-进系统.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-进系统.png
--------------------------------------------------------------------------------
/实战演练/自动化部署/images/gitlabbaidu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/实战演练/自动化部署/images/gitlabbaidu.png
--------------------------------------------------------------------------------
/实战演练/自动化部署/images/gitlablogin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/实战演练/自动化部署/images/gitlablogin.png
--------------------------------------------------------------------------------
/实战演练/自动化部署/images/nginxconf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/实战演练/自动化部署/images/nginxconf.png
--------------------------------------------------------------------------------
/编程文档/使用指定端口运行项目.md:
--------------------------------------------------------------------------------
1 | #### .net core使用指定端口运行项目
2 |
3 | ```
4 | dotnet xxxx.dll --server.urls="http://*:5555"
5 |
6 | ```
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-Gnome桌面.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-Gnome桌面.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-安装过度界面.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-安装过度界面.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-接收许可证.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-接收许可证.png
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-配置用户界面.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-配置用户界面.png
--------------------------------------------------------------------------------
/运维文档/images/Smartty操纵centos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Smartty操纵centos.png
--------------------------------------------------------------------------------
/运维文档/images/Smartty连接centos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Smartty连接centos.png
--------------------------------------------------------------------------------
/运维文档/termux-redis.md:
--------------------------------------------------------------------------------
1 | #### 请先安装vim ,nvim等文本编辑工具
2 |
3 |
4 | #### 安装步骤
5 | - 安装软件
6 | - 启动
7 | - 故障解决
8 | - 连接测试
9 |
--------------------------------------------------------------------------------
/运维文档/images/Centos7安装-设置root密码.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/light2001/MyDocs/HEAD/运维文档/images/Centos7安装-设置root密码.png
--------------------------------------------------------------------------------
/Backend/Python/main.md:
--------------------------------------------------------------------------------
1 | ### Python相关研究
2 | - [Python 快速入门](./start.md)
3 | - Python 基础语法
4 | - Python Web开发
5 | - Pyton 桌面开发
6 | - Python 爬虫相关
7 | - Python 性能相关
8 |
--------------------------------------------------------------------------------
/运维文档/Centos安装Docker.md:
--------------------------------------------------------------------------------
1 | #### 本文档安装的是docker ce 版本,EE版本貌似要收费
2 |
3 | 根据以下这篇教程安装的
4 |
5 | 安装教程
--------------------------------------------------------------------------------
/运维文档/Ubuntu安装Git最新版.md:
--------------------------------------------------------------------------------
1 | #### Ubuntu18安装最新版本的git
2 |
3 | #### 输入如下命令即可:
4 | ```
5 | sudo add-apt-repository ppa:git-core/ppa
6 |
7 | sudo apt-get update
8 |
9 | sudo apt-get install git
10 |
11 | ```
--------------------------------------------------------------------------------
/运维文档/虚悬镜像.md:
--------------------------------------------------------------------------------
1 | #### 本文主要是删除虚悬镜像
2 |
3 | 我们在build镜像的过程中,可能会产生一些临时的不具有名称也没有作用的镜像他们的名称一般都是
4 | ```
5 |
6 | ```
7 | 我们可以执行下面的命令将其清除掉:
8 |
9 | ```
10 | docker rmi $(docker images -f "dangling=true" -q)
11 |
12 | # 或者
13 |
14 | docker image prune -a -f
15 |
16 | ```
--------------------------------------------------------------------------------
/编程文档/EF设置查询超时.md:
--------------------------------------------------------------------------------
1 | #### EntityFramework 如何配置Sql查询超时问题
2 |
3 | 只需要在DBContext中加上这句话就好了
4 |
5 | ```
6 |
7 | public MyInfoDbContext(DbContextOptions options)
8 | : base(options)
9 | {
10 | this.Database.SetCommandTimeout(600000);
11 | }
12 |
13 |
14 | ```
--------------------------------------------------------------------------------
/Backend/Python/start.md:
--------------------------------------------------------------------------------
1 | #### 背景知识
2 |
3 |
4 | #### 如何安装
5 |
6 |
7 |
8 |
9 | ##### Windows
10 |
11 |
12 | ##### Linux
13 |
14 |
15 | ##### MacOs
16 |
17 |
18 |
19 |
20 | #### 环境的差异
21 | 几大操作系统的环境差异
22 |
23 |
24 | #### 开发工具的选择
25 |
26 | ##### Vscode
27 |
28 | ##### Pycharm
29 |
30 |
31 | #### Python能做什么?
32 |
33 |
--------------------------------------------------------------------------------
/运维文档/Solr7部署.md:
--------------------------------------------------------------------------------
1 | ### Solr7.2.1在windows环境,部署在tomcat下,连接MSSQL数据库
2 |
3 | 首先根据看下面这篇文档可以解决90%的问题
4 |
5 |
6 | Solr7.2部署
7 |
8 | 但是仍然有一些问题没有说明,比如连接MSSQL应该怎么处理
9 | Sqlserver的连接方式是,如果是用JDBC,必须去下载JDBC的驱动程序,sqljdbc4.jar或者更高版本
10 | 然后复制到 tomcat/webapps/solr/WEB-INF/lib 目录下,否则就会无法连接数据库
--------------------------------------------------------------------------------
/运维文档/虚拟机环境下Centos7磁盘扩容.md:
--------------------------------------------------------------------------------
1 | #### Hyper-v虚拟机环境下的Centos7磁盘扩容
2 |
3 | 首先参考下面的文章:
4 |
5 |
6 | [Hyper-v下Centos7使用LVM实现动态扩容磁盘](http://www.apoyl.com/?p=2232)
7 | [阿里云对应教程-扩展分区和文件系统_Linux系统盘](https://help.aliyun.com/document_detail/111738.html?spm=a2c4g.11186623.4.2.6c297f67raZJ60)
8 |
9 | 其中还缺关键的一部
10 | 在磁盘创建好以后,必须运行以下命令,pvcreate /dev/sda3 才会认
11 |
12 | ```
13 | mkfs.ext4 /dev/sdf3
14 |
15 | ```
--------------------------------------------------------------------------------
/运维文档/Ubuntu安装Nodejs.md:
--------------------------------------------------------------------------------
1 | #### Ubuntu怎么安装最新版的Nodejs、npm等
2 |
3 |
4 | #### 下载解压缩
5 | 1. 去官方网站下载最新的软件包,或者用命令wget下载
6 | 2. 解压缩:tar zxvf node-xxx.tar.gz
7 | 3. 重命名:mv node-xxx.tar.gz node
8 | 4. 移动文件到目录:mv node /usr/local
9 |
10 | #### 建立软连接
11 | ```
12 | ln -s /usr/loca/node/bin/node /usr/bin/node
13 | ln -s /usr/loca/node/bin/npm /usr/bin/npm
14 | ln -s /usr/loca/node/bin/npx /usr/bin/npx
15 |
16 | ```
17 |
--------------------------------------------------------------------------------
/运维文档/在win10操作系统下安装Hyper-v.md:
--------------------------------------------------------------------------------
1 | #### Hyper-v介绍
2 |
3 | Hpyer-v是win10自带的虚拟机程序,和vmware一样,都能提供虚拟化环境,
4 | 不同的是hyper-v是win10附送的,而日常所见的vmware其实是需要收费的,虽然vmware破解版很容易找到
5 |
6 | Hyper-v只有在win10专业版和企业版才能安装,家庭版是不可以的
7 |
8 | 其他虚拟化软件就不多做介绍了
9 |
10 | #### 安装过程
11 | 1. 在控制面板找到-程序和功能-启用或者关闭Windows功能
12 |
13 | 2. 勾选截图中的Hyper-v,建议子项也全部勾选
14 |
15 | 
16 |
17 | 3. 等待win10自动下载安装包,过程需要连接网络
18 |
19 | 4. 打开控制面板-找到管理工具,会看到多出一个Hyper-v管理器,右键单击-发送-桌面快捷方式
20 |
21 | 
22 |
23 | 5. 打开Hpyer-v管理工具,证明已经安装完毕
24 |
25 | 
--------------------------------------------------------------------------------
/运维文档/Centos下如何使用tcpdump抓包.md:
--------------------------------------------------------------------------------
1 | #### Centos环境下,如何使用tcpdump分析网络流量
2 |
3 | #### 如何安装
4 | ```
5 | yum install -y tcpdump
6 | ```
7 |
8 | #### 使用:
9 |
10 | ```
11 |
12 | tcpdump dst 192.168.0.33 -s 0 -c 100 -w /home/target.cap
13 |
14 | tcpdump src 192.168.0.33 -s 0 -c 100 -w /home/target.cap
15 |
16 | ```
17 |
18 | #### 参考资料:
19 | - [CentOS中使用tcpdump抓包](https://www.cnblogs.com/hongdada/p/10565898.html)
20 | - [抓包总结](https://www.cnblogs.com/chenpingzhao/p/9108570.html)
21 | - [Tcpdump命令的使用与示例](https://www.iteblog.com/tcpdump_usage/)
22 | - [Linux tcpdump命令](https://www.runoob.com/linux/linux-comm-tcpdump.html)
23 | - [CentOS下使用tcpdump网络抓包-这个更简单明了一点](https://www.cnblogs.com/magic-chenyang/p/10620600.html)
--------------------------------------------------------------------------------
/运维文档/Centos环境下防火墙配置.md:
--------------------------------------------------------------------------------
1 | #### CENTOS 下安装防火墙
2 |
3 |
4 | 根据以下这篇教程配置
5 |
6 | Iptables安装教程
7 |
8 |
9 |
10 | Centos关闭默认防火墙,开启Iptables
11 |
12 | Centos firewall防火墙详解
13 |
14 | #### firewalld使用简介
15 | ```
16 | 怎么开启一个端口
17 | 添加
18 | firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
19 | 重新载入
20 | firewall-cmd --reload
21 | 查看
22 | firewall-cmd --zone=public --query-port=80/tcp
23 | 删除
24 | firewall-cmd --zone=public --remove-port=80/tcp --permanent
25 |
26 | ```
--------------------------------------------------------------------------------
/运维文档/SpringBoot部署.md:
--------------------------------------------------------------------------------
1 | #### SpringBoot在Docker下部署注意事项
2 | - DockerCompose如何编写
3 |
4 | 使用DockerCompose编写部署文件的时候,必须加上network_mode: "host" 这句话,否则会部署失败
5 | 这给出我目前使用的DockerCompose.yml
6 |
7 | ```
8 | version: '3.1'
9 |
10 | services:
11 |
12 | Cex_Server:
13 | image: cex
14 | build:
15 | context: ../src/target/
16 | ports:
17 | - "9002:80"
18 | network_mode: "host"
19 | expose:
20 | - "9002"
21 |
22 | ```
23 |
24 | - JDK镜像的选择
25 |
26 | JDK镜像如果你通过Docker search搜索出来会看到无数结果,我们只使用以下镜像
27 |
28 | java:8
29 |
30 | - Dockerfile编写,以下给出我目前使用的
31 |
32 | ```
33 | FROM java:8
34 |
35 | WORKDIR /home
36 | COPY MyApp.jar app.jar
37 |
38 | ENTRYPOINT ["java","-jar","app.jar"]
39 |
40 | ```
41 |
--------------------------------------------------------------------------------
/编程文档/git/main.md:
--------------------------------------------------------------------------------
1 | ### 本文档是工作中常见Git问题收集
2 | 主要内容如下:
3 | 1. git强制拉取代码
4 | 2. git从远程仓库拉取代码到本地
5 | 3. git切换远程仓库到本地
6 |
7 |
8 |
9 | #### 分类文档
10 | 1. git强制拉取远程代码,覆盖本地代码
11 | ```
12 | git fetch --all
13 | git reset --hard origin/master
14 | git pull
15 | ```
16 |
17 | 2. git从远程仓库拉取代码到本地
18 | ```
19 | git clone http://UserName:Password@github.com/light2001/MyDocs.git
20 |
21 | 注意:
22 | 如果用户或者密码中有"@"符号,则需要用 "%40" 代替,否则会报密码错误
23 | ```
24 |
25 | 3. git切换远程仓库到本地
26 |
27 | 通过
28 | ```
29 | git checkout -b
30 | ```
31 | 创建本地分支,同时制定远程仓库名,会自动建立链接,好处是以后可以直接用git pull拉取代码
32 | ```
33 | git checkout -b dev origin/dev
34 | ```
35 |
36 | 如果远程仓库无法识别,则需要麻烦一点的步骤
37 | ```
38 | git fetch origin 远程分支名x:本地分支名x
39 | ```
40 | 这样存在的问题是,需要自己手动
41 | ```
42 | git checkout branch
43 | ```
44 | 切换分支,然后用
45 | ```
46 | git branch -u origin/远程分支
47 | ```
48 | 建立链接
--------------------------------------------------------------------------------
/运维文档/Centos物理机如何扩展硬盘.md:
--------------------------------------------------------------------------------
1 | ### 扩充硬盘
2 |
3 | - 查看硬盘的设备名
4 | - 格式化硬盘
5 | - 挂载
6 | - 重启,查看
7 |
8 | #### 查看硬盘的设备名
9 |
10 | >两种方式都可以
11 | >fdisk -l //或者cat /proc/partitions
12 |
13 |
14 | #### 新建分区
15 |
16 | >有些人会在这里新建分区 但是由于本人的硬盘是 希捷4T SSD
17 | >所以我在这里也提供新建分区的方法
18 | >fdisk /dev/sdb //这里的sdb是新添加出来的硬盘
19 | >
20 | >n //添加新分区
21 | >
22 | >p //创建主分区
23 | >
24 | >1 分区号1
25 | >
26 | >按回车 //起始扇区选择默认
27 | >
28 | >也是回车默认 //为了不浪费空间
29 | >
30 | >p //查看创建出来的分区
31 | >
32 | >w //保存
33 | >
34 |
35 | #### 格式化硬盘
36 |
37 | >mkfs.ext4 /dev/sdb //或者mkfs -t ext4 /dev/sdb
38 | >
39 |
40 |
41 | #### 挂载硬盘
42 |
43 | >vim /etc/fstab 进入文件编辑
44 | >
45 | >File&fstab
46 | >
47 | >/dev/sdb /newdisk ext4 defaults 0 0
48 |
49 |
50 | | 硬盘 | 位置 | 格式 | 默认|
51 | |---|---|--- |----|
52 | |/dev/sdb1 | /mnt/daobin | ext4 | defaults 0 0 |
53 |
54 | #### 重启,查看
55 | >reboot
56 | >
57 | > df -h
58 | >如果有你所操作的那个硬盘则挂载成功
59 |
60 |
--------------------------------------------------------------------------------
/实战演练/自动化部署/aspnetcore.md:
--------------------------------------------------------------------------------
1 | ### 本文的目标是在Centos 7.5版本下实现.Net Core部署步骤二
2 |
3 |
4 | ---
5 | 背景知识:
6 |
7 | 本文的目的在于,在Centos环境下,安装gitlab代码管理器,并配合gitlab-runner实现自动化部署,前后端项目均可
8 | 这次选择的是.Net Core后端项目
9 |
10 | 想要实现这个目标,需要掌握以下基本知识
11 | 1. Centos基本操作,linux常用命令
12 | 2. Git代码管理知识,常用命令
13 | 3. docker基础知识,docker-compose基础
14 | 4. nginx基础理论,配置文件相关知识
15 | 5. gitlab管理知识,基础操作
16 |
17 |
18 | ---
19 |
20 |
21 |
22 | 由于篇幅较长,因此拆分为几篇文章:
23 |
24 | ### [步骤一环境安装](/实战演练/自动化部署/main.md)
25 |
26 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md)
27 |
28 | ### 步骤三.Net Core项目配置
29 |
30 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md)
31 | ---
32 | ### 步骤三.Net Core项目配置
33 |
34 | Asp.netcore是.net平台目前最流行的技术平台,本文将创建一个.net core项目用于实现自动化部署的测试项目
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | ---
45 | ### [步骤一环境安装](/实战演练/自动化部署/main.md)
46 |
47 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md)
48 |
49 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md)
50 |
--------------------------------------------------------------------------------
/实战演练/自动化部署/gitlabSetup.md:
--------------------------------------------------------------------------------
1 | ### 本文的目标是在Centos 7.5版本下实现.Net Core部署步骤二
2 |
3 |
4 | ---
5 | 背景知识:
6 |
7 | 本文的目的在于,在Centos环境下,安装gitlab代码管理器,并配合gitlab-runner实现自动化部署,前后端项目均可
8 | 这次选择的是.Net Core后端项目
9 |
10 | 想要实现这个目标,需要掌握以下基本知识
11 | 1. Centos基本操作,linux常用命令
12 | 2. Git代码管理知识,常用命令
13 | 3. docker基础知识,docker-compose基础
14 | 4. nginx基础理论,配置文件相关知识
15 | 5. gitlab管理知识,基础操作
16 |
17 |
18 | ---
19 |
20 |
21 |
22 | 由于篇幅较长,因此拆分为几篇文章:
23 |
24 | ### [步骤一环境安装](/实战演练/自动化部署/main.md)
25 |
26 | ### 步骤二gitlab配置
27 |
28 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md)
29 |
30 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md)
31 | ---
32 |
33 | ### 步骤二gitlab配置
34 |
35 | gitlab是开源源代码管理服务器的一种实现,软件本身特色很多,除了比较耗费资源意外,各方面表现都很优秀,因此很适合拿来做源代码管理
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | ---
46 | ### [步骤一环境安装](/实战演练/自动化部署/main.md)
47 |
48 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md)
49 |
50 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md)
--------------------------------------------------------------------------------
/运维文档/samba如何和windows共享交互.md:
--------------------------------------------------------------------------------
1 | #### 本文介绍samba-client如何和windows目录交互
2 |
3 | 背景介绍:
4 |
5 | 本文基于Centos7.6环境下操作,内容是,从linux的samba客户端,连接到windows的共享目录,并实现开机自动挂载
6 |
7 | #### 先安装软件
8 | ```
9 | # 挂载目录用的
10 | yum -y install cifs-utils
11 |
12 | # samba的客户端软件
13 | yum -y install samba-client
14 |
15 | ```
16 |
17 |
18 | #### 然后连接目录
19 | ```
20 | smbclient //192.168.8.20/foldername -U DomainName/username%password
21 |
22 | # 连接后可以用ls等命令查看目录下的内容,退出请输入:
23 |
24 | exit
25 |
26 | ```
27 |
28 | #### 挂载目录到指定目录下,需要权限
29 | ```
30 |
31 | sudo mount.cifs -o user="username",pass="password",dom="domainname" //192.168.8.20/gcs /mnt/foldername
32 |
33 |
34 | ```
35 |
36 | #### 断开目录
37 |
38 | ```
39 | umount /mnt/foldername
40 |
41 | ```
42 |
43 |
44 | #### 设置开机就挂载
45 |
46 | ```
47 | # 编辑/etc/fstab文件,在里面增加一行内容,就会实现开机就加载
48 | vim /etc/fstab
49 |
50 | mount.cifs -o user="username",pass="password",dom="domainname" //192.168.8.20/gcs /mnt/foldername
51 |
52 | ```
--------------------------------------------------------------------------------
/运维文档/安装Java.md:
--------------------------------------------------------------------------------
1 | ### JAVA介绍
2 |
3 | JAVA是目前全球占比最大的开发语言,这个就不多做介绍了
4 |
5 | #### RPM 安装操作
6 |
7 | 命令:
8 | rpm -i 需要安装的包文件名
9 | 举例如下:
10 | rpm -i example.rpm 安装 example.rpm 包;
11 | rpm -iv example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息;
12 | rpm -ivh example.rpm 安装 example.rpm 包并在安装过程中显示正在安装的文件信息及安装进度;
13 | RPM 查询操作
14 |
15 |
16 |
17 | #### 安装步骤
18 | - 打开Oracle官网,找到JDK下载地址,然后复制到ssh终端里用wget下载,或者从windows上下载,传送到centos服务器下
19 | ```
20 | wget https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk-8u201-linux-i586.rpm
21 |
22 | ```
23 |
24 | - 通过RPM命令安装rpm包
25 |
26 | ```
27 | rpm -ivh jdk-8u201-linux-i586.rpm
28 |
29 | ```
30 |
31 | - 用java -version 命令查看是否安装成功,如果看到如下命令,则表示已经安装成功了
32 |
33 | ```
34 | [root@localhost conf]# java -version
35 | java version "1.8.0_201"
36 | Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
37 | Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
38 | [root@localhost conf]#
39 |
40 | ```
41 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 kevin
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/运维文档/安装ELK.md:
--------------------------------------------------------------------------------
1 | #### 如何安装ELK
2 |
3 | 基于Docker下安装ELK服务器
4 |
5 | #### 参考文档
6 | [CSDN连接:https://blog.csdn.net/qq1031893936/article/details/93798646](https://blog.csdn.net/qq1031893936/article/details/93798646)
7 |
8 | #### 其他说明
9 |
10 | Elasticsearch 已经更新到了7.6.0,如果用docker pull 默认版本不是最新的,必须在后面增加版本号才能下载最新版本
11 |
12 | 因此,Kibana对应版本也需要下载7.6.0版本才可以正常使用
13 |
14 | 例如:
15 | ~~~
16 | docker pull elasticsearch:7.6.0
17 | docker pull kibana:7.6.0
18 | ~~~
19 |
20 | 这里要特别说明下,文章里Elasticsearch的IK分词器由于墙的存在是无法安装的,必须手动下载zip文件并解压缩后,然后复制到elasrarch/plugins/ 目录下,并将目录改名为:analysis-ik,并且使用elasticsearch-plugin list能查询到即可
21 |
22 | 也可以安装 smart-cn分词器,安装方法:
23 |
24 | ~~~
25 | cd /usr/share/elasticsearch/bin
26 | elasticsearch-plugin install smart-cn
27 | ~~~
28 |
29 | 由于我的Dicker卷文件放在D盘,这里记录下我的Kibana运行语句
30 |
31 | ~~~
32 | docker run -di --name=mykibana -p 5601:5601 -v /d/Hyper-v/Docker/kibana/config:/usr/share/kibana/config kibana
33 | ~~~
34 |
35 | 下面是Logstash的运行语句
36 |
37 | ~~~
38 | docker run -di --name=mylogstash -v /d/Hyper-v/Docker/logstash/config:/usr/share/logstash/config -v /d/Hyper-v/Docker/logstash/pipeline:/usr/share/logstash/pipeline logstash:7.6.0
39 | ~~~
--------------------------------------------------------------------------------
/运维文档/git-two-account.md:
--------------------------------------------------------------------------------
1 | #### 如果你有两个账号,怎么配置不同的目录使用不同的账号推送
2 |
3 |
4 | 首先你可以设置全局账号,比如公司的账号设置成全局的,然后某个目录,你可以使用local本地的配置,这样就能区分开不同目录使用不同的账号
5 |
6 |
7 | #### 本地设置
8 | - 怎么设置设置本地的账号密码
9 |
10 | 先设置账号相关,由于git对配置文件,分几个等级
11 | - local 最高
12 | - system 最低
13 | - global 次高
14 |
15 | ~~~
16 | git config --local user.name = light2001
17 | git config --local user.email = 332976194@qq.com
18 | git config --local credential.helper store
19 | ~~~
20 |
21 | 这时候可以查看一下是否配置到位:
22 | ~~~
23 | git config --local --list
24 | ~~~
25 |
26 | - 设置当前目录的账号密码,设置后会存在 ~/.git-credentials 文件里,以加密方式存储
27 | ~~~
28 | git config --local credential.https://github.com.username
29 | ~~~
30 |
31 | 参考:https://www.baeldung.com/ops/git-configure-credentials
32 |
33 | - 查看.git-credential
34 |
35 | 
36 |
37 | 可以看到有好不同的记录
38 |
39 | - 推送时输入账号密码
40 | ~~~
41 | git push
42 | ~~~
43 |
44 | 这时候会弹出git 密钥管理,可以选择打开webbrowser,之后就可以正常使用了
45 |
46 |
47 |
48 |
49 | #### 存在的问题:
50 |
51 | 目前发现如果一个账号,对同一个网站存在两个账号,在pull或者push的时候,会触发弹出 GCM 选择账号的情况,暂时还没找到解决方案
52 |
53 | 已经知道怎么解决了,只要设置了全局的默认账号,就不会再提示让你选择账号去pull/push代码了
--------------------------------------------------------------------------------
/运维文档/安装Maven.md:
--------------------------------------------------------------------------------
1 | ### Maven介绍
2 |
3 | Maven是apache的软件包管理项目,用于Java项目的
4 | 包,组件管理,类似.Net的Nuget,有人说比Nuget还要强大,暂时没有感受,不过使用起来入门还是很简单的
5 |
6 | 安装maven需要先安装jdk,本文会默认你已经安装上jdk了
7 |
8 |
9 | #### 安装步骤
10 | - 打开maven官网,找到下载地址,然后复制到ssh终端里用wget下载
11 | ```
12 | wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
13 |
14 | ```
15 |
16 | - 解压缩刚才下载的文件,并修改文件夹名称
17 |
18 | ```
19 | tar -zxvf apache-maven-3.6.0-bin.tar.gz
20 | mv apache-maven-3.6.0-bin.tar.gz maven
21 |
22 | ```
23 |
24 | - 用vim打开/etc/profile,这个文件,在最后面增加以下几行代码(maven的目录设置为/home/maven)
25 |
26 | ```
27 | export M2_HOME=/home/maven
28 | export PATH=$PATH:$M2_HOME/bin
29 |
30 | ```
31 |
32 | - 用mvn -v 命令查看是否安装成功,如果看到如下命令,则表示已经安装成功了
33 |
34 | ```
35 | [root@localhost ~]# mvn -v
36 |
37 | Apache Maven 3.6.0(1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
38 | Maven home: /home/maven
39 | Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_201-amd64/jre
40 | Default locale: en_US, platform encoding: UTF-8
41 | OS name: "linux", version: "3.10.0-957.1.3.el7.x86_64", arch: "amd64", family: "unix"
42 | ```
43 |
44 |
45 | - 配置maven的本地仓库地址,打开/home/maven/conf目录,找到settings.xml,找到下面这部分,修改成你要的目录
46 |
47 | ```
48 | # 以下注释部分可以手动调整结束符
49 |
54 | /home/maven/repo
55 |
56 | ```
--------------------------------------------------------------------------------
/实战演练/自动化部署/CICD.md:
--------------------------------------------------------------------------------
1 | ### 本文的目标是在Centos 7.5版本下实现.Net Core部署步骤二
2 |
3 |
4 | ---
5 | 背景知识:
6 |
7 | 本文的目的在于,在Centos环境下,安装gitlab代码管理器,并配合gitlab-runner实现自动化部署,前后端项目均可
8 | 这次选择的是.Net Core后端项目
9 |
10 | 想要实现这个目标,需要掌握以下基本知识
11 | 1. Centos基本操作,linux常用命令
12 | 2. Git代码管理知识,常用命令
13 | 3. docker基础知识,docker-compose基础
14 | 4. nginx基础理论,配置文件相关知识
15 | 5. gitlab管理知识,基础操作
16 |
17 |
18 | ---
19 |
20 |
21 |
22 | 由于篇幅较长,因此拆分为几篇文章:
23 |
24 | ### [步骤一环境安装](/实战演练/自动化部署/main.md)
25 |
26 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md)
27 |
28 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md)
29 |
30 | ### 步骤四实现自动化部署
31 | ---
32 | ### 步骤四实现CICD自动化部署
33 |
34 | 1. CICD背景知识
35 |
36 | CICD的意思是持续部署,持续集成,在开发过程中,经常会合并代码,并发布,在集中开发的过程中,一天会部署N次,如果多人参与同一个项目,发布次数会更多,团队越大,同一个项目参与人数越多,持续部署就越重要
37 |
38 | 2. gitlab-runner介绍
39 | gitlab-runner可以理解为安装在被部署机器上的一个工作者软件,gitlab在目标版本合并的时候会根据当前部署的脚本,触发相应的runner去运行一系列的脚本,脚本由使用者自己定制
40 |
41 | 官网最新的文档已经全部都换成gitlab-runner,网上的资料大多都还是gitlab-mutiple-ci-runner的,这是老版本的runner,是否可用没有多做研究
42 |
43 | gitlab-runner根据需要可以分为:
44 | - 共享
45 | - 分组
46 | - 项目独有
47 |
48 | 从本质上来看并没有什么区别,只是使用上会有不同,比如共享型的就是一个runner可以给所有项目使用,而分组的runner只能给对应分组的runner使用,我只使用过项目,分组,这两种类型的runner,有兴趣的朋友可以去测试其他类型,然后来给我分享
49 |
50 | 3. gitlab-runner使用
51 |
52 | gitlab-runner需要先注册才能使用
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | ---
69 | ### [步骤一环境安装](/实战演练/自动化部署/main.md)
70 |
71 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md)
72 |
73 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md)
74 |
--------------------------------------------------------------------------------
/运维文档/Elasticsearch测试.md:
--------------------------------------------------------------------------------
1 | ### Elasticsearch增删改查演练
2 |
3 |
4 | #### 下面是测试语句
5 |
6 | 以下语句运行在kibana内的devtools里执行
7 |
8 | ~~~
9 |
10 | -- 查询所有
11 | GET /grapes/product/_search
12 |
13 | -- 新增
14 | PUT /grapes/product/2
15 | {
16 | "name" : "黑玫瑰",
17 | "desc" : "黑玫瑰",
18 | "price" : 25,
19 | "producer" : "jiajieshi producer1",
20 | "tags": [ "fangzhu1" ]
21 | }
22 |
23 | -- 新增
24 | PUT /grapes/product/3
25 | {
26 | "name" : "黑玫瑰",
27 | "desc" : "黑玫瑰",
28 | "price" : 25,
29 | "producer" : "jiajieshi producer1",
30 | "tags": [ "fangzhu1" ]
31 | }
32 |
33 | -- 更新单条数据
34 | POST /grapes/product/2/_update
35 | {
36 | "doc":{
37 | "name" : "黑玫瑰1",
38 | "desc" : "黑玫瑰2"
39 | }
40 | }
41 |
42 | -- 查询/grapes/product下所有数据
43 | GET /grapes/product/_search
44 | {
45 | "query": {
46 | "match": {
47 | "name": "夏黑"
48 | }},
49 | "sort": [
50 | {
51 | "price": {
52 | "order": "asc"
53 | }
54 | }
55 | ],
56 | "_source": ["name","price"]
57 | }
58 |
59 | -- 删除数据
60 | DELETE /grapes/product/3
61 |
62 | -- 组合查询
63 | GET /grapes/product/_search
64 | {
65 | "query": {
66 | "bool": {
67 | "must": [
68 | {
69 | "match": {
70 | "name": "夏"
71 | }}
72 | ],
73 | "filter": {
74 | "range": {
75 | "price": {
76 | "gt": 24
77 | }
78 | }
79 | }
80 | }
81 | }
82 | }
83 |
84 | -- 匹配查询
85 | GET /grapes/product/_search
86 | {
87 | "query": {
88 | "match_phrase": {
89 | "name": "夏黑"
90 | }
91 | }
92 | }
93 |
94 | ~~~
--------------------------------------------------------------------------------
/运维文档/termux-mysql.md:
--------------------------------------------------------------------------------
1 | #### 前提条件
2 |
3 | - 安装好vim等文本编辑工具
4 | - 配置好手机的SSHD,用于远程连接
5 |
6 | #### 安装步骤
7 | - 安装服务器端软件
8 |
9 | ##### 搜索数据库软件,查看是否存在
10 |
11 | ~~~
12 | pkg search mysql
13 | ~~~
14 | 如图所示,termux上只能看到mariadb,没有mysql,不过使用起来是一样的
15 | 
16 |
17 |
18 | ##### 安装软件
19 | ~~~
20 | pkg install mariadb
21 | ~~~
22 | - 调整配置文件
23 | ~~~
24 | # 进入配置文件目录
25 | cd /data/data/com.termux/files/usr/etc
26 | nvim my.cnf
27 |
28 | # 我的配置如下:
29 | [mysqld]
30 | init-connect='SET NAMES utf8mb4'
31 | character-set-server = utf8mb4
32 | collation-server = utf8mb4_unicode_ci
33 | [client]
34 | default-character-set=utf8mb4
35 |
36 | !includedir /data/data/com.termux/files/usr/etc/my.cnf.d
37 | ~~~
38 |
39 | - 启动数据库服务
40 | ~~~
41 | mysqld_safe -u root &
42 | ~~~
43 | 查看是否启动成功:
44 | ~~~
45 | ps -ef | grep mysqld
46 | ~~~
47 | 
48 |
49 | - 客户端连接
50 | ~~~
51 | mysql -u root -p
52 | # 输入密码
53 | ~~~
54 | 
55 | ~~~
56 | # 查看字符集是否utf8
57 | show variables like '%char%';
58 | ~~~
59 | 
60 | ~~~
61 | # 查看数据库列表
62 | show databases;
63 | # 查看表列表
64 | show tables;
65 | # 查看数据
66 | select * from user;
67 | ~~~
68 | - 创建数据库
69 | ~~~
70 | CREATE DATABASE `mydatabase` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
71 | ~~~
72 |
73 | - 导入初始数据
74 | ~~~
75 | mysql -u root -p
76 | use mydatabase;
77 | source ./xxx.sql;
78 | ~~~
79 |
--------------------------------------------------------------------------------
/运维文档/Mysql导入导出.md:
--------------------------------------------------------------------------------
1 | ### Mysql的导入导出操作
2 |
3 |
4 | ### window下
5 |
6 | 1. 导出整个数据库
7 | ```
8 | mysqldump -u 用户名 -p 数据库名 > 导出的文件名
9 | mysqldump -u dbuser -p dbname > dbname.sql
10 | ```
11 |
12 | 2. 导出一个表
13 | ```
14 | mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
15 | mysqldump -u dbuser -p dbname users> dbname_users.sql
16 | ```
17 |
18 | 3. 导出一个数据库结构
19 | ```
20 | mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql
21 | -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
22 | ```
23 |
24 | 4. 导入数据库
25 | ```
26 | 常用source 命令
27 | 进入mysql数据库控制台,如
28 | mysql -u root -p
29 | mysql>use 数据库
30 | 然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
31 | mysql>source d:/dbname.sql
32 | ```
33 |
34 |
35 |
36 | #### 其他操作
37 | 1. 导入数据到数据库
38 |
39 | ```
40 | mysql -uroot -D数据库名
41 | ```
42 |
43 | 2. 导入数据到数据库中得某个表
44 | ```
45 |
46 | mysql -uroot -D数据库名 表名
47 | ```
48 |
49 | 例如
50 | ```
51 |
52 | D:\APMServ5.2.6\MySQL5.1\bin>mysqldump -u root -p erp lightinthebox_tags > ligh
53 | tinthebox.sql
54 | ```
55 |
56 |
57 | ### linux下
58 |
59 | #### 一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
60 | 1. 导出数据和表结构:
61 | ```
62 | mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
63 | #/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
64 | 敲回车后会提示输入密码
65 | ```
66 |
67 | 2. 只导出表结构
68 | ```
69 | mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
70 | #/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
71 |
72 | 注:/usr/local/mysql/bin/ ---> mysql的data目录
73 | ```
74 |
75 |
76 | #### 二、导入数据库
77 | 1. 首先建空数据库
78 | ```
79 | mysql>create database abc;
80 | ```
81 |
82 | 2. 导入数据库
83 | ```
84 | 方法一:
85 | (1)选择数据库
86 | mysql>use abc;
87 | (2)设置数据库编码
88 | mysql>set names utf8;
89 | (3)导入数据(注意sql文件的路径)
90 | mysql>source /home/abc/abc.sql;
91 | 方法二:
92 | mysql -u用户名 -p密码 数据库名 < 数据库名.sql
93 | #mysql -uabc_f -p abc < abc.sql
94 | ```
95 |
96 |
--------------------------------------------------------------------------------
/运维文档/Docker日志容量限制.md:
--------------------------------------------------------------------------------
1 | ### Docker日志容量限制总容量
2 |
3 | #### 背景介绍
4 | 在我们使用Docker容器启动服务时,常常会由于容器内的日志过多导致把宿主机的磁盘打满。
5 | 本文主要讲解如何解决容器日志打满磁盘的问题。
6 |
7 | #### 容器日志目录
8 |
9 | 首先,我们来讲一下容器日志的位置。如果你的磁盘已经被容器日志所打满,则需要找到对应的日志并进行删除。
10 |
11 | 默认情况下,每个容器的日志默认都会以json-file的格式存储于
12 |
13 | ```
14 | /var/lib/docker/containers/<容器id>/<容器id>-json.log文件中。
15 | ```
16 |
17 | 如果你的磁盘已经被日志打满,此时可以清除该文件来释放空间。需要注意的是,不建议直接使用rm命令删除日志文件,因为在某些情况下,rm命令无法直接释放磁盘空间。
18 |
19 | 一种推荐的删除方式如下:
20 | ```
21 | echo " " > /var/lib/docker/containers/<容器id>/<容器id>-json.log
22 | ```
23 |
24 | 上述方法总是治标不治本。为了解决该问题,我们希望能直接限制容器日志的大小。
25 |
26 | #### 限制容器日志的方式分为全局限制和单个容器限制。
27 |
28 | #### 全局限制
29 |
30 | 创建/修改/etc/docker/daemon.json该文件,在该文件中增加如下配置:
31 | ```
32 | {
33 | "log-driver":"json-file",
34 | "log-opts":{ "max-size" :"1g","max-file":"1"}
35 | }
36 |
37 | ```
38 | 此时,表示全局限制所有容器的默认日志配置为json-file格式且最大限制为1G。
39 |
40 | #### 单个容器限制
41 |
42 | ##### docker容器启动命令中配置日志信息
43 |
44 | 有时,我们希望仅仅针对单个容器进行限制,那么此时方式如下:
45 | 在docker run的容器启动命令中添加如下参数:
46 | ```
47 | --log-opt max-size=1g --log-opt max-file=1
48 | ```
49 | ##### compose文件中配置日志信息
50 | 很多时候,我们启动容器不是通过docker run进行挨个启动,而是通过compose进行统一的管理。
51 | 此时,我们同样可以在compose的配置文件中进行容器日志的限制。
52 |
53 | 一个示例如下:
54 | ```
55 | version: "2"
56 | services:
57 | mysql:
58 | image: mysql
59 | logging:
60 | driver: "json-file"
61 | options:
62 | max-size: "1g"
63 | ```
64 |
65 | 配置完毕必须重启动Docker服务
66 | ```
67 | sudo systemctl restart docker
68 |
69 | ```
70 |
71 |
72 | #### 真实案例:
73 | 日期:2019年6月24
74 |
75 | 现象描述:
76 |
77 | 周末休息完毕,周一一早来,发现放进docker的禅道无法打开了。
78 | 经过分析问题,发现是存放测试环境,gitlab,禅道的服务器磁盘空间满了。
79 | 迫于无奈,查找原因。
80 |
81 | 隐约猜到是什么情况,直觉告诉我,是gitlab导致的,因为gitlab给我的感觉就是会特别占用资源,包括内存,磁盘空间
82 |
83 | 解决步骤:
84 | - 输入命令:
85 | ```
86 | du -h -x --max-depth=1
87 | ```
88 | - 根据返回结果,层层查找,最终定位到 /var/lib/docker/containers/ 目录下, 这个目录是存放docker容器本身资料的地方
89 | - 在这个目录输入上面的命令,会发现某个目录容量特别大,经比对,发现就是gitlab的对应目录,进入目录后,发现json.log日志居然有33g
90 | - 删除文件后,重启docker服务,问题得到解决
91 |
92 | 经验总结:
93 |
94 | 大家在docker容器中使用gitlab的时候一定要注意限制他的日志大小,本人所使用的gitlab,总共使用时间大概9个月左右,就有33g这么大的日志,可见还是有必要限制一下的
95 |
96 |
97 | ---
98 | #### 本文引用来源地址:
99 | [Docker容器日志打满机器的解决方式](https://www.missshi.cn/api/view/blog/5c4c18a8c7e01951d5000001)
100 |
101 |
--------------------------------------------------------------------------------
/运维文档/通过Hyper-v安装Centos7.5.md:
--------------------------------------------------------------------------------
1 | #### Centos介绍
2 |
3 | CentOS(Community Enterprise Operating System,
4 | 中文意思是:社区企业操作系统)是Linux发行版之一,
5 | 它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。
6 | 由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的
7 | Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。
8 |
9 | #### Centos的下载,当前最新版本为7.6
10 | 1. 去Centos的官方网站下载ISO文件
11 | 网址:
12 | [Centos官网](https://www.centos.org/)
13 | 2. 点击"Get Centos Now"
14 |
15 | 
16 |
17 | 3. 选择DVD版本,打开[下载网址](http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso)
18 |
19 | 
20 |
21 | 4. 选择国内镜像下载链接
22 |
23 | 
24 |
25 | 5. 下面已经把镜像地址复制过来了,看这篇文档的时候,本文档未必还处于最新状态,因此,下载还是以上面的参考说明为准
26 | [阿里云镜像](http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso)
27 |
28 | [163网易镜像](http://mirrors.163.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso)
29 |
30 |
31 | #### 在Hyper-V环境下新增Centos虚拟机
32 | 1. 打开Hyper-v管理器
33 | 2. 操作——新建——虚拟机,打开虚拟机安装向导
34 |
35 | 
36 |
37 | 3. 直接按下一步,进入向导第二步,在这里,要选择将虚拟机存在其他位置,因为你的C盘很有可能空间不足,我的位置放在了D盘新建目录内
38 |
39 | 
40 |
41 | 4. 在向导第三步内,选择第一代,第二代会有问题,具体原因不深究
42 |
43 | 
44 |
45 | 5. 在第四步内存设置,至少给2G内存,建议给4到8G,如果你本机内存很高的话,可以给4G以上
46 |
47 | 
48 |
49 | 6. 在第五步选择网桥,可以选择默认网桥,或者自动建立网桥,网桥就是选择一块本机网卡,用于共享主机上网
50 |
51 | 
52 |
53 | 7. 第六步是选择硬盘,或者创建硬盘,一般都选择创建,硬盘至少给20g以上,有条件可以多给一点,他会按照实际占用的硬盘存储,所以不用担心硬盘给多了
54 |
55 | 
56 |
57 | 8. 第七步是选择一个映像文件或者光盘驱动器来安装,可以直接用刚才下载的IOS文件
58 |
59 | 
60 |
61 | 9. 第八步是最后一步,用于确认你的配置,以上配置在以后都可以随时调整的,不用担心内存,硬盘给少了
62 |
63 | 
64 |
65 | 10. 点击确认后虚拟机就建立好了,接下来是Centos安装的步骤,这里的步骤和真机安装一致
66 |
67 |
68 | #### 安装Centos
69 | 1. 在Hyper-v管理器里,可以看见上一步建立的虚拟机,右键单击选择连接,或者双击,刚才建立的Centos7.5,会打开该虚拟机操作界面
70 |
71 | 
72 |
73 |
74 | 2. 点击开机,会打开对应服务器,在这个界面选择安装,如截图红圈所示
75 |
76 | 
77 |
78 | 3. 选择安装后,会看到类似截图所示的界面
79 |
80 | 
81 |
82 | 4. 在语言选择界面,选择中文,简体
83 |
84 | 
85 |
86 | 5. 上一步操作完毕就会进入安装主界面,需要注意的是截图所示红圈标注的部分
87 |
88 | 
89 |
90 | 6. 在软件选择界面,建议选择最小安装,并且所有选项,这样装好的系统是不带桌面程序的,只能通过终端操作
91 |
92 | 
93 |
94 | 7. 也可以选择带有gnome桌面的服务器,这样对于新手会友好一点
95 |
96 | 
97 |
98 | 8. 磁盘选择界面,打开,默认勾选不需要变动,点完成即可
99 |
100 | 
101 |
102 | 9. 选择完毕,点击开始安装按钮,就会进行安装了,会看到安装过度界面
103 |
104 | 
105 |
106 | 10. 在安装过度界面,必须设置root密码,否则会无法使用系统
107 |
108 | 
109 |
110 | 11. 安装完毕后,系统会自动重启,到许可证授权页面,只有同意许可以后才能进入系统
111 |
112 | 
113 |
114 | 12. 配置网络和主机名,打开网络即可, 他会自动获取IP地址
115 |
116 | 
117 |
118 | 13. 在欢迎界面,默认会选择汉语,可以直接进入系统
119 |
120 | 
121 |
122 | 14. 其他界面不再熬述,用户配置界面,必须设置用户名,和密码
123 |
124 | 
125 |
126 | 15. 看到如下截图所示界面,那么恭喜你,安装完毕了
127 |
128 | 
129 |
130 |
131 |
--------------------------------------------------------------------------------
/运维文档/基于Docker安装和运行常用容器.md:
--------------------------------------------------------------------------------
1 | #### Docker 介绍
2 | Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,
3 | 然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
4 | 容器是完全使用沙箱机制,相互之间不会有任何接口。(来自百度百科)
5 |
6 | 简单来说,docker就是当前虚拟化技术的最佳实现方式
7 | 可以把docker理解为,一个运行在主机中的软件,因为他的完全是用进程来实现的,
8 | 可以把端口绑定到宿主机,便于访问
9 | 一个打包好的docker容器可以轻易的安装,复制,减轻了了环境安装的大量工作
10 |
11 |
12 | #### Docker使用步骤
13 |
14 | Docker的使用步骤一般为:
15 | 1. 搜索镜像
16 | 2. 下载镜像
17 | 3. 根据镜像启动容器(把镜像启动起来,就叫做容器)
18 | 4. 开启防火墙对应端口
19 |
20 | #### Docker常用操作命令
21 | 1. docker --version 查看docker版本
22 | 2. docker ps 查看docker 容器列表
23 | 3. docker run 启动docker容器
24 | 4. docker images 查看docker镜像列表
25 | 5. docker start 启动已关闭的容器
26 | 6. docker exec -it 容器id /bin/bash 进入容器的终端
27 |
28 | 更多的docker 教程,推荐看以下链接的文档
29 |
30 | [Docker从入门到实践](https://legacy.gitbook.com/book/yeasy/docker_practice/details)
31 |
32 | #### 本次安装软件列表
33 | 1. redis
34 | 2. mongodb
35 | 3. mysql
36 |
37 | 安装步骤
38 |
39 | 1. 安装redis
40 | 1. 终端中输入:docker search redis
41 | 2. 根据列表中的结果,一般是选择下载量最大的那个
42 | 3. 如图所示,这里第一个就是下载量最大的
43 |
44 | 
45 |
46 | 4. 输入:docker pull redis
47 | 5. 如图所示,将开始下载redis的镜像
48 |
49 | 
50 |
51 | 2. 安装mongodb
52 |
53 | 和上一步一样,这里就不细说搜索部分
54 | 1. 输入:docker pull mongo就会开始安装mongodb
55 |
56 | 3. 安装mysql
57 |
58 | 1. 输入:docker pull mysql就会开始安装mysql
59 |
60 |
61 | 是不是感觉相当简单,是的,这就是docker的魅力
62 | 4. 安装完毕后,检查镜像列表,是否正确
63 |
64 | 
65 |
66 | 如图所示,已经安装完毕,redis,mysq,mongod都在本地镜像列表里了
67 |
68 | #### 运行容器
69 | 1. 运行redis
70 | ```
71 | docker run -p 6379:6379 --name redis -v /d/docker/data/redis:/data -d --restart=always redis redis-server --appendonly yes
72 | ```
73 | 2. 运行mongodb
74 | ```
75 | docker run --name cool-mongo -p 27017:27017 -d --restart=always mongo
76 | ```
77 | 3. 运行mysql
78 |
79 | ```
80 | sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d --restart=always mysql --lower_case_table_names=1
81 | ```
82 | 上面最后一句话的意思是,忽略表名大小写
83 |
84 | 如果出现时区问题,请加上参数:
85 | ```
86 | -e TZ=Asia/Shanghai --default-time_zone='+8:00'
87 | ```
88 |
89 | 完整的连接字符串是:
90 | ```
91 | sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -p 3306:3306 -d --restart=always mysql --lower_case_table_names=1
92 | ```
93 |
94 | 可选参数,把data放在宿主机
95 | ```
96 | sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -p 3306:3306 -d --restart=always mysql --lower_case_table_names=1 -v D:/docker/data/mysql:/var/lib/mysql -v D:/docker/data/mysql/conf:/etc/mysql/conf.d
97 | ```
98 |
99 |
100 | Docker启动,默认后会出现无法登陆的问题,如下面所示:
101 | ```
102 | 2059 : Authentication plugin 'caching_sha2_password' cannot be loaded:
103 | ```
104 | - 解决步骤:
105 | - 运行docker ps 查看容器列表,找到对应的mysql
106 | - docker exec -it 容器序列号(那串英文数字的序列) /bin/bash,例如:
107 | ```
108 | docker exec -it 80334sdfj /bin/bash
109 | ```
110 | - 进入容器后,输入:mysql -u root -p ,会提示输入密码,输入:123456,可以看到提示符变成了mysql>
111 | - 在这种状态下输入:
112 | ```
113 | ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY ‘123456’;
114 | ```
115 | - 输入exit,退出mysql,再输入exit,退出镜像 即可
116 |
117 |
118 |
119 |
120 | 4. 运行禅道
121 | ```
122 | mkdir -p /srv/zbox && docker run -d -p 8090:80 -p 3306:3306 \
123 | -e USER="root" -e PASSWD="123456" \
124 | -e BIND_ADDRESS="false" \
125 | -e SMTP_HOST="163.177.90.125 smtp.exmail.qq.com" \
126 | -v /srv/zbox/:/opt/zbox/ \
127 | --privileged=true \
128 | --name zentao-server \
129 | idoop/zentao:latest
130 |
131 | ```
132 |
133 | 5. 查看运行列表
134 | ```
135 | 输入:docker ps,查看当前运行的容器
136 | ```
137 | 
138 |
139 |
140 | #### 防火墙设置
141 |
142 | 默认情况下,是有防火墙的,如果不用可以关闭,但是强烈建议开启防火墙,只开放需要的端口白名单,这样会安全一点
143 |
144 | 在终端输入以下命令完毕,最后查看结果,如截图所示
145 | ```
146 | firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
147 | firewall-cmd --zone=public --add-port=8080/tcp --permanent
148 | firewall-cmd --zone=public --add-port=3306/tcp --permanent
149 | firewall-cmd --zone=public --add-port=27017/tcp --permanent
150 | firewall-cmd --zone=public --add-port=6379/tcp --permanent
151 | 处理完毕还需要重新读取配置,才可以生效
152 | firewall-cmd --reload
153 |
154 | ```
155 |
156 | 至此,docker的安装过程就结束了,本教程写的比较仓促,如果有疏漏,尽请谅解
157 |
158 |
--------------------------------------------------------------------------------
/运维文档/在纯净的Centos7.5下安装常用软件和Docker.md:
--------------------------------------------------------------------------------
1 | #### Centos基础知识
2 |
3 | Centos自带yum包管理器,可以利用yum安装卸载,更新常用软件
4 |
5 | yum安装需要一个软件来源地址,建议导入阿里的镜像地址,否则速度会很慢
6 |
7 | 常用的操作可以在gnome桌面完成,也可以用终端敲命令完成,本教程全部采用命令方式完成
8 |
9 | 建议开启虚拟机后,用windows下的ssh软件连接,而不是在虚拟机内敲命令
10 |
11 | Centos默认是有防火墙的,必须关闭或者设置规则打开对应端口,才能访问,默认会开启ssh端口(22)
12 |
13 | #### SSH软件选择
14 |
15 | SSH软件有很多,大多需要收费,免费好用的不多,这里推荐几款
16 | 1. Smartty,免费好用的ssh软件,上传,下载文件也很方便,就是界面不够美观
17 | 2. mobaxterm ,免费好用的ssh软件,免费版本不可商用,他还有收费版本,这个不考虑
18 | 3. zoc7,收费的ssh软件,异常强大好用,但是收费很贵,需要破解使用
19 | 4. xterm2,免费的ssh软件,界面很漂亮,也很简洁不多做介绍
20 | 5. xshell,putty,cywin这些很多,可以尝试下,不做说明了
21 | 6. git自带的gitbash也是一个很不错的ssh终端
22 |
23 | 由于本人只使用免费软件,不做破解,因此本教程适用于Smartty,Smartty安装过于简单,这里就不提供教程了
24 |
25 | 更新一波,最新发现win10自带的power shell也可以始用ssh,这下就不用安装任何额外的工具了
26 |
27 | 使用方式很简单:
28 |
29 | ssh username@192.168.1.16 输入密码后就连接完毕了
30 |
31 | [Smartty下载地址](http://smartty.sysprogs.com/)
32 |
33 |
34 | #### Smartty使用方法
35 |
36 | 1. 打开主界面,新增SSH连接,在alias输入别名
37 |
38 | 
39 |
40 | 2. 菜单栏-tools-settings,设置成如截图所示
41 |
42 | 
43 |
44 | 3. 在终端界面输入命令,操纵centos
45 |
46 | 
47 |
48 | 4. 文件传输界面,在菜单-SCP菜单,可以看到Download和Upload就是用来传输文件的,可以选择centos的路径和本地路径
49 |
50 | 
51 |
52 |
53 | #### 常用的centos命令介绍
54 |
55 | 对于linux运维人员,必须掌握常用的命令,大部分命令都可以在百度找到,这里只列出一小部分
56 | 1. ls 查看文件夹下的文件和目录
57 | 2. cd 切换目录
58 | 3. vi,vim,编辑文件,如果没有则创建
59 | 4. cat展示文本文件的内容
60 | 5. mkdir 创建目录
61 | 6. touch 创建文件
62 | 7. rm 删除文件或者文件夹,慎用
63 | 8. copy(简写cp) 复制文件
64 | 9. move(简写mv) 移动文件
65 | 10. ping 测试本地是否能打开某个域名
66 | 11. curl url 向指定的网址发起访问
67 | 12. wget 下载文件
68 |
69 |
70 |
71 | 更详细的命令可以百度,这里给出两个链接
72 |
73 | [1. Centos7常用命令](https://blog.csdn.net/qq_40087415/article/details/79367151)
74 |
75 | [2. Centos常用命令](https://www.cnblogs.com/benbenduo/p/3864809.html)
76 |
77 |
78 | #### 导入阿里云的软件源
79 | 1. 在终端输入:
80 |
81 | ```
82 | sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
83 | ```
84 | 2. 如果网络能正常连接的话,就能看到提示成功的标志
85 |
86 | #### Centos服务器安装SSH服务
87 | 1. 在终端输入:
88 | ```
89 | sudo yum install openssh*
90 | ```
91 | 进行安装
92 |
93 |
94 | 2. 在终端输入命令,加入开机启动
95 | ```
96 | sudo systemctl enable sshd
97 | sudo systemctl start sshd
98 |
99 | ```
100 |
101 | #### 用ssh连接Centos
102 |
103 | 要连上Centos,首先要知道对应Centos的IP地址,获取方法是在终端输入ip address,查看到对应的ip地址,然后在Smartty里新建ssh连接,输入地址,用户密码,连接
104 |
105 | 1. 在Centos桌面,右键单击-打开终端
106 | 2. 在终端输入命令:ip address show eth0 (如果找不到eth0也可以 只输入ip address)
107 | 3. 如截图所示,IP地址为192.168.31.120
108 |
109 | 
110 |
111 |
112 | 4. 打开Smartty,新增SSH连接,在其中IP地址输入192.168.31.120,用户密码输入对应的即可
113 |
114 |
115 | #### 安装常用软件(在终端安装,不在熬述终端的使用方法)
116 | 1. 安装vim,vim是终端操作最常用的软件,必须安装
117 | ```
118 | sudo yum install vim -y
119 | ```
120 | 2. 安装nginx并启动
121 | ```
122 | # 安装基础软件
123 | sudo yum install epel-release -y
124 | # 安装nginx
125 | sudo yum install nginx -y
126 |
127 | # 启动:
128 |
129 | sudo systemctl start nginx
130 | sudo systemctl enable nginx
131 | ```
132 | 3. 安装docker
133 | ```
134 | # 安装基础软件:
135 |
136 | sudo yum install -y yum-utils device-mapper-persistent-data lvm2
137 |
138 | # 配置阿里的镜像仓库
139 | sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
140 |
141 | # 安装Docker
142 |
143 | sudo yum makecache fast
144 |
145 | sudo yum -y install docker-ce
146 |
147 |
148 | # 把默认用户加入docker用户组
149 | 由于默认情况下,你新建的用户不是管理员用户,因此每次始用docker命令,都需要输入sudo docker xxx
150 | 这样很不方便,因此需要这步操作
151 |
152 | # 应用用户加入docker用户组
153 | sudo usermod -aG docker ${USER}
154 | # 重启docker服务
155 | sudo systemctl restart docker
156 | # 切换或者退出当前账户再从新登入
157 | su root 切换到root用户
158 | su ${USER} 再切换到原来的应用用户以上配置才生效
159 | 配置完毕测试下就知道了
160 |
161 | ```
162 |
163 | 4. 安装docker-compose
164 | ```
165 | 必须切换到root用户才能安装
166 |
167 | #安装
168 | sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
169 |
170 | #授权命令
171 | sudo chmod +x /usr/local/bin/docker-compose
172 |
173 | ```
174 |
175 | 5. 安装.Net CoreSDK
176 | ```
177 | # 导入rpm源
178 | sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
179 | # 更新软件包
180 | sudo yum -y update
181 | # 安装SDK
182 | sudo yum -y install dotnet-sdk-2.1
183 | # 校验是否安装成功
184 | dotnet --version
185 |
186 | ```
187 |
188 |
--------------------------------------------------------------------------------
/DevOps/SonarQubeUse.md:
--------------------------------------------------------------------------------
1 | # SonarQube怎么使用
2 | 上一篇主要讲了Sonar是怎么安装运行的, 这一篇主要讲怎么使用
3 |
4 | ## 配置项目
5 | SonarQube是以项目为单位运行的,所以要先配置项目, 然后基于项目的地址去扫描并上传结果
6 | 下面以本地项目为例, 说明一下怎么配置本地的项目, 不集成git服务器
7 |
8 | ### 创建项目
9 | 点击下图所示的 创建项目图标, 就会打开创建项目界面
10 | 
11 |
12 | 选择创建项目的目标
13 | 
14 | 这张图可以看到, 其实可以直接集成git服务器的,不过这里先用本地来处理
15 |
16 | 给项目取名CoreShop
17 | 
18 |
19 | 这一步是问你是否要集成CI
20 | 
21 |
22 | 这个界面会问你怎么创建访问的project 级别的token
23 | 
24 |
25 | 这一步需要记录生成后的token, 这个token是项目级别的, 只能用在这个项目上,不能在其他项目使用
26 | 
27 |
28 | ```
29 | sqp_c88167212d842c08915f951614e96cb942e95fb2
30 | ```
31 |
32 | 这一步是选择一个开发语言, 对应你项目的语言就好
33 | 
34 |
35 | 下面是选择了.Net后的结果, 这里会展示怎么扫描.Net项目
36 | 
37 |
38 | 设置好项目以后, 在主界面就能看到有两个项目了,可以看到新创建的项目目前没有结果, 因为还没有扫描
39 | 
40 |
41 |
42 |
43 |
44 | ## 扫描结果说明
45 | SonarQube扫描后会把结果上传到服务器, 会在服务器产生报表, 方便查看哪一行代码出现了哪种问题, 这部分列出来了所有代码存在的问题和缺陷
46 | 下面会展开说明
47 |
48 | ### Dashboard
49 | 在项目页面可以看到多个项目的简单预览
50 | 
51 |
52 | 下图可以看到一个项目的扫描结果
53 | 
54 | 这里可以看到下列信息:
55 | - Bugs
56 | - Vulnerabilities
57 | - Security Hotspots
58 | - Debt
59 | - Code Smells
60 | - Unit Tests converage
61 | - Duplications
62 |
63 |
64 |
65 | ### Bugs
66 | 这个问题叫做Bugs是因为可能造成Bug,有安全隐患在
67 |
68 | 下面是bugs的详细信息
69 | 
70 |
71 | 如果打开第一个错误, 就能看到具体的信息:
72 | 
73 | 这里的问题是: 划线的变量, 始终不为空,所以等式不成立
74 |
75 | 这里可以过滤不同的数据:
76 | - Bug
77 | - Vulnerability
78 | - Code Smell
79 | 
80 |
81 | 这里可以过滤语言,通过下图可以看到,其实大部分问题都是前端Web页面造成的
82 | 
83 |
84 | 过滤后的Bugs只有16个了
85 | 
86 |
87 |
88 |
89 | ### Vulnerabilities
90 | 这个分类可以叫做缺陷或者漏洞, 也是比较严重的问题,不过用来测试的项目目前没有问题
91 |
92 |
93 | ### Security Hotspots
94 | 这个分类叫做安全热点,可以看到都是和安全有关的问题
95 | 
96 |
97 | 比如不安全的随机数
98 | 
99 |
100 |
101 |
102 | ### Debt
103 | 技术债务指的是在开发过程中,由于各种原因导致的代码质量,缺陷, 漏洞, 硬编码等等不好的代码,汇总起来都叫做技术债务
104 | 
105 | 这里列出了修复当前文件,需要花费的时间, 还是比较靠谱的计算
106 |
107 |
108 | ### Code Smells
109 | 这块是SonarQube的比较重点的功能了, 这里主要包括了下面几类问题:
110 | 
111 | 具体的解说这里就不重复了, SonarQube官网有详细的说明
112 |
113 |
114 | ### Unit Test
115 |
116 | 单元测试覆盖率也是一个重要的指标, 在外企会比较看重, 国内企业不一定会在意
117 | 
118 |
119 |
120 | ## SonarQube 其他功能说明
121 | ### Issues
122 | 这个界面就是一个查询界面, 所有的问题都汇总在这里
123 | 
124 | 可以review问题, 标记已解决, 筛选开发语言, 等等
125 |
126 |
127 | ### Measures
128 | 这个界面主要是一些计算,指标等,可以根据多次扫描结果出分析图
129 | 
130 |
131 | 这里可以看到大文件的管理, 如果一个文件行数过多,这里就会提示
132 | 
133 |
134 |
135 | ### Code
136 | 这个界面是以代码文件角度展开的
137 | 
138 |
139 |
140 | ### Project Settings
141 |
142 | 这个界面特别说明下, 当前项目的所有扫描活动, 在这个界面都可以看到
143 | 
144 |
145 |
146 | ### Activity
147 | 这个界面是活动记录, 包括所有的扫描活动
148 | 
149 |
150 |
151 |
152 | ## 集成Git服务器
153 | SonarQube还可以集成在Git服务器上, 在每次合并代码的时候都进行扫描, 实现自动化处理, 这个本文稍后会给出说明,敬请期待
154 |
--------------------------------------------------------------------------------
/DevOps/SonarQube.md:
--------------------------------------------------------------------------------
1 | ## SonarQube
2 |
3 | Sonar 主要实现的功能是检查代码质量, 比如说对于C#来说一共有260条代码规则, 会检测出有缺陷的写法
4 | 结合dotcover 扫描 Unit Test能看到代码的覆盖率.
5 | 可以设定代码质量基线, 如果不达标的代码可以拒绝合并
6 |
7 | ### 运行环境
8 | 我的Linux环境是Arch Linux, 本文所检查的语言是以C#为主, 所以以下的一些说明, 都是以Arch Linux和.Net 环境为主
9 |
10 | #### Docker
11 | Docker是什么本文不再赘述了, 当前文档的Sonar Server使用的环境就是在Docker里, 因为方便管理, 部署快速.
12 | 基于下面的Docker-Compose文档, 不到半小时就能启动一个完整的SonarQube Server环境了
13 |
14 | #### Docker-Compose
15 | Docker-Compsoe是用来编排Docker容器的, 所以必须安装以下, 下面给出安装方法
16 |
17 | ```shell
18 | sudo pacman -S docker-compose
19 | ```
20 | 查看是否安装成功:
21 | ```shell
22 | docker-compose --version
23 | ```
24 |
25 |
26 | #### Java环境
27 | Java环境主要是用于Sonar Scanner这个扫描工具的, 由于Arch Linux自带了OpenJDK环境,所以这里不再赘述
28 |
29 | #### .Net SDK
30 | 由于用的项目是.Net的项目, 所以这里的基础代码运行环境也是以.Net SDK为主
31 | 如何安装环境? 使用下面的代码会安装最新版的9.0
32 |
33 | ```shell
34 | sudo pacman -S dotnet-sdk
35 | ```
36 | 查看是否安装成功:
37 | ```shell
38 | dotnet --version
39 | ```
40 |
41 |
42 | ## SonqrQube Server
43 |
44 | SonarQube有Cloud版本,和本地化部署的版本,可以查看官网的价格页面, 查看他们的区别,对于个人开发者是免费使用的
45 | 对于小团队的话, 价格看起来还可以, 当然也可以直接使用开源版本
46 |
47 |
48 | ### 下面是docker compose ,通过这个脚本就能一键启动SonarQube的Docker容器
49 | ```YAML
50 | version: "3"
51 |
52 | services:
53 | # SonarQube Database Service
54 | db:
55 | image: postgres:15 # Use a specific stable version like 15
56 | container_name: sonarqube_db
57 | environment:
58 | # !!! IMPORTANT: Change these default values for security !!!
59 | POSTGRES_USER: sonarqube
60 | POSTGRES_PASSWORD: Abc123456 # <-- CHANGE THIS PASSWORD
61 | POSTGRES_DB: sonarqube
62 | volumes:
63 | - db_data:/var/lib/postgresql/data # Persist database data
64 | restart: unless-stopped # Auto-restart unless explicitly stopped
65 |
66 | # SonarQube Application Service
67 | sonarqube:
68 | image: sonarqube:lts # Use the Long Term Support (LTS) version
69 | container_name: sonarqube_app
70 | ports:
71 | - "9000:9000" # Map host port 9000 to SonarQube container port 9000
72 | environment:
73 | # Configure SonarQube to connect to the PostgreSQL database
74 | # jdbc:postgresql://:/
75 | SONARQUBE_JDBC_URL: jdbc:postgresql://db:5432/sonarqube
76 | # !!! IMPORTANT: Use the same user and password as the database service !!!
77 | SONARQUBE_JDBC_USERNAME: sonarqube
78 | SONARQUBE_JDBC_PASSWORD: Abc123456 # <-- USE THE SAME PASSWORD
79 | # Configure Elasticsearch memory for SonarQube (adjust based on your resources)
80 | # Minimum 2GB RAM is generally recommended for SonarQube
81 | SONAR_SEARCH_JAVA_OPTS: "-Xmx1024m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError" # Example: 1GB heap
82 | volumes:
83 | - sonarqube_data:/opt/sonarqube/data # Persist SonarQube data
84 | - sonarqube_extensions:/opt/sonarqube/extensions # Persist plugins and extensions
85 | - sonarqube_logs:/opt/sonarqube/logs # Persist logs
86 | depends_on:
87 | - db # Ensure database starts before SonarQube
88 | restart: unless-stopped
89 |
90 | # Define named volumes for data persistence
91 | volumes:
92 | db_data:
93 | sonarqube_data:
94 | sonarqube_extensions:
95 | sonarqube_logs:
96 |
97 | ```
98 | 创建一个新的目录, 把上面的文件保存为yml格式的文件, 文件名: docker-compose.yml
99 |
100 | 如下面截图所示
101 | 
102 |
103 |
104 | ### 如何运行?
105 | 在终端敲下面的命令即可, 这个命令会自动查找当前目录的"docker-compose.yml"文件,并下载镜像和运行容器
106 |
107 | ```shell
108 | docker-compose up -d
109 | ```
110 | 执行后会看到自动下载了docker相关的镜像
111 | 
112 |
113 |
114 | 下面是Docker容器已经运行起来的截图
115 | 
116 |
117 |
118 | ### 默认的账号密码:
119 | 运行成功后,你会发现打开了登陆界面, 但是你不知道账号和密码, 如下图所示:
120 | 
121 | SonarQube的默认账号密码如下:
122 |
123 | ```
124 | 账号: admin
125 | 密码: admin
126 | ```
127 |
128 |
129 |
130 | ## Sonar Lint
131 | Sonar lint的作用是在IDE开发环境里扫描代码存在的问题,它是以IDE的插件形式存在的.
132 | 如果您购买了SonarQube的Cloud服务或者购买了企业版本地化部署, 那么就可以开启这个功能了.
133 | 这个功能其实和Rider, VisualStudio的代码提示有一些冲突, 可以用用看, 但是不推荐, 这里不多做介绍
134 |
135 | 这个插件现在现在已经改名为:SonarQube For IDE, 如下图所示
136 | 
137 |
138 |
139 |
140 |
141 | ## Sonar Scanner
142 | Sonar Scanner是用来扫描代码质量, 扫描Unit Test ,扫描结束以后, 会把报告上传到指定的SonarQube服务器上
143 |
144 | ### 安装Sonar Scanner
145 |
146 | 想要正常扫描的话,必须安装SonarScanner, 这个软件可以通过dotnet tool这个工具安装, 下面给出了安装命令, 非常简单
147 |
148 | ```shell
149 | dotnet tool install --global dotnet-sonarscanner
150 | ```
151 | 设置dotnet tool的环境变量, 否则无法执行
152 |
153 | ```shell
154 | nano ~/.bashrc
155 | # 或者使用 vim
156 | # vim ~/.bashrc
157 |
158 | # Add dotnet tools to PATH
159 | export PATH="$PATH:$HOME/.dotnet/tools"
160 |
161 | # load env
162 | source ~/.bashrc
163 | ```
164 |
165 | 如果你使用的是ZSH 的话, 需要修改~/.zshrc ,这里不再赘述了
166 |
167 | ### Project设置
168 | SonarQube是以目录为单位工作的, 需要在SonarQube里创建一个项目,所以这里必须先配置项目
169 | 
170 |
171 | 设置完项目以后,会给到一个Project token, 不是必须用这个凭据来上传项目, 也可以使用User Token
172 |
173 | Project Token :
174 | ```shell
175 | sqp_54ece4e750e93af9b97cb293eaed254bdb81554b
176 | ```
177 |
178 | Project Name: TestProject
179 |
180 |
181 | ### 扫描项目
182 |
183 | ```shell
184 | dotnet sonarscanner begin /k:"TestProject" /d:sonar.host.url="http://192.168.170.128:9000" /d:sonar.login="sqp_54ece4e750e93af9b97cb293eaed254bdb81554b"
185 | dotnet build
186 | dotnet sonarscanner end /d:sonar.login="sqp_54ece4e750e93af9b97cb293eaed254bdb81554b"
187 | ```
188 |
189 |
190 |
191 |
192 |
193 |
194 | # 如何查看和分析扫描结果
195 |
196 | ## [SonarQube的结果如何分析](SonarQubeUse.md)
197 |
--------------------------------------------------------------------------------
/运维文档/Mosquitto安装使用.md:
--------------------------------------------------------------------------------
1 | ## mosquitto
2 | ### 源码下载
3 | [下载](http://mosquitto.org/files/source/)
4 |
5 | ### 解压
6 |
7 | > tar -zxvf [下载的包]
8 | >
9 |
10 |
11 | ### 安装前所需要依赖的包
12 |
13 | > yum install gcc gcc-c++ libstdc++-devel
14 | >
15 | >yum install openssl-devel -y
16 | >
17 | >yum install c-ares-devel -y
18 | >
19 | >yum install uuid-devel -y
20 | >
21 | >yum install libuuid-devel -y
22 | >
23 | ### 安装
24 |
25 | 保证以上的都成功了
26 | > cd mosquitto
27 | >
28 | > make
29 | >
30 | > make install
31 | >
32 |
33 | ### 启动
34 | >
35 | > cd /etc/mosquitto
36 | >
37 | > cp mosquitto.conf.example mosquitto.conf
38 | >
39 | > //后台执行 建议第一次 去掉-d 执行 可以查看问题
40 | >
41 | > mosquitto -c /etc/mosquitto/mosquitto.conf -d
42 | >
43 | > // 生产环境启动方式
44 | >
45 | > // 上述命令放在run.sh脚本中
46 | >
47 | > nohup ./run.sh > /dev/null 2>&1 &
48 |
49 | #### 日志问题
50 |
51 | [参考](https://blog.csdn.net/houjixin/article/details/72654693)
52 |
53 | ### 启动参数设置
54 |
55 | 如果启动报错 ,可能就可以修改 端口 或者 其他的配置项 解决
56 |
57 | ```properties
58 | # =================================================================
59 | # General configuration
60 | # =================================================================
61 |
62 | # 客户端心跳的间隔时间
63 | #retry_interval 20
64 |
65 | # 系统状态的刷新时间
66 | #sys_interval 10
67 |
68 | # 系统资源的回收时间,0表示尽快处理
69 | #store_clean_interval 10
70 |
71 | # 服务进程的PID
72 | #pid_file /var/run/mosquitto.pid
73 |
74 | # 服务进程的系统用户
75 | #user mosquitto
76 |
77 | # 客户端心跳消息的最大并发数
78 | #max_inflight_messages 10
79 |
80 | # 客户端心跳消息缓存队列
81 | #max_queued_messages 100
82 |
83 | # 用于设置客户端长连接的过期时间,默认永不过期
84 | #persistent_client_expiration
85 |
86 | # =================================================================
87 | # Default listener
88 | # =================================================================
89 |
90 | # 服务绑定的IP地址
91 | #bind_address
92 |
93 | # 服务绑定的端口号
94 | #port 1883
95 |
96 | # 允许的最大连接数,-1表示没有限制
97 | #max_connections -1
98 |
99 | # cafile:CA证书文件
100 | # capath:CA证书目录
101 | # certfile:PEM证书文件
102 | # keyfile:PEM密钥文件
103 | #cafile
104 | #capath
105 | #certfile
106 | #keyfile
107 |
108 | # 必须提供证书以保证数据安全性
109 | #require_certificate false
110 |
111 | # 若require_certificate值为true,use_identity_as_username也必须为true
112 | #use_identity_as_username false
113 |
114 | # 启用PSK(Pre-shared-key)支持
115 | #psk_hint
116 |
117 | # SSL/TSL加密算法,可以使用“openssl ciphers”命令获取
118 | # as the output of that command.
119 | #ciphers
120 |
121 | # =================================================================
122 | # Persistence
123 | # =================================================================
124 |
125 | # 消息自动保存的间隔时间
126 | #autosave_interval 1800
127 |
128 | # 消息自动保存功能的开关
129 | #autosave_on_changes false
130 |
131 | # 持久化功能的开关
132 | persistence true
133 |
134 | # 持久化DB文件
135 | #persistence_file mosquitto.db
136 |
137 | # 持久化DB文件目录
138 | #persistence_location /var/lib/mosquitto/
139 |
140 | # =================================================================
141 | # Logging
142 | # =================================================================
143 |
144 | # 4种日志模式:stdout、stderr、syslog、topic
145 | # none 则表示不记日志,此配置可以提升些许性能
146 | log_dest none
147 |
148 | # 选择日志的级别(可设置多项)
149 | #log_type error
150 | #log_type warning
151 | #log_type notice
152 | #log_type information
153 |
154 | # 是否记录客户端连接信息
155 | #connection_messages true
156 |
157 | # 是否记录日志时间
158 | #log_timestamp true
159 |
160 | # =================================================================
161 | # Security
162 | # =================================================================
163 |
164 | # 客户端ID的前缀限制,可用于保证安全性
165 | #clientid_prefixes
166 |
167 | # 允许匿名用户
168 | #allow_anonymous true
169 |
170 | # 用户/密码文件,默认格式:username:password
171 | #password_file
172 |
173 | # PSK格式密码文件,默认格式:identity:key
174 | #psk_file
175 |
176 | # pattern write sensor/%u/data
177 | # ACL权限配置,常用语法如下:
178 | # 用户限制:user
179 | # 话题限制:topic [read|write]
180 | # 正则限制:pattern write sensor/%u/data
181 | #acl_file
182 |
183 | # =================================================================
184 | # Bridges
185 | # =================================================================
186 |
187 | # 允许服务之间使用“桥接”模式(可用于分布式部署)
188 | #connection
189 | #address [:]
190 | #topic [[[out | in | both] qos-level] local-prefix remote-prefix]
191 |
192 | # 设置桥接的客户端ID
193 | #clientid
194 |
195 | # 桥接断开时,是否清除远程服务器中的消息
196 | #cleansession false
197 |
198 | # 是否发布桥接的状态信息
199 | #notifications true
200 |
201 | # 设置桥接模式下,消息将会发布到的话题地址
202 | # $SYS/broker/connection//state
203 | #notification_topic
204 |
205 | # 设置桥接的keepalive数值
206 | #keepalive_interval 60
207 |
208 | # 桥接模式,目前有三种:automatic、lazy、once
209 | #start_type automatic
210 |
211 | # 桥接模式automatic的超时时间
212 | #restart_timeout 30
213 |
214 | # 桥接模式lazy的超时时间
215 | #idle_timeout 60
216 |
217 | # 桥接客户端的用户名
218 | #username
219 |
220 | # 桥接客户端的密码
221 | #password
222 |
223 | # bridge_cafile:桥接客户端的CA证书文件
224 | # bridge_capath:桥接客户端的CA证书目录
225 | # bridge_certfile:桥接客户端的PEM证书文件
226 | # bridge_keyfile:桥接客户端的PEM密钥文件
227 | #bridge_cafile
228 | #bridge_capath
229 | #bridge_certfile
230 | #bridge_keyfile
231 |
232 | ```
233 |
234 |
235 |
236 | ### 测试
237 |
238 | > cd ./mosquitto/client
239 | >
240 | >//订阅topic“test-topic”
241 | >
242 | >./mosquitto_sub -h 127.0.0.1 -p 1883 -t "test-topic"
243 | >
244 | >//向topic“test-topic”发送一条消息:hello jason
245 | >
246 | >./mosquitto_pub -h 127.0.0.1 -p 1883 -t "test-topic" -m "hello jason"
247 |
248 |
249 |
250 | ## 问题
251 | ### 1. Invalid user 'mosquitto'
252 |
253 | > vim mosquitto.conf
254 | >
255 | > 增加 当前用户
256 | >
257 | > user root
258 | >
259 |
260 |
261 | ### 2. ./mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
262 |
263 | > 在执行 ./mosquitto_sub 的过程会报一个错
264 | >
265 | >执行以下命令
266 | >
267 | >sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
268 | >
269 | >
270 | >ldconfig
271 | >
272 | >再次执行 ./mosquitto_sub 就行了
273 |
274 |
--------------------------------------------------------------------------------
/AI/Deepseek.md:
--------------------------------------------------------------------------------
1 | ### Introduce
2 | The purpose of writing this article is to run a large model on a laptop computer, similar to the effect of achieving online AI, such as Doubao, Baidu Wenxin Word and other AI tools
3 |
4 | The installation part of this article is only suitable for beginners with less foundation, and the master can ignore this link.
5 |
6 | For reasons you all know, many of the actions in this article require a ladder to navigate.
7 |
8 |
9 |
10 | #### Required software
11 |
12 | Below is a list of the required sofware
13 | - python
14 | - pip
15 | - ollama
16 | - open-webui
17 |
18 |
19 |
20 | ##### Python
21 |
22 | The python environment is used to run the open-webui of the client, which can be used instead of the ollama terminal
23 | pip is the package manager needed to install python
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | ##### Ollama
33 |
34 | Ollama is a large model management platform that provides everything you need to download and run large models.
35 |
36 | It only takes very simple steps to run large models on the computer
37 |
38 |
39 |
40 | ##### Open-webui
41 |
42 | Usually, after you install ollama, you run the model and can only type text in the terminal, which is not too convenient to use, so you need an interface similar to other web version of AI tools, here it is recommended to use the open-webui program written in python
43 |
44 |
45 |
46 |
47 | #### Destination
48 |
49 | The goal of this article is to run deepseek's r1 1.5b model on a laptop, but it also applies to other models included on the ollama platform
50 |
51 |
52 |
53 |
54 |
55 | ### Installation
56 |
57 | This section explains how to install the required software
58 | Since I only have windows at hand, here is how to install windows
59 |
60 | #### Python & pip
61 |
62 | ##### Install python
63 | Go to the official python [website](https://www.python.org/) to download the installation package, and select this version here:
64 |
65 | Click Download to install
66 | 
67 |
68 | 
69 |
70 | The installation method is a point-and-click next and the next step is fine.
71 |
72 | Input below command
73 | ~~~
74 | python
75 | ~~~
76 | If you see below screenshot, the python install is completed.
77 | 
78 |
79 |
80 | ##### Install pip
81 |
82 | For windows users, you just need to set the environment variable and pip is installed.
83 |
84 |
85 |
86 | Follow the steps in the screenshot below to set the environment variables
87 |
88 | 
89 |
90 | 
91 |
92 | 
93 |
94 | 
95 |
96 | Below is the environment variables for Python and PIP
97 | 
98 |
99 | Input below command
100 |
101 | ~~~
102 | pip --version
103 | ~~~
104 |
105 | If you see below screenshot, the pip install is completed.
106 | 
107 |
108 |
109 |
110 |
111 |
112 | ##### Mirror image
113 | What is a mirror image?
114 | For some reason, foreign websites cannot be accessed in the country, so you need to set up a domestic mirror site, otherwise pip will not work properly
115 |
116 |
117 |
118 | The following uses [Tsinghua](https://mirrors.tuna.tsinghua.edu.cn/help/pypi) Source as an example to set an image
119 |
120 | Input the follwing command
121 | ~~~
122 | pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
123 | ~~~
124 |
125 |
126 | #### Ollama
127 | Open ollama making address: [https://github.com/ollama/ollama](https://github.com/ollama/ollama)
128 |
129 | Find the Release section on the right and click to select the latest release
130 |
131 | 
132 |
133 | Select the version below on the page that opens
134 |
135 | 
136 |
137 | ##### Environment variable
138 |
139 | Environment variables have been described above, here will not repeat, as shown in the screenshot below to set the environment variable is good
140 |
141 | 
142 |
143 |
144 | #### Open-webui
145 |
146 | This step depends on pip, so the python link above is a must.
147 |
148 | Input below command to install open-web-ui
149 | ~~~
150 | pip install open-webui
151 | ~~~
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 | ### Run large model
160 |
161 | #### Server
162 | Input below command.
163 | ~~~
164 | ollama serve
165 | ~~~
166 | You will see below command line.
167 |
168 | 
169 |
170 |
171 | #### Client
172 | Input below command.
173 | ~~~
174 | ollama run deepseek-r1:1.5b
175 | ~~~
176 | The first run of this command will perform the download and install steps, if it is already installed, the second run will not have it and will run the model directly
177 |
178 | 
179 |
180 |
181 | #### Web Client
182 | Input below command.
183 | ~~~
184 | open-webui serve
185 | ~~~
186 |
187 | The first run will download the front and back end and run, the second run will not download the step, will run directly
188 |
189 | 
190 |
191 | The first login will require an administrator account and password, as shown in the screenshot below
192 |
193 | 
194 |
195 | Here you can select all models locally
196 |
197 | 
198 |
199 | Then you can have fun with the big models
200 |
201 |
202 |
203 |
204 |
205 | ### Other Big Model
206 |
207 | Does the current article only apply to the big Deepseek model? Of course not, this article applies to all of the large models included in the Ollama platform, and almost all of the well-known open source large models have been included.
208 |
209 | So how do you use other big models?
210 |
211 | Open [Ollama's official site](https://ollama.com/), you can see all the big models they have included, and you can choose which ones you want
212 |
213 | 
214 |
215 | Here is the running command.
216 |
217 | 
218 |
219 |
220 | Download deepseek r1 7b model
221 | 
222 |
223 |
224 |
225 |
226 |
227 | ### Reference
228 |
229 | - [How to install ollama](https://ollama.readthedocs.io/quickstart/)
230 |
--------------------------------------------------------------------------------
/实战演练/自动化部署/main.md:
--------------------------------------------------------------------------------
1 | ### 本文的目标是在Centos 7.5版本下实现.Net Core部署步骤一
2 | ---
3 | 背景知识:
4 |
5 | 本文的目的在于,在Centos环境下,安装gitlab代码管理器,并配合gitlab-runner实现自动化部署,前后端项目均可
6 | 这次选择的是.Net Core后端项目
7 |
8 | 想要实现这个目标,需要掌握以下基本知识
9 | 1. Centos基本操作,linux常用命令
10 | 2. Git代码管理知识,常用命令
11 | 3. docker基础知识,docker-compose基础
12 | 4. nginx基础理论,配置文件相关知识
13 | 5. gitlab管理知识,基础操作
14 |
15 |
16 |
17 |
18 | ---
19 |
20 |
21 |
22 | 由于篇幅较长,因此拆分为几篇文章:
23 |
24 | ### 步骤一环境安装
25 |
26 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md)
27 |
28 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md)
29 |
30 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md)
31 |
32 |
33 | ---
34 | ### 步骤一环境安装
35 | 环境主要分为硬件环境和软件环境:
36 | 一. 硬件环境
37 | 1. 内存至少8g以上,16g更好,因为虚拟机至少需要4g或者更多的内存
38 | 2. CPU在i5即可,没有更多要求
39 | 3. 硬盘至少30g空间,用于安装软件,如果觉得紧张,那15g是必不可少的了
40 | 4. 安装时会安装两台服务器,一台用于gitlab服务器,另一台作为web服务器,这台硬件要求可以放低一点,因为只是测试环境,不存在高并发情况
41 | 5. 我的两台服务器,一台给了单CPU4核心,8G内存40G硬盘,另一台单核单CPU,2G内存20G硬盘
42 |
43 |
44 | 二. 软件环境
45 | 1. Centos7.5——linux操作系统
46 | 2. Nginx——反向代理
47 | 3. Dcoker——docker容器
48 | 4. Docker-compose——容器编排
49 | 5. Vim——文本编辑器,这个安装很简单,就不单独说明了
50 | 6. Firewall——防火墙
51 | 7. Docker下的Gitlab
52 | 8. Gitlab-Runner——自动化部署的客户端软件
53 | 9. .Net CoreSDK的安装
54 |
55 | 虚拟机我采用的是Vmware,Centos的ISO我是从官网下载的最新版1804,安装后显示centos为7.5版本
56 |
57 | #### 安装步骤
58 | 1. Centos安装
59 |
60 | 虚拟机安装过程比较简单,这里就不展开描述了,只说几个注意点
61 | 1. 安装过程中,软件安装的选项,选择最小安装,所有额外的软件都不安装,这样可以节省资源不说,而且装太多,会占用大量磁盘空间
62 | 2. 安装过程中记得把网卡打开,如果没有打开,可以在装完后,用终端,vi编辑 /etc/sysconfig/network-scripts/ifcfg-ns33 类似这个文件,最后的尾数可能不相同。设置:“ONBOOT=yes”,保存后重启,就会连上网络
63 | 3. 查看当前IP地址 ,centos7.5默认没有ifconfig命令,只能用ip addr查看
64 |
65 | 2. Windows下SSH软件的选择
66 |
67 | 推荐几款终端软件
68 | 1. gitbash,安装好git就会出现,这个终端出奇的好用,就是没有多终端管理之类的强化功能,这个软件是免费的
69 | 2. 如果你的操作系统是win10 ,可以在应用市场安装Ubuntu这个APP,这是一个完整的Linux子系统,可以直接在Power shell里使用它的终端界面
70 | 3. SecureCRT ,老牌终端程序了,不过这个是收费的
71 | 4. Zoc7,本来是Mac下的终端,超好用,目前发现Windows下同样提供了,比以上所的所有终端都好用,也是收费软件
72 | 5. SmarTTY,最近才发现的完全免费的ssh,出奇的好用,还免费试用,强烈建议试用
73 | 6. Putty 完全开源免费的,使用起来类似gitbash
74 | 7. Cygwin,这个东东能提供win下的整个linux环境,非常强大,他不仅仅是一个ssh
75 |
76 | 3. Docker的安装
77 |
78 | 由于有那堵墙在,所以国内的Linux软件下载速度都奇慢无比,所以,需要配置国内的镜像源,这里选择的是阿里的源
79 | 1. 先安装基础软件
80 | ```
81 | sudo yum install -y yum-utils device-mapper-persistent-data lvm2
82 | ```
83 | 2. 配置阿里的镜像
84 | ```
85 | sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
86 | ```
87 | 3. 安装docker
88 | ```
89 | sudo yum makecache fast
90 |
91 | sudo yum -y install docker-ce
92 | ```
93 | 4. 启动docker并设置开机启动
94 | ```
95 | sudo systemctl enable docker
96 | sudo systemctl start docker
97 | ```
98 | 5. 测试是否安装完毕,执行如下命令,正常会看到结果
99 | ```
100 | [root@localhost sysconfig]# docker images
101 | REPOSITORY TAG IMAGE ID CREATED SIZE
102 | gitlab/gitlab-ce latest b199bc7f269f 39 hours ago 1.47GB
103 | [root@localhost sysconfig]#
104 | ```
105 | 6. 把当前用户加入Docker用户组,这样每次使用docker就不用输入sudo docker了,只需要输入docker
106 | ```
107 | sudo gpasswd -a ${USER} docker
108 | # 重启docker服务
109 | sudo systemctl restart docker
110 | # 切换用户,或者注销登录
111 | su root 切换到root用户
112 | su ${USER} 再切换到原来的应用用户以上配置才生效
113 |
114 | ```
115 |
116 | 4. 安装docker-compose
117 | docker-compose安装比较简单,官方提供了curl地址
118 | ```
119 | #安装
120 | sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
121 |
122 | #授权命令
123 | sudo chmod +x /usr/local/bin/docker-compose
124 | ```
125 | 安装完毕后检验结果:
126 | ```
127 | [root@localhost sysconfig]# docker-compose --version
128 | docker-compose version 1.17.1, build 6d101fb
129 | [root@localhost sysconfig]#
130 |
131 | ```
132 |
133 | 5. 安装基于docker的gitlab
134 |
135 | 1. 编写docker-compose.yml文件
136 |
137 | 为什么要编写docker-compose文件?
138 |
139 | 这里简单说一下,docker-compose是docker官方提供的容器编排工具,上手比较简单,主要功能就是操作容器,包括容器的下载,运行,关闭,查看状态,等等,容器运行的一些参数,可以直接用docker-compose操作,不用每次都敲docker run xxx命令,docker-compose.yml是docker-compose的模板文件,会根据这个文件,执行一系列的命令,命令结果,默认在docker本地仓库内,和当前所处的目录无关
140 |
141 | 先创建目录和文件
142 | ```
143 | cd /home
144 | mkdir gitlab
145 | cd gitlab
146 | mkdir docker-compose.yml
147 | vim docker-compose.yml
148 |
149 | ```
150 | 文件内容:
151 | ```
152 | version: '3'
153 |
154 | services:
155 | gitlab:
156 | image: gitlab/gitlab-ce
157 | container_name: "gitlab"
158 | restart: always
159 | ports:
160 | - "8080:80"
161 | - "443:443"
162 | - "10022:22"
163 | environment:
164 | GITLAB_OMNIBUS_CONFIG: |
165 | external_url 'http://gitlab.baidu.com'
166 | gitlab_rails['gitlab_shell_ssh_port'] = 10022
167 | volumes:
168 | - '/srv/gitlab/config:/etc/gitlab'
169 | - '/srv/gitlab/logs:/var/log/gitlab'
170 | - '/srv/gitlab/data:/var/opt/gitlab'
171 | networks:
172 | default:
173 | driver: bridge
174 | ```
175 | 文件内容不多做解释,简单来说就是下载gitlab/gitlab-ce并运行,映射到主机的端口,注意这一句中的域名,下面的步骤会用到
176 | ```
177 | external_url 'http://gitlab.baidu.com
178 | ```
179 | 2. 运行docker-compose.yml文件
180 |
181 | 可以直接敲命令,不过为了不重复劳动,建议创建一个.sh文件,用于执行
182 | ```
183 | cd /home/gitlab/docker-compose
184 | mkdir run.sh
185 | vim run.sh
186 | # 文件内容:
187 | docker-compose up -d --build --force-recreate
188 | # 使用
189 | sh run.sh
190 | ```
191 | #正常会执行下载gitlab-ce的操作,大概1.6g左右
192 |
193 | 至此,一个在docker下运行的gitlab环境就安装完毕了,在环境跟本文一致的情况下,亲测有效,如有意外,自行解决
194 |
195 |
196 | *注意:以上所有操作,均在root用户下进行,下面也不再重复*
197 |
198 | 6. 配置防火墙
199 |
200 | 默认情况下,和以往不同,centos7安装了firewalld,而不是iptables,这个新防火墙我还不清楚好坏,但是操作起来简单多了,所以本次就不换成iptables了
201 | 1. 配置开放80,8080端口
202 | ```
203 | firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
204 | firewall-cmd --zone=public --add-port=8080/tcp --permanent
205 | ```
206 | 2. 重新载入
207 | ```
208 | firewall-cmd --reload
209 | ```
210 | 3. 查看是否生效
211 | ```
212 | [root@localhost sysconfig]# firewall-cmd --zone=public --query-port=80/tcp
213 | yes
214 | [root@localhost sysconfig]#
215 | ```
216 | 4. 测试gitlab,看是否已经可用
217 |
218 | 在宿主电脑,打开浏览器,输入:http://192.168.1.xxx:8080 (需要输入你虚拟机的IP地址) 如下截图所示就表示已经正常了
219 |
220 | 
221 |
222 | 如果这样,是不是就证明你的gitlab可以用了,不,还不行,因为你的域名是IP地址,并且带有端口,无法正常使用,我们还需要引入Nginx
223 |
224 | 7. 安装nginx并配置生效
225 |
226 | nginx的作用是端口,域名,路由,等等转发,也非常使用用于静态文件的web服务器,这里只用作域名转发
227 |
228 | 1. 安装Nginx
229 | ```
230 | # 安装基础软件
231 | sudo yum install epel-release
232 | # 安装nginx
233 | sudo yum install nginx
234 | ```
235 | 2. 启动nginx
236 | ```
237 | sudo systemctl start nginx
238 | sudo systemctl enable nginx
239 | ```
240 |
241 | 3. 修改nginx的配置文件
242 |
243 | nginx的配置文件分几种,一种是/etc/nginx/nginx.conf,核心配置文件,还有一种属于客户配置的文件,放在/etc/nginx/conf.d/ 这个目录下
244 |
245 | 修改nginx.conf,将其中的用户修改为root,这里是为了方便,正常应该建立nginx用户并授权,如截图所示
246 |
247 | 
248 |
249 | 在/etc/nginx/conf.d下添加一个配置文件
250 | ```
251 | [root@localhost nginx]# cd /etc/nginx/conf.d
252 | [root@localhost conf.d]# ls
253 | gitlab.conf
254 | [root@localhost conf.d]# vim gitlab.conf
255 | # 文件内容:
256 |
257 | server {
258 | listen 80;
259 | server_name gitlab.baidu.com;
260 | access_log /var/log/nginxhost.access.log main;
261 | location / {
262 | proxy_pass http://127.0.0.1:8080;
263 | }
264 | }
265 |
266 | ```
267 | 4. 重新读取nginx配置
268 |
269 | 输入命令,让新配置的配置文件生效
270 | ```
271 | [root@localhost conf.d]# nginx -s reload
272 | [root@localhost conf.d]#
273 |
274 | ```
275 |
276 | 5. 修改selinux,允许nginx通过
277 |
278 | 为什么要做这一步?
279 |
280 | 因为selinux默认会审核所有的安全策略,nginx默认是不给通过的,需要配置,否则就算nginx是正常运作的,但是还是会看到nginx502错误
281 |
282 | 配置命令:
283 | ```
284 | yum install policycoreutils-python
285 | sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
286 | semodule -i mynginx.pp
287 | ```
288 | 网上有很多种解决办法,但是最多的一种办法就是关闭selinux,为了安全,我不认为关闭是个好办法
289 | 6. 测试nginx是否生效
290 |
291 | 配置本地hosts文件,增加规则
292 | ```
293 | 192.168.20.139 gitlab.baidu.com
294 | ```
295 |
296 | 打开浏览器,输入地址:http://gitlab.baidu.com 看到下图所示,就表示已经全部成功了
297 |
298 | 
299 |
300 |
301 | 8. DotNet2.1 SDK环境安装
302 |
303 | 1. 导入rpm源
304 | ```
305 | sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
306 | ```
307 | 2. 更新软件包
308 | ```
309 | sudo yum -y update
310 | ```
311 | 3. 安装SDK
312 | ```
313 | sudo yum -y install dotnet-sdk-2.1
314 | ```
315 | 4. 校验是否安装成功
316 | ```
317 | dotnet --version
318 | ```
319 | 9. gitlab-runner的安装
320 |
321 | gitlab-runner是一个工作者程序,用于接受gitlab上版本更新小心,并触发本地自动化部署脚本的执行
322 |
323 | 安装步骤来自于[gitlab的官方网站](https://docs.gitlab.com/ee/README.html)
324 |
325 | 1. 安装软件
326 | ```
327 | # Linux x86-64
328 | sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
329 |
330 | # Linux x86
331 | sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
332 |
333 | # Linux arm
334 | sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
335 |
336 |
337 | ```
338 | 2. 授权
339 | ```
340 | sudo chmod +x /usr/local/bin/gitlab-runner
341 | ```
342 |
343 |
344 | 3. 验证是否安装成功
345 | ```
346 | 输入:gitlab-runner list
347 |
348 | ```
349 |
350 | 由于实际操作需要安装两台centos,1台作为gitlab服务器,另一台作为web服务器用于发布,安装过成大致一样,就不多做赘述了
351 |
352 | 至此,环境安装就已经全部结束了,由于篇幅较长,因此拆分成几个步骤了,下面提供了链接
353 | ---
354 |
355 | ### [步骤二gitlab配置](/实战演练/自动化部署/gitlabSetup.md)
356 |
357 | ### [步骤三.Net Core项目配置](/实战演练/自动化部署/aspnetcore.md)
358 |
359 | ### [步骤四实现自动化部署](/实战演练/自动化部署/CICD.md)
360 |
361 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 文档项目
2 |
3 | ### 文档导航
4 | ~~~
5 | 根据工作需要,本文档主要包括以下几类文档:
6 | ~~~
7 | - 实战演练
8 | - 运维类
9 | - AI相关
10 | - 研发类
11 | - 项目管理
12 | - 其他
13 |
14 | ~~~
15 | 根据我工作的变化,以后还会增加
16 |
17 | 可以看出我的工作多而且杂,穿插了运维,研发(前端,后端),没办法,劳碌命
18 | ~~~
19 | ---
20 |
21 | #### 实战演练
22 | - [在centos7.5环境下配置实现.net core项目的自动化部署](/实战演练/自动化部署/main.md)
23 |
24 |
25 | #### 运维相关
26 | - Centos
27 | - [安装Docker ce](/运维文档/Centos安装Docker.md)
28 | - [防火墙配置教程](/运维文档/Centos环境下防火墙配置.md)
29 | - [如何安装Docker下的禅道](https://blog.csdn.net/qq_28039297/article/details/78650552)
30 | - [如何安装Docker下的gitlab](https://www.cnblogs.com/xuezhigu/p/6555895.html)
31 | - [安装Docker下的Mysql,并启动](https://www.linuxidc.com/Linux/2017-09/146659.htm)
32 | - [安装Nodejs最靠谱的方式](https://www.cnblogs.com/betx/p/10347797.html)
33 | - [安装nginx](https://blog.csdn.net/oldguncm/article/details/78855000)
34 | - [安装Chrome浏览器](https://www.cnblogs.com/ianduin/p/8727333.html)
35 | - [安装Maven](/运维文档/安装Maven.md)
36 | - [安装JDK8](/运维文档/安装Java.md)
37 | - [Hyper-v环境下,磁盘空间满,扩容处理](/运维文档/虚拟机环境下Centos7磁盘扩容.md)
38 | - [如何分析网络流量,使用tcpdump](./运维文档/Centos下如何使用tcpdump抓包.md)
39 | - [Samba连接widnows](https://blog.csdn.net/yexiangcsdn/article/details/82867469)
40 | - [Samba挂载windows目录](/运维文档/samba如何和windows共享交互.md)
41 | - [Npm部署前端项目,权限问题解决](https://www.cnblogs.com/dunke/p/10224770.html)
42 | - [物理机扩充硬盘](/运维文档/Centos物理机如何扩展硬盘.md)
43 |
44 | - Ubuntu
45 | - [怎么安装最新的NodeJs(采用安装方式)](https://blog.csdn.net/chenyao1994/article/details/82495163)
46 | - [怎么安装Chrome](https://www.cnblogs.com/cainiaoaixuexi/p/9033350.html)
47 | - [分辨率高以后,解决缩放问题](http://tieba.baidu.com/p/5670339451)
48 | - [怎么安装Nodejs最新版(采用解压缩方式)](/运维文档/Ubuntu安装Nodejs.md)
49 | - [怎么安装最新版的git](/运维文档/Ubuntu安装Git最新版.md)
50 | - [更换软件源](https://blog.csdn.net/zhangjiahao14/article/details/80554616)
51 | - [安装搜狗输入法](https://blog.csdn.net/lupengCSDN/article/details/80279177)
52 | - [安装.NetCore](https://www.cnblogs.com/xyfy/p/9881855.html)
53 | - [安装Deepin,Wine软件](https://www.lulinux.com/archives/1319)
54 | - Manjaro & Arch
55 | - [新系统折腾](https://blog.csdn.net/github_39457740/article/details/84551304)
56 | - [精品教程,安装后要做的事](https://www.cnblogs.com/elinuxboy/p/10123877.html)
57 | - [搜狗输入法](https://www.jianshu.com/p/1cde4b7ec3c2)
58 | - [谷歌浏览器](https://blog.51cto.com/aurogon/2321871)
59 | - [Docker](https://blog.csdn.net/albertjone/article/details/80266700)
60 |
61 | - Docker
62 | - [连接到已经打开的容器](https://www.cnblogs.com/zhuxiaojie/p/5947270.html)
63 | - [删除Docker镜像](https://www.cnblogs.com/q4486233/p/6482711.html)
64 | - [如果国内无法安装docker-ce,可以使用阿里的镜像仓库](https://blog.csdn.net/yohoph/article/details/80079078)
65 | - [部署Spring Boot项目注意事项](/运维文档/SpringBoot部署.md)
66 | - [删除多余的虚悬镜像](/运维文档/虚悬镜像.md)
67 | - [Portainer.io介绍(Docker图形化管理工具)](https://www.cnblogs.com/river2005/p/8283700.html)
68 | - [限制Docker容器的日志容量-过大会导致磁盘空间满](/运维文档/Docker日志容量限制.md)
69 | - [容器导出迁移到其他机器](https://www.jianshu.com/p/4e862a2a2d03)
70 | - [给容器打标签-tag](https://www.cnblogs.com/weifeng1463/p/11190567.html)
71 | - [修改已经运行的容器参数](https://www.cnblogs.com/ExMan/p/11613148.html)
72 | - 镜像加速
73 | - [Docker阿里云加速器链接地址](https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)
74 | - [如何配置加速器](https://blog.csdn.net/bwlab/article/details/50542261)
75 | - [阿里云Docker加速服务,DockerForWindows](https://www.cnblogs.com/zhxshseu/p/5970a5a763c8fe2b01cd2eb63a8622b2.html)
76 | - [如何安装ELK](/运维文档/安装ELK.md)
77 | - [Elastic-Plugin插件安装教程](https://my.oschina.net/u/2342969/blog/2252364)
78 | - [安装Kafka](https://www.jianshu.com/p/9552871bb40a)
79 | - [安装RabbitMq](https://www.cnblogs.com/angelyan/p/11218260.html)
80 | - [安装RocketMq](https://zhuanlan.zhihu.com/p/133792711)
81 | - [安装Memcached](https://blog.csdn.net/zhi_ai_yaya/article/details/90510936)
82 |
83 | - Nginx
84 | - [nginx端口转发因为selinx无法运行,不关闭selinux的解决办法](https://blog.csdn.net/babys/article/details/54135438)
85 | - Windows
86 | - [安装DockerForWindows](https://baijiahao.baidu.com/s?id=1570288005533351&wfr=spider&for=pc)
87 | - [部署将Solr7.2.1部署在Tomcat9下](/运维文档/Solr7部署.md)
88 | - 通用Linux
89 | - [在Linux下生成SSH Key,然后免key登陆GitLab](https://blog.csdn.net/y1574406771/article/details/72676980)
90 | - Git相关
91 | - [工作中常见git问题汇总](/编程文档/git/main.md)
92 | - [gitlab迁移,备份恢复](https://www.cnblogs.com/breakering/p/9712040.html)
93 | - 自动化部署(CICD
94 | - Gogs
95 | - [Gogs安装注意事项](https://www.cnblogs.com/phpisbest/p/7000255.html)
96 | - [超详细教程](http://www.mdslq.cn/archives/1a623683.html)
97 | - Drone
98 | - [Drone安装调试简单教程](https://cloud.tencent.com/developer/article/1379546)
99 | - [Drone+gogs简化教程](https://www.jianshu.com/p/fe2521afddcf)
100 | - Rancher
101 | - Mysql
102 | - [Mysql导入导出](/运维文档/Mysql导入导出.md)
103 | - Tidb
104 | - [官网文档](https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb)
105 | - [Tidb介绍](https://www.jianshu.com/p/f076eab48a3a)
106 | - CockroachDB
107 | - [CockroachDB](http://www.cockroachchina.cn/)
108 | - MQTT
109 | - [mosquitto安装](/运维文档/Mosquitto安装使用.md)
110 | - ELK
111 | - [Elasticsearch RestFul使用教程](https://blog.csdn.net/gwd1154978352/article/details/82804942)
112 | - [Elasticsearch增删改查演练](/运维文档/Elasticsearch测试.md)
113 | - 堡垒机
114 | - [正在使用的堡垒机](https://www.jumpserver.org/#)
115 | ---
116 | #### 开发相关
117 | - Git
118 | - [同一台机器多个Git账号](/运维文档/git-two-account.md)
119 | - 后端语言
120 | - [Python](/Backend/Python/main.md)
121 | - [Python 快速入门](/Backend/Python/start.md)
122 | - Python 基础语法
123 | - Python 性能相关
124 | - Python 桌面程序
125 | - 相关文章收集
126 | - [Python包管理pip如何用上国内镜像](https://www.cnblogs.com/wqpkita/p/7248525.html)
127 | - [Python pip 国内镜像大全及使用办法](https://blog.csdn.net/madrabbit1987/article/details/81677114)
128 | - [Python新利器之pipenv](https://www.jianshu.com/p/00af447f0005)
129 | - [python实现opencv学习一:安装、环境配置、工具](https://blog.csdn.net/u011321546/article/details/79499598)
130 | - .NetCore
131 | - [使用VSCode开发.NetCore](https://www.cnblogs.com/yilezhu/p/9926078.html)
132 | - [千星项目OpenAuth.Net基于.Net Core 2.1的快速开发框架,核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。它的架构精良易于扩展,是中小企业的首选](https://github.com/yubaolee/OpenAuth.Core?tdsourcetag=s_pctim_aiomsg)
133 | - [NET, .NET CORE Open Source Workflow Engine 开源工作流引擎slickflow.com](https://github.com/besley/Slickflow?tdsourcetag=s_pctim_aiomsg)
134 | - [使用Identity Server 4建立Authorization Server (2)](https://www.cnblogs.com/cgzl/p/7788636.html)
135 | - [IdentityServer4实现Token认证登录以及权限控制](https://www.cnblogs.com/jaycewu/p/7791102.html)
136 | - [ASP.NET Core 认证与授权[4]:JwtBearer认证 ](https://www.cnblogs.com/RainingNight/p/jwtbearer-authentication-in-asp-net-core.html)
137 | - [IdentityServer4-从数据库获取User登录并对Claims授权验证(五)](http://www.imooc.com/article/270521?block_id=tuijian_wz)
138 | - [读取配置文件](https://www.cnblogs.com/Leo_wl/p/5709762.html)
139 | - [Nuget配置第三方源,缓存目录](https://cloud.tencent.com/developer/article/1342253)
140 | - [如何用指定端口运行项目](/编程文档/使用指定端口运行项目.md)
141 | - [EntityFreamework如何设置查询超时](/编程文档/EF设置查询超时.md)
142 | - [Jetbrains家出的良心产品,免费的反编译软件dotPeek](https://www.jetbrains.com/decompiler/)
143 | - ABP
144 | - [Abp官网](https://aspnetboilerplate.com/)
145 | - Java
146 | - IDEA部分
147 | - [IDEA使用教程](https://www.jianshu.com/p/9c65b7613c30)
148 | - [IDEA下Devtools配置](https://www.cnblogs.com/gmq-sh/p/7727367.html)
149 | - [IDEA下Maven安装配置](https://www.cnblogs.com/sigm/p/6035155.html)
150 | - Maven部分
151 | - [Windows下Maven配置](https://www.cnblogs.com/haimishasha/p/8504421.html)
152 | - SpringBoot
153 | - [纯洁的微笑官网](http://www.ityouknow.com)
154 | - [SpringBoot系列教程](https://www.cnblogs.com/ityouknow/p/5662753.html)
155 | - [SpringBoot官网-项目创建(类似ABP)](https://start.spring.io)
156 | - [springboot项目启动后,自动打开默认浏览器](https://blog.csdn.net/superlover_/article/details/88418934)
157 | - [整合Jpa范例](https://www.cnblogs.com/sam-uncle/p/8819478.html)
158 | - [Jpa多数据源范例](https://blog.csdn.net/abcwanglinyong/article/details/85924615)
159 | - 开源项目
160 | - [Spring平台整合activiti工作流引擎实例](https://github.com/shenzhanwang/Spring-activiti)
161 | - Activity
162 | - [手把手教你如何玩转Activiti工作流](https://blog.csdn.net/cs_hnu_scw/article/details/79059965)
163 | - [如何学习Activit-官网](https://www.activiti.org/userguide/)
164 | - [在线API文档](https://www.activiti.org/javadocs/index.html)
165 | - [Activiti进阶(一)--工作流(流程框架)](https://blog.csdn.net/qq_42112846/article/details/81106814)
166 | - ORM部分
167 | - [mybatis常用方法](https://blog.csdn.net/mr_chenjie_c/article/details/80068510)
168 | - [mybatis官网](https://mybatis.org/mybatis-3/zh/index.html)
169 | - [MybatisPlus官方文档](https://mp.baomidou.com/guide/)
170 | - [Jfinal文档](http://www.jfinal.com/)
171 | - 大数据
172 | - [ClickHouse深度揭秘](https://zhuanlan.zhihu.com/p/98135840)
173 | - [官网文档](https://clickhouse.tech/docs/zh/development/architecture/)
174 | - [携程用ClickHouse轻松玩转每天十亿级数据更新](https://www.sohu.com/a/332065480_411876)
175 | - [druid和clickhouse得比较](https://www.cnblogs.com/029zz010buct/p/12674287.html)
176 | - [Spark与Flink对比](https://www.cnblogs.com/tesla-turing/p/12509254.html)
177 | - JDK
178 | - [AwsCorretto-免费JDK](https://aws.amazon.com/cn/corretto/)
179 |
180 | - Go
181 | - [Go的gui库Walk简单使用](https://blog.csdn.net/bw761813/article/details/89673030)
182 | - [Walk库仓库](https://github.com/lxn/walk)
183 | - [go语言环境配置](https://blog.csdn.net/u013295518/article/details/78766086)
184 | - Nodejs
185 | - [koa2环境搭建](https://blog.csdn.net/weixin_42795831/article/details/82765912)
186 | - [Koa2开源项目]
187 | - Lua
188 | - [API网关Kong和KongA](https://segmentfault.com/a/1190000020375323?utm_source=tag-newest)
189 | - [开源API网关系统(Kong教程)入门到精通](https://www.jianshu.com/p/a68e45bcadb6)
190 |
191 | - 前端相关
192 | - Vue
193 | - Vue管理框架收集
194 | - [Vue-Element-Admin](https://panjiachen.gitee.io/vue-element-admin-site/zh/)
195 | - [D2Admin](https://d2admin.fairyever.com/#/index)
196 | - [飞冰](https://ice.work)
197 | - [基于Vue+Vuex+iView的电子商城网站](https://github.com/PowerDos)
198 | - [Vue资源汇总](https://www.cnblogs.com/zxyzm/p/10651124.html)
199 | - 其他前端框架
200 | - [MintUi](https://mint-ui.github.io/docs/#/)
201 | - [Vant](https://youzan.github.io/vant/#/zh-CN/list)
202 | - Angular
203 | - [Ng-alain](https://ng-alain.com/zh)
204 | - [Ng-zorro-antd](https://ng.ant.design/docs/introduce/zh)
205 | - React
206 | - Electron
207 | - [解决install.js卡死的问题](https://www.jianshu.com/p/eac8f37d6992)
208 | - 代码审查
209 | - [如何在团队中使用代码审查机制](https://www.cnblogs.com/kentalk/p/gitlab-code-review-tutorial.html)
210 | - 手机玩法
211 | - IOS
212 | - Android
213 | - termux
214 | - 安装后的配置(必做)
215 | - 如何安装常用软件
216 | - [安装Mysql](/运维文档/termux-mysql.md)
217 | - 安装Redis
218 | - 安装Java环境
219 | - 安装Nodejs
220 | - 在手机端运行ruoyi-vue这个开源项目
221 | ---
222 | #### 项目管理
223 |
224 | ---
225 |
226 | #### 其他
227 | ---
228 |
229 | ##### BI分析
230 | - [轻量级BI工具Superset的搭建与使用](https://www.jianshu.com/p/b02fcea7eb5b)
231 | - PowerBI
232 | - [powerbi官网](https://app.powerbi.cn/)
233 | - [Dax函数大全](https://www.powerbigeek.com/dax-functions-previousday/?f=1)
234 | ---
235 | ##### 免费软件推荐
236 | - [Mysql查询分析器MysqlWorkBench](https://dev.mysql.com/downloads/workbench/)
237 | - [免费的数据库查询工具HeidiSql](https://www.heidisql.com/download.php)
238 | - [连接Redis的开源客户端软件](https://github.com/qishibo/AnotherRedisDesktopManager/)
239 | - [MongoDb可视化工具Robo3T](https://robomongo.org/download)
240 |
241 |
242 | ---
243 | ##### 专项课题(图文教学)
244 | - Win10环境在Hyper-v下安装Centos并运行Docker
245 | - [win10环境安装Hyper-v虚拟机](/运维文档/在win10操作系统下安装Hyper-v.md)
246 | - [基于Hyper-v安装Centos7.5](/运维文档/通过Hyper-v安装Centos7.5.md)
247 | - [Centos7.5常用软件以及Docker的安装](/运维文档/在纯净的Centos7.5下安装常用软件和Docker.md)
248 | - [Docker常用操作以及容器安装运行](/运维文档/基于Docker安装和运行常用容器.md)
249 | ---
250 | ##### 技术教程
251 | - 在线教程
252 | - [Docker在线教程](https://yeasy.gitbooks.io/docker_practice/content/)
253 | - [阮一峰的Docker入门教程](http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html)
254 | - 完整版教材
255 | - [Docker入门到实践,这个强推](https://www.gitbook.com/book/yeasy/docker_practice/details)
256 |
257 | ---
258 | ##### 其他内容(未分类)
259 | ###### 优秀在线工具分享
260 | - [蓝湖APP——在线产品,设计图,分享标注](https://lanhuapp.com/?home)
261 | - [在线流程图,脑图,设计稿,文件数有上限](https://www.processon.com/)
262 | - draw.io
263 | - [在线网站](https://www.draw.io/)
264 | - [开源地址](https://github.com/jgraph/drawio)
265 |
--------------------------------------------------------------------------------