互动
最近评论

数据库

安装

[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


# 永久修改字符集:

```

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中生效

```

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的文件

# 变量声明:`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

```

## 文本常见处理工具:

# 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全局打印

快速配置交换分区:

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 #树状态列出磁盘、分区和其他存储设备信息

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

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 查看

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

# 过滤查找常用命令

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 删除重复出现的字符,只保留一个

```

# sed

-I 忽略大小写

-e 连接指令

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

-p 处理过的数据行

-d 删除

-i 修改文件 插入 前

-a 追加 后

-c 替换

-n 取反 !

w 写

r 读

-i.bak 备份后修改

-E 扩展正则

gp全局打印

心有山海 静而不平
人生碌碌,竞短论长,却不道枯荣有数,得失难量。
企业级高性能Web服务之Nginx详解
企业级WEB架构之LNMP
企业级web架构LAMP详解
Linux网络服务之SAMBA服务
Linux 网络服务之NFS服务
Linux网络服务之FTP
Linux网络服务之DNS
Linux网络服务之DHCP
Linux启动引导程序
Linux网络服务之RSYNC
文本处理三剑客之AWK
shell循环
Bash的运算符、正则表达式
Shell 脚本编程之变量
Shell脚本编程基础
DHCP 服务
WEB服务之IIS
路由配置实现网络互联
你好啊!
avatar
avatar

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

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