互动
最近评论

数据库

安装

[root@master2 ~]# ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
[root@master2 ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
[root@master2 ~]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
[root@master2 ~]# yum -y install mysql-community-server

修改密码

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;
mysql> set password for 'root'@'localhost'=password('123456');

主从

# /etc/my.cnf
log-bin=mysql-bin-master
server-id=1
​
​
CHANGE MASTER TO 
MASTER_HOST='10.244.84.160',
MASTER_PASSWORD='123456',
MASTER_PORT=3306
​
mysql> create user root@'10.0.0.%' identified by '123456';
​
mysql> grant REPLICATION SLAVE on *.* to root@'10.0.0.%' identified by '123456';
​
mysql> grant all on *.* to root@'10.0.0.%' identified by '123456';

授权

grant replication slave on *.* to slave@'%' identified by '123456';
​
change master to master_host='10.244.84.160',master_user='slave',master_password='123456';

网络代理

vim /etc/profile.d/proxy.sh
​
export proxy="http://192.168.101.43:7890"
export http_proxy=$proxy
export https_proxy=$proxy
export ftp_proxy=$proxy
export no_proxy="localhost, 127.0.0.1, ::1"

色彩模板

红色:PS1='\[\e[31;1m\][\u@\h \w]\$\[\e[0m\]'
绿色:PS1='\[\e[32;1m\][\u@\h \w]\$\[\e[0m\]'
黄色:PS1='\[\e[33;1m\][\u@\h \w]\$\[\e[0m\]'
蓝色:PS1='\[\e[34;1m\][\u@\h \w]\$\[\e[0m\]'
紫色:PS1='\[\e[35;1m\][\u@\h \w]\$\[\e[0m\]'
青色:PS1='\[\e[36;1m\][\u@\h \w]\$\[\e[0m\]'
白色:PS1='\[\e[37;1m\][\u@\h \w]\$\[\e[0m\]'
​
红色高亮:PS1='\[\e[42;1m\][\u@\h \w]\$\[\e[0m\]'
绿色高亮:PS1='\[\e[43;1m\][\u@\h \w]\$\[\e[0m\]'
黄色高亮:PS1='\[\e[44;1m\][\u@\h \w]\$\[\e[0m\]'
蓝色高亮:PS1='\[\e[45;1m\][\u@\h \w]\$\[\e[0m\]'
紫色高亮:PS1='\[\e[46;1m\][\u@\h \w]\$\[\e[0m\]'
青色高亮:PS1='\[\e[47;1m\][\u@\h \w]\$\[\e[0m\]'
白色高亮:PS1='\[\e[48;1m\][\u@\h \w]\$\[\e[0m\]'
​
例:
PS1="\[\e[38;5;11m\][\[\e[38;5;39m\]\u@\h \[\e[38;5;11m\]\W]\\$\[\e[m\] " >> /etc/bashrc 
​
主:export PS1='[\[\e[35;1m\]\u\[\e[32;1m\]@\[\e[31;1m\]\h\[\e[35;1m\]\w\[\e[0m\]]\[\e[36;1m\]$ \[\e[0m\]'

编译安装Nginx

useradd -s /sbin/nologin nginx
tar xf nginx-1.18.0.tar.gz 
cd nginx-1.18.0
​
./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
​
make -j 4 && make -j 4 install
​
chown -R nginx.nginx /apps/nginx
diff -u f1 f2 > f.patch # 生成补丁文件
​
patch -p0 f1 < f.patch  #给f1打补丁

Nginx Service文件

cat /etc/systemd/system/nginx.service 
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/nginx.pid)"

[Install]
WantedBy=multi-user.target

mkdir -p /apps/nginx/run/

Scandisk

alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'

scandisk

JAVA环境变量

JAVA_HOME=/usr/local/src/jdk1.8.0_311
JAVA_BIN=$JAVA_HOME/bin
JRE_HOME=$JAVA_HOME/jre
JRE_BIN=$JRE_HOME/bin
PATH=$JAVA_BIN:$JRE_BIN:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

配置网络

debian

root@debian:~# cat /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface

auto lo
iface lo inet loopback

# The primary network interface

allow-hotplug ens32
iface ens32 inet static
address 10.0.0.3
netmask 255.255.255.0
gateway 10.0.0.1

重启网络:# service networking restart

Ubuntu 22.04

root@myx02:/etc/apt# cat /etc/netplan/00-installer-config.yaml 

# This is the network config written by 'subiquity'

network:
  ethernets:
    ens33:
      addresses:
      - 10.0.0.32/24
      nameservers:
        addresses:
        - 223.5.5.5
        search: []
      routes:
      - to: default
        via: 10.0.0.1
  version: 2

重启网络:netplan apply

CentOS 7.9

[root@master-1~]$ cat /etc/sysconfig/network-scripts/ifcfg-ens32 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="83ad004c-b210-40b3-b489-9e43721d0eb1"
DEVICE="ens32"
ONBOOT="yes"
IPADDR="10.0.0.9"
PREFIX="24"
GATEWAY="10.0.0.1"
DNS1="223.5.5.5"
IPV6_PRIVACY="no"

Docker 部署脚本

#!/bin/bash

# Function to install Docker on Ubuntu
install_docker_ubuntu() {
    sudo apt-get update
    sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt-get -y update
    sudo apt-get -y install docker-ce
}

# Function to install Docker on CentOS
install_docker_centos() {
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
    sudo yum makecache fast
    sudo yum -y install docker-ce
}

# Configure Docker mirrors
configure_docker_mirrors() {
    sudo tee /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://grv5468h.mirror.aliyuncs.com",
        "https://registry.dockercn.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://dockerhub.azk8s.cn",
        "http://hubmirror.c.163.com",
        "http://qtid6917.mirror.aliyuncs.com",
        "https://rncxm540.mirror.aliyuncs.com"
    ],
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
    sudo systemctl daemon-reload
    sudo systemctl enable --now docker
}

# Determine OS and run appropriate installation function
if [ -f /etc/os-release ]; then
	ID=$(cat /etc/os-release | grep "^NAME=" | cut -d'"' -f2)
    if [ "$ID" == "Ubuntu" ]; then
        install_docker_ubuntu
    elif [ "$ID" == "CentOS Linux" ]; then
        install_docker_centos
    else
        echo "Unsupported distribution: $ID"
        exit 1
    fi
    configure_docker_mirrors
else
    echo "Unsupported distribution"
    exit 1
fi

echo "Docker installation and configuration completed successfully."
  • 部署Jenkins范例

docker run -d -p 8088:8080 -p 8099:50000  -v /mnt/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/bin/docker -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins

时间同步

timedatectl set-ntp true &&
timedatectl set-timezone Asia/Shanghai &&
chronyc -a makestep &&
timedatectl status &&
chronyc sources -v &&
timedatectl set-local-rtc 0

K8s 命令自动补全

yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc


# 变量声明:`declare`

```

-i/+i :整数型

-a:定义数组

-x:声明环境变量

-r:只读

-p:查看声明类型

```

# 变量算数运算:`expr`

```

精度:`scale`

expr "scale=3;20/3" | bc

长度:`length`

expr length "hello world"

截取:`substr`

expr substr "hello world" 1 5

```

# 永久修改字符集:

```

echo "LANG=en_US.UTF-8" > /etc/locale.conf && source /etc/locale.conf

echo "LANG=zh_CN.UTF-8" > /etc/locale.conf && source /etc/locale.conf

```

# 彩色提示符

```

PS1='[\[\e[$[RANDOM%7+31]m\]\u\[\[\e[$[RANDOM%7+31]m\]@\[\[\e[$[RANDOM%7+31]m\]\h\[\[\e[$[RANDOM%7+31]m\]\w]\[\[\e[$[RANDOM%7+31]m\]$ \[\[\e[$[RANDOM%7+31]m\]'

```

# exit

```

定义:exit 100

取值范围:0-255

```

# ( ) 与 { } 区别

```

( )中可以运子shell,子shell中的a和父shell的a值不冲突

{ }会替换原有系统的变量的值

```

# 用户自定义环境变量和用户自定义变量的区别

```

用户自定义变量:不能跨终端生效,可以在子shell中生效

用户自定义环境变量:能跨终端生效,可以在子shell中生效

```

yum

install

reinstall

repolist

-v

all

enabled

disabled

list

search

remove

makecache fast #快速生成仓库的索引

history

provides

yum provides */passwd

# 只下载不安装

yum install httpd --downloadonly --downloaddir=/opt/data

服务器不宕机,数据不丢失,用户体验好!

df -Th

df:查看磁盘使用情况

T:文件类型

h:容量换算

inode:文件权限信息

block:数据块 - df-hi

# 文件类型

mkfs.ext{2,3,4,5}

mkfa.xfs

# 实时查看

watch df -hi

# 查看系统分区情况

fdisk -l

# 热加载磁盘 在线扫描

alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan'

brw-rw---- b:块设备

# 创建分区

fdisk

p:查看

n:创建分区

w:保存退出

# 格式化

mkfs.ext4 /dev/sdb1

mkfs.xfs /dev/sdb2

#### 更新分区表:

partprobe

partx -a /dev/sdb

# 显示指定设备 UUID:

sudo blkid -s UUID /dev/sdb1

# 挂载

查看:df -h

创建挂载点:mkdir /opt/sdb1

挂载:mount /dev/sdb1 /opt/sdb1

卸载:umount /dev/sdb1

# 查看类型 blkid

/dev/sdb1: UUID="1c70cf3e-a571-49d4-8e98-891aff54c49b" TYPE="ext4"

/dev/sdb2: UUID="ef1f5eea-f681-4659-ba19-56f59b8b1579" TYPE="xfs"

# 开机自挂载

vim /etc/fstab

# 添加下列两行

/dev/sdb1 /opt/sdb1 ext4 defaults 0 0

/dev/sdb2 /opt/sdb2 xfs defaults 0 0

# 测试是否挂载成功

mount -a

df -Th 查看

# sed

-I 忽略大小写

-e 连接指令

-n 关闭sed默认输出,只输出script处理过的信息

-p 处理过的数据行

-d 删除

-i 修改文件 插入 前

-a 追加 后

-c 替换

-n 取反 !

w 写

r 读

-i.bak 备份后修改

-E 扩展正则

gp全局打印

## 文本常见处理工具:

# head 命令 —— 显示文件本从头内容

head /etc/passwd 默认显示前10行的内容

head -n 5 /etc/passwd 显示前5行内容信息

head -v 显示文件名的头信息

head -c 指定显示前几个字节

# tail 命令:

tail -c # 指定获取后#字节

tail -n # 指定获取后#行

tai -# 同上

tail -f 跟踪显示文件fd新追加的内容,常用日志监控,相当于 --follow=descriptor,当文件删除再新建同名文件,将无法继续跟踪文件

tail -F 跟踪文件名,相当于--follow=name --retry,当文件删除再新建同名文件,将可以继续跟踪文件

# cat 查看

# nl 编号显示

# tac 与cat相反输出

# trv 对文本内容进行反转

# more 一点点读取文件内容

# less 分屏读取内容

# head 命令:

# cut 按列抽取信息

# paste 合并多个文件

-d 指定分隔符,默认是Tab

-s 默认纵向合并,-s 横向合并

# wc 统计数据

# sort 文本排序

# uniq 去重

# tr 转换 -s

# sed

-I 忽略大小写

-e 连接指令

-n 关闭sed默认输出,只输出script处理过的信息

-p 处理过的数据行

-d 删除

-i 修改文件 插入 前

-a 追加 后

-c 替换

-n 取反 !

w 写

r 读

-i.bak 备份后修改

-E 扩展正则

gp全局打印

inode: 文件权限属性

block: 文件的实际数据

find:

-regex 接正则表达式

-samefile f1 根据iNode号查询

-user 查用户

-group 查用户组

或 与 非

o n !

1Bytes=8bit

1K=1024B

1M=1024K

1G=1024M

1、全盘查找名称为a.txt的文件

2、查找/tmp目录下所有的普通文件

3、全盘查找大于1G的文件

4、查找文件的所有者为jim的文件

快速配置交换分区:

fdisk /dev/sdb

#划分交换分区大小

mkswap /dev/sdb1

#设置为交换空间

echo "UUID=24f585ed-2151-4091-8f8c-710e3e9c4ff3 swap swap defaults 0 0" >> /etc/fstab

#开机自挂载

mount -a && swapon -a

#刷新使配置生效

lsblk

#重启查看挂载成功

linux系统类型:ext3、ext4、btrfs、xfs

热加载

alias scandisk='echo - - - > /sys/class/scsi_host/host0/scan;echo - - - > /sys/class/scsi_host/host1/scan;echo - - - > /sys/class/scsi_host/host2/scan

scandisk

parted 快速创建分区

示例:

parted /dev/sdb

# mklabel,mktable LABEL-TYPE #指定分区类型

# mkpart PART-TYPE [FS-TYPE] START END #创建一个新分区

mklabel gpt # 创建一个 gpt 类型分区表

mkpart primary 0 1G # 指定分区大小

q #保存退出

# rm 2 #删除分区2

相关命令:

scandisk #热加载

umount [文件名] # 卸载

mount -a # 重新挂载

df -h #显示文件系统的磁盘使用情况

fdisk #树状态列出磁盘、分区和其他存储设备信息

# 过滤查找常用命令

grep是行提取命令,cut是列提取命令

grep

```

-v 取反

-i 忽略大小写

-n 匹配行号

-o 只显示选中字符

-A 前#行 -B后#行 -C前后#行

-w 匹配词组

-E 等于egrep,扩展正则

```

cut:

```

cut -d【间隔符】 -f【列号】 -c【字符】

sort:

-u 去重

-t 指定分隔符

wc:

默认输出 行数-字数-字节数

-l 显示列数

-w 显示字数

tr:

tr -s 删除重复出现的字符,只保留一个

```

心有山海 静而不平
人生碌碌,竞短论长,却不道枯荣有数,得失难量。
MySQL数据库基础
文本处理
Docker 部署脚本
ChatGLM2-6B 本地化安装
GitLab+Jenkins+Docker 部署 Jpress实战
Docker 总结
10-Dockerfile 项目案例
9-轻量级或工业级容器管理工具 Containerd
8-可视化图形工具 Portainer
7-Docker 资源限制
6-Docker仓库管理
5-容器单机编排工具 Docker Compose
4-docker 网络管理
3-Docker 数据管理
2-Docker镜像制作与管理
1-Docker 介绍和基础操作
DockerHub上151个官方镜像
裸金属虚拟化之VMware vSphere ESXI
你好啊!
avatar
avatar

不要告诉别人你的不幸,成长本来就是一个孤立无援的过程,你要努力强大起来,才能最终独当一面

最新评论
最近发布
MySQL数据库基础
MySQL数据库基础
文本处理
文本处理
Docker 部署脚本
Docker 部署脚本
ChatGLM2-6B 本地化安装
ChatGLM2-6B 本地化安装
引用到评论