0%

1
2
3
4
5
6
7
8
9
10
#查看系统空间使用情况
free -h
#查看分区使用
df -h
#生成4G大小文件在/home目录下,取名swapflie
sudo dd if=/dev/zero of=/home/swapflie bs=1M count=4096
#把这个文件转换为swap分区
sudo /sbin/mkswap /home/swapflie
#使分区生效
sudo /sbin/swapon /home/swapflie

参考:

Docker Swarm搭建Gitlab

kubectl安装

kubectl 是 Kubernetes 自带的客户端,可以用它来直接操作 Kubernetes。

官方文档:Install and Set Up kubectl

window平台(需要bash on ubuntu环境)

1
2
3
4
5
6
7
8
#切换bash on Ubuntu命令
bash
#下载kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/windows/amd64/kubectl.exe
#退出bash
exit
#查看版本
.\kubectl.exe version

Linux平台

1
2
3
4
5
6
7
8
#下载kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
#添加权限
chmod +x ./kubectl
#设置全局命令(环境变量)
sudo mv ./kubectl /usr/local/bin/kubectl
#检查安装成功与否
kubectl version

Minikube安装

官方文档kubernetes/minikube

virtualBox

Linux

1
2
3
4
5
6
7
#安装配置minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.22.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
#查看版本
minikube version
#下载virtualbox
wget http://download.virtualbox.org/virtualbox/5.1.26/VirtualBox-5.1-5.1.26_117224_el7-1.x86_64.rpm

Windos

1
2
3
4
#安装配置minikube
curl -Lo minikube.exe https://storage.googleapis.com/minikube/releases/v0.22.1/minikube-windows-amd64.exe
#查看版本
./minikube.exe version

。。。。。放弃,转用swarm ,已卸载相关下载文件

弃坑理由:安装负杂,需要安装虚拟机,对环境要求高,学习成本高,swarm和Kubernetes对dockers的差距越来越小

Docker Swarm官网

准备工作

1
2
3
4
#centos7.3
Docker version 17.06.2-ce, build cec0b72
#win10
Docker version 17.06.2-ce, build cec0b72
  • TCP 2377 集群管理通信
  • TCP/UDP 7946 容器(container)网络发现
  • UDP 4789 容器(container)入口网络

Swarm 安装

centos manager(xuanPs)

1
2
3
4
5
6
#初始化节点
docker swarm init --advertise-addr 112.74.51.136
#echo输出如下内容,在work节点执行改命令加入改manger(windos执行)
docker swarm join --token SWMTKN-1-34egnv0ksgzg6enh47wmze0ncx90bo2218yaetm88p6s028i2s-c46n408x51lklv1n3myhmpt1a 112.74.51.136:2377
#查看节点
docker node ls

创建和删除服务

参考inspect-servicescale-servicedelete-service

docker service create --replicas 1 --name helloworld alpine ping docker.com

  • docker service create 创建服务
  • --name 服务的名字
  • --replicas 指定实例运行数量
  • alpine ping docker.com指定alpine执行ping命令
1
2
3
4
5
6
7
8
9
10
#查看运行的服务
docker service ls
#查看某服务状态
docker service ps <服务名>
#运行5个helloworld服务
docker service scale helloworld=5
#移除helloworld服务
docker service rm helloworld
#检查helloworld是否存在
docker service inspect helloworld

升级服务

docker service create --replicas 3 --name redis --update-delay 10s redis:3.0.6

  • --update-delay多个服务启动时之间的时间间隔eg:4h2m1s
参考rolling-update
1
2
3
4
5
6
7
8
9
10
#创建运行rdeis3.0.6服务
docker service create --replicas 3 --name redis --update-delay 10s redis:3.0.6
#查看redis images版本为3.0.6
docker service inspect --pretty redis
#更新redis镜像到3.0.7
docker service update --image redis:3.0.7 redis
#更新redis服务为最新镜像
docker service update --detach=false redis
#查看是否为3.0.7
docker service ps redis

关闭一个节点

参考drain-node
1
2
3
4
5
6
7
8
#关闭moby节点Availability为drain
docker node update --availability drain moby
#查看rdeis服务还是三个只不过在其他机器上
docker service ps redis
#查看moby节点状态
docker node inspect --pretty moby
#开启moby节点
docker node update --availability active moby

使用群组路由模式

参考Use swarm mode routing mesh
1
2
3
{
"registry-mirrors": ["https://rq98iipq.mirror.aliyuncs.com"]
}

MyBatis plugin插件安装步骤(弃用,重新打开失效)

  1. 安装setting->Plugins->Browse Respositories…->MyBatis plugin

  2. 重启

  3. 执行下面代码生成KEY和RESULT

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    import java.security.InvalidKeyException;
    import java.security.KeyPair;
    import java.security.KeyPairGenerator;
    import java.security.NoSuchAlgorithmException;
    import java.security.interfaces.RSAPrivateKey;
    import java.security.interfaces.RSAPublicKey;

    import javax.crypto.BadPaddingException;
    import javax.crypto.Cipher;
    import javax.crypto.IllegalBlockSizeException;
    import javax.crypto.NoSuchPaddingException;

    class Main {

    public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
    KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
    keygen.initialize(512);
    KeyPair kp = keygen.generateKeyPair();
    RSAPrivateKey privateKey = (RSAPrivateKey)kp.getPrivate();
    RSAPublicKey publicKey = (RSAPublicKey)kp.getPublic();
    System.out.println("KEY:\n" + bytesToHexString(publicKey.getEncoded()) + "\n");
    Cipher cipher = Cipher.getInstance("RSA");
    cipher.init(Cipher.ENCRYPT_MODE,privateKey);
    System.out.println("RESULT:\n" + bytesToHexString(cipher.doFinal("ilanyu".getBytes())) + "\n");
    }

    private static String bytesToHexString(byte[] src){
    StringBuilder stringBuilder = new StringBuilder("");
    if (src == null || src.length <= 0) {
    return null;
    }
    for (byte aSrc : src) {
    int v = aSrc & 0xFF;
    String hv = Integer.toHexString(v);
    if (hv.length() < 2) {
    stringBuilder.append(0);
    }
    stringBuilder.append(hv);
    }
    return stringBuilder.toString();
    }
    }
  4. 把key和result填到C:\Users\{用户}\.IntelliJIdea2017.2\config\options\mybatis.xml中对应的字段

fatedier/frp

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。

系统 版本 解压
Centos7(64) frp_0.48.0_linux_arm64.tar.gz tar -zxvf
mac frp_0.48.0_darwin_amd64.tar.gz 双击
Centos7(x86) frp_0.48.0_linux_386.tar.gz

搭建一个远程访问内网的web应用

frps 服务端程序(配置文件frps.ini),放到公网ip的机器上(阿里云)

frpc 客户端程序(配置文件frpc.ini),放到内网环境机器上(win10)

法一 通过域名访问内网web服务
frps 服务端设置
1
2
3
4
5
6
7
8
# frps.ini
[common]
#frps服务端口
bind_port = 7000
#web远程访问端口
vhost_http_port = 10080
#https使用这个
#vhost_https_port = 8080

启动服务端./frps -c ./frps.ini

frpc 客户端设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# frpc.ini
[common]
#服务器公网ip
server_addr = 112.74.51.136
#frps 服务端口和服务端对应
server_port = 7000

[web]
#web服务网络类型,可选http、https
type = http
#内网机器的web服务端口
local_port = 8080
#配置域名(必须绑定域名)
custom_domains = exxk.me

启动客户端.\frpc.exe -c .\frpc.ini

法二 通过ssh(IP)访问内网web服务
frps 服务端设置
1
2
3
4
# frps.ini
[common]
#frps服务端口
bind_port = 7000

启动服务端./frps -c ./frps.ini

frpc 客户端设置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# frpc.ini
[common]
#服务器公网ip
server_addr = 112.74.51.136
#frps 服务端口和服务端对应
server_port = 7000

[ssh]
type = tcp
#web服务本地访问地址
local_ip = 127.0.0.1
#web服务本地访问端口
local_port = 8080
#远程调用web服务时的端口
remote_port = 10080

启动客户端.\frpc.exe -c .\frpc.ini

命令行

lxrun查看对LX子系统执行管理操作的帮助

lxrun /install 安装子系统

lxrun /uninstall 卸载子系统

lxrun /setdefaultuser配置子系统用户

lxrun /update 更新子系统的包索引

安装brew

1
2
3
4
5
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
test -d ~/.linuxbrew && eval $(~/.linuxbrew/bin/brew shellenv)
test -d /home/linuxbrew/.linuxbrew && eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
test -r ~/.bash_profile && echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.bash_profile
echo "eval \$($(brew --prefix)/bin/brew shellenv)" >>~/.profile

WSL2配置桥接网络访问

以下是启用此模式的当前优势:

  • IPv6 支持
  • 使用 localhost 地址 127.0.0.1 从 Linux 内部连接到 Windows 服务器。 不支持 IPv6 localhost 地址 ::1
  • 改进了 VPN 的网络兼容性
  • 多播支持
  • 直接从局域网 (LAN) 连接到 WSL
  1. 安装wsl2,执行wsl --install

  2. 新建 .wslconfig 文件,文件路径为 C:\Users\<UserName>\.wslconfig。详细配置见https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config#configuration-settings-for-wslconfig,部分配置需要 Windows 11 版本 22H2 或更高版本。

    1
    2
    3
    4
    5
    [wsl2]
    networkingMode=mirrored
    dnsTunneling=true
    firewall=false
    autoProxy=true
  3. 重启wsl,执行wsl --shutdown,然后执行wsl

  4. 使用管理员权限在 PowerShell 窗口中运行以下命令(允许入站连接),执行Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow

参考

Windows10 Ubuntu子系统的删除和重装

环境

  • ubuntu16.04(bash on window)

安装

  1. sudo apt-get update更新源
  2. sudo apt-get upgrade更新软件
  3. sudo apt-get install build-essential安装编译环境(包括gcc)
  4. sudo apt-get install tcl8.5安装tcl8.5
  5. wget http://download.redis.io/releases/redis-stable.tar.gz
  6. tar xzf redis-stable.tar.gz
  7. cd redis-stable
  8. make
  9. sudo make install
  10. cd utils/
  11. sudo ./install_server.sh
  12. sudo service redis_6379 start
  13. sudo service redis_6379 stop

安装结果:

Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli

参考:

Windows 10 Linux子系统 (wsl)学习手记

  • ubuntu16.04(bash on window)
  • gcc
1
2
3
4
5
6
7
8
9
10
sudo apt-get update && \
sudo apt-get install build-essential software-properties-common -y && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \
sudo apt-get install gcc-snapshot -y && \
sudo apt-get update && \
sudo apt-get install gcc-6 g++-6 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6 && \
sudo apt-get install gcc-4.8 g++-4.8 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8;

选择默认gcc版本

sudo update-alternatives --config gcc

安装redis

安装好了要清理下redis的目录

make distcleanmake

在redis目录下

运行服务端

src/redis-server

运行客户端

src/redis-cli

参考

application2000/how-to-install-latest-gcc-on-ubuntu-lts.txt

方法二

sudo apt-get install build-essential安装编译环境(包括gcc)

环境安装

  1. 下载Oracle 12c(Enterprise),总共两个文件(File1,File2),可右键复制链接迅雷下载
  1. 两个文件都解压

  2. 双击setup.exe运行

    注:解决[INS-30131]错误:计算机管理添加C盘共享,权限设置为管理员完全权限,其他用户可读。

  3. 安装选项

    • 创建配置数据库

    • 桌面类

    • 创建新windos用户(root,xuanxuan)

    • 输入口令(数据库名orcl.lan;口令Mimais163)

    • 弹窗口令管理修改 sys(mimais163R)system(mimais163A)

参考:

Oracle Database 12c安装教程(Windows版)

Oracle 12c Windows安装、介绍及简单使用(图文)

监督学习(supervised-learning)

regression(回归)

Given a picture of a person, we have to predict their age on the basis of the given picture

通过历史的数据,预测新的数据(线性)

eg:预测问题、房价问题

classification(分类)

Given a patient with a tumor, we have to predict whether the tumor is malignant or benign.

根据特征识别,无数个好特征(向量),然后判断属于哪个

eg:识别问题、肿瘤问题

无监督学习(unsupervised-learning)

通过聚类(分组)算法,无需指定特征

聚类(Clustering)

eg: 新闻分组

集群(Non-clustering)

eg:音频分离