github_hosts

github_hosts

说明

github_hosts是一个用于配置github加速的hosts文件。

使用方法

将github_hosts文件中的内容复制到你的hosts文件中,并保存。

仓库地址

镜像链接

Spring Tool Suite

Spring Tool Suite 设置Tab键为4个空格

  • 在Spring Tool Suite -> window -> Preference -> General -> Editors,选择Insert spaces for tabs,若要展示空格可勾选Show whitespace characters
    preferences.jpg

  • 然后展开Java -> Code Style -> Formatter,点击New按钮,在New Profile窗口中,填写Profile name之后,点击OK
    formatter.jpg

  • 在弹出的窗口中,展开Indentation,设置Tab policy的值为 Spaces only

  • profile.jpg

springboot with docker

常用的springboot项目中的Dockerfile示例

Dockerfile:利用容器打包并缓存maven

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
# 拉取编译环境
FROM maven:3.8.3-openjdk-17 as builder
# 创建项目目录
RUN mkdir /project

# 使用项目配置的文件
COPY settings.xml /usr/share/maven/conf/settings.xml

# 拷贝源码到固定的目录,注意前面有个 '.'
COPY ./pom.xml /project/pom.xml

# 切换到源码目录
WORKDIR /project

# 安装依赖
RUN mvn dependency:go-offline

# 复制源代码
COPY ./src /project/src

# 使用maven进行编译
RUN mvn clean package -Dmaven.test.skip=true

# 拉取运行环境,这个镜像打包出的镜像比较小,如需要可换成oracle的jre
FROM openjdk:17

# 从编译好的镜像中将jar拷贝到运行时容器
COPY --from=builder /project/target/xxxx.jar /

# 容器启动时执行的命令,这里可加jvm参数
ENTRYPOINT ["java","-jar","/xxxx.jar"]

# 开放端口,根据自己的配置进行开放
EXPOSE 8080

配套deploy.sh脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
start=$(date +%s)
cd /data/java_project_dir #切换到java项目所在目录
echo "切换目录"
git pull
echo "更新代码 完成"
docker build . --tag tts
echo "打包镜像 完成"
docker stop tts
echo "停止服务 完成"
docker rm tts
echo "删除容器 完成"
docker run -itd --name=tts -p 28085:8080 tts
echo "启动服务 完成"
docker image prune -f
echo "删除无tag镜像"
end=$(date +%s)
take=$(( end - start ))
echo 操作完成 本次用时:${take}s

安装dnf命令

正常情况下openjdk:17的镜像中是不带有yum或者dnf命令,如果要用上这个命令那就需要安装一下

  • 启动与openjdk:17 对应相同版本的 oracleLinux (查询镜像内的cat /etc/os-release)

    1
    docker run -itd --name=oraclelinux85 oraclelinux:8.5
  • 进入容器

    1
    docker exec -it oraclelinux85 /bin/bash
  • 安装基础包

    1
    yum -y install yum-utils
  • 下载dnf所有程序包(包括依赖),程序会下载所有文件在当前目录下

    1
    repotrack dnf
  • 退出容器 oraclelinux85 ,并复制文件到宿主机

    1
    docker cp oraclelinux85:/root/* ./tmp
  • 复制文件从宿主机到目标容器

    1
    docker cp ./tmp  targetContainer:/root/
  • 进入目标容器安装程序

    1
    2
    3
    4
    docker exec -it targetContainer /bin/bah
    cd /root/
    rpm -Uvh --force --nodeps *.rpm
    rm -rf *.rpm

    最后,愉快的使用dnf命令吧

PaddleRec

从Docker中的Ubuntu16.04

1
2
3
4
5
6
7
8
# 拉取镜像
docker pull ubuntu:16.04

# 绑定8888端口并启动
docker run -p 8888:8888 -itd --name ubuntu ubuntu:16.04

# 进入容器内部
docker exec -it ubuntu /bin/bash

在更新容器内的操作系统

1
2
3
4
5
# 更新源
apt update

# 更新操作系统
apt upgrade

安装依赖

1
apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl vim zip unzip wget

更新openssl版本至1.1.1c

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

# 切换到主目录
cd ~

# 下载源代码
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz

# 解压源代码
tar -zxf openssl-1.1.1c.tar.gz

# 进入源代码目录
cd openssl-1.1.1c

# 执行编译安装
./config
make
make install

# 链接库文件
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/libssl.so.1.1

# 备份openssl
mv /usr/bin/openssl /root/

# 链接目录
ln -s /usr/local/bin/openssl /usr/bin/openssl

# 查看当前openssl版本
openssl version

安装Git

1
apt-get install git -y

安装 pyenv 方便安装Python3.7.4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
curl https://pyenv.run | bash

#添加 对应文件到 .bashrc


#安装 python3.7.4
pyenv install 3.7.4

#全局使用
pyenv global 3.7.4

# 更新pip
python -m pip install --upgrade pip

#安装飞桨1.8.4
python -m pip install paddlepaddle==1.8.4 -i https://mirror.baidu.com/pypi/simple

# 降低飞桨默认安装最新版本的protobuf
pip install protobuf==3.20.1

安装 Jupyter lab

1
2
3
pip install jupyterlab
pip install jupyterlab-language-pack-zh-CN
jupyter lab --allow-root

Rocky

Rocky下安装Python3.7.4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 更新操作系统
dnf check-update -y
dnf update -y
dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make -y

# 下载源代码
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
# 解压
tar -xf Python-3.7.4.tar.xz
# 目录切换
cd Python-3.7.4
# 进行编译
./configure --enable-optimizations

make -j 6
nproc
make altinstall

# 版本
python3.7 --version

# 更新pip
python3.7 -m pip install --upgrade pip

飞桨安装

1
python3 -m pip install paddlepaddle==1.8.4 -i https://mirror.baidu.com/pypi/simple

初始化Node.js项目

创建项目

1
mkdir projectname && npm init

安装依赖

1
2
3
4
5
6
7
8
9
# 使用d3
npm i d3

# 使用rollup打包
npm install rollup --global
rollup -c

#添加压缩
npm install rollup-plugin-terser

MySQL安全

MySQL 安全

SSL启用

1
2
3
参考文档:[https://www.cnblogs.com/mysql-dba/p/7061300.html](https://www.cnblogs.com/mysql-dba/p/7061300.html)
JDBC:[https://www.codenong.com/cs106646667/](https://www.codenong.com/cs106646667/)
JDBC: [https://www.huaweicloud.com/articles/b6f3c64228a6089ad415b4cb085af5d4.html](https://www.huaweicloud.com/articles/b6f3c64228a6089ad415b4cb085af5d4.html)

审计

第三方插件:第三方插件

漏洞升级

1
2
3
4
5
6
yum list| grep mysql
yum update mysql-server
yum update mysqld mysql-devel
systemctl restart mysqld

# 主从情况下,全部停机,先启主再启从

登录限制

官方文档传送门: https://dev.mysql.com/doc/refman/5.7/en/connection-control-installation.html

中文文档:https://www.docs4dev.com/docs/zh/mysql/5.7/reference/connection-control-installation.html

网友文档:https://blog.csdn.net/leonpenn/article/details/104790469

CentOS7 openssl升级

openssl升级

下载

1
2
3
4
5
6

# openssl 路径:
wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz

#openssh 路径:
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.7p1.tar.gz

安装工具与依赖

1
2
3
yum install gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-deve

yum install -y pam* zlib*

安装 openssl

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 备份原来的openssl

mv /usr/bin/openssl /usr/bin/openssl_bak

mv /usr/include/openssl /usr/include/openssl_bak

# 安装
tar -xzf openssl-1.1.1l.tar.gz && cd openssl-1.1.1l && ./config --prefix=/usr/local/openssl --shared && make && make install

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/openssl/include/openssl /usr/include/openssl

`echo "/usr/local/openssl/lib" >>/etc/ld.so.conf`

ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1

ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

ldconfig

openssl version

# OpenSSL 1.1.1h 22 Sep 2020

安装openssh

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
#安装openssh前 将openssl 安装到/usr/local/openssl

# 备份原来的 ssh配置


tar -xzf openssh-8.7p1.tar.gz

cd /etc/ssh && mkdir –p /root/sshbak && mv ./* /root/sshbak

cd /data/openssh-8.7p1

./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/openssl/include --with-ssl-dir=/usr/local/openssl --with-zlib --with-md5-passwords --with-pam

make && make install

mv /usr/bin/ssh /usr/bin/ssh-bak20210830

ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh

cp -a contrib/redhat/sshd.init /etc/init.d/sshd

cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam

chmod +x /etc/init.d/sshd

chkconfig --add sshd && systemctl enable sshd

mv /usr/lib/systemd/system/sshd.service /data/

chkconfig sshd on

ssh -V

# OpenSSH_8.4p1, OpenSSL 1.1.1h 22 Sep 2020
1
2
3
vim /etc/ssh/sshd_config
# 设置 usePAM = yes
systemctl restart sshd