linux系统环境常用命令

免交互设置密码
复制代码
echo "123456" |passwd --stdin u01
查看所有服务单元
复制代码
systemctl list-units --type=service --all
# 正在运行的
systemctl list-units --type=service --state=running
Mysql

如果你只想快速看所有用户的插件,省略 WHERE 即可

复制代码
SELECT user, host, plugin FROM mysql.user;
复制代码
SELECT user, host, plugin, authentication_string
FROM mysql.user
WHERE user='keystone'\G

只允许从 controller 主机连接

复制代码
CREATE USER IF NOT EXISTS 'keystone'@'controller' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'controller';
FLUSH PRIVILEGES;

允许从任意主机连接(测试环境常用)

复制代码
CREATE USER IF NOT EXISTS 'keystone'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%';
FLUSH PRIVILEGES;

再次验证

复制代码
mysql -u keystone -p123456 -h controller keystone -e 'show tables;'
ssh连接速度优化
复制代码
vim  /etc/ssh/sshd_config
GSSAPIAuthentication no #关闭SERVER上的GSS认证
UseDNS no #关闭DNS反向解析
systemctl restart sshd.service
免重启显示新添加硬盘的方法
复制代码
# 查看主机总线型号
ls /sys/class/scsi_host/
host0  host1  host2

# 重新扫描SCSI总线来添加设备
echo "- - -" >/sys/class/scsi_host/host0/scan
echo "- - -" >/sys/class/scsi_host/host1/scan
echo "- - -" >/sys/class/scsi_host/host2/scan
php yum源配置-7系统
复制代码
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

php5.6

复制代码
yum install -y php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

php7.0

复制代码
yum install -y php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

安装PHP FPM

复制代码
yum install php56w-fpm 
yum install php70w-fpm
systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
vim全局替换

例:将cn替换为com

复制代码
:%s/cn/com/g
mysql安装
复制代码
# 创建用户
CREATE USER 'slaveusr'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

# 授权用户 主从复制权限
GRANT REPLICATION SLAVE ON *.* TO 'slaveusr'@'%';

# 授权用户 所有权限
GRANT ALL PRIVILEGES ON *.* TO 'slaveusr'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
修改时区
复制代码
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
timedatectl set-timezone <时区> # 替换<时区>为你希望设置的时区,例如 Asia/Shanghai
timedatectl set-timezone Asia/Shanghai
设置网卡多IP
复制代码
ifconfig ens160:1 192.168.3.192 netmask 255.255.255.0 up
复制代码
ip addr add 192.168.3.193/24 dev ens160 label ens160:2
复制代码
ifconfig ens160:1 192.168.3.192/24 up

重启网络后消失

复制代码
systemctl restart network

nmcli connection reload
nmcli connection up ens160
修改静态ip地址

7、8 系列系统

复制代码
vim /etc/sysconfig/network-scripts/ifcfg-ens33

# 静态IP地址
IPADDR="192.168.3.200"
NETMASK="255.255.255.0"
GATEWAY="192.168.3.2"
DNS1="114.114.114.114"

9系列系统

复制代码
----------------------------------
使用命令设置

nmcli con mod ens160 ipv4.method manual ipv4.addresses 192.168.3.191/24 ipv4.gateway 192.168.3.2 ipv4.dns 114.114.114.114 connection.autoconnect yes

nmcli connection reload && nmcli connection up ens160

----------------------------------
配置文件设置

vim /etc/NetworkManager/system-connections/ens160.nmconnection

[ipv4]
#method=auto
method=manual
address1=192.168.3.91/24,192.168.3.2
dns=223.5.5.5;114.114.114.114

nmcli c reload
nmcli c up ens160

[ipv6]
addr-gen-mode=eui64
method=disabled




[ipv6]
addr-gen-mode=eui64
method=disabled   # disabled 关闭ipv6 不修改也可以

nmcli n #查看networkmanager启动与否
nmcli c reload #重新加载配置文件,c是connection的缩写
nmcli c up ens160 #启动你设置的网卡ens160
nmcli d # 查看网卡状态,也可以用ifconfig
修改主机名称
复制代码
hostnamectl set-hostname master1-admin
停止防火墙
复制代码
systemctl stop firewalld
systemctl disable firewalld
禁用selinux
复制代码
setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
常用软件包的安装
复制代码
yum install -y epel-release tree vim wget bash-completion lrzsz nfs-utils net-tools sysstat iotop unzip nc nmap telnet bc psmisc yum-utils ipvsadm git socat conntrack sshpass
centos7修改阿里云源
复制代码
# wget 方式 阿里云源
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/centos.repo http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

# curl 方式 阿里云源
rm -rf /etc/yum.repos.d/*.repo
curl "http://mirrors.aliyun.com/repo/Centos-7.repo" -o "/etc/yum.repos.d/CentOS-Base.repo"
curl "http://mirrors.aliyun.com/repo/epel-7.repo" -o "/etc/yum.repos.d/epel.repo"
yum clean all
yum makecache

# wget 方式 腾讯源
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/Centos-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum makecache

http://mirrors.cloud.tencent.com/repo/centos7_base.repo
http://mirrors.cloud.tencent.com/repo/epel-7.repo

# curl 方式 腾讯源
rm -rf /etc/yum.repos.d/*.repo
curl -L -o /etc/yum.repos.d/CentOS-Base.repo "http://mirrors.cloud.tencent.com/repo/centos7_base.repo"
curl -L -o /etc/yum.repos.d/CentOS-epel.repo "http://mirrors.cloud.tencent.com/repo/epel-7.repo"
yum clean all
yum makecache

# 最小化无影响安装
yum install wget net-tools tree vim bash-completion lrzsz -y
rocky linux 8修改阿里云源
复制代码
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
    -i.bak \
    /etc/yum.repos.d/Rocky-*.repo
rocky linux 9修改上海交通大学源
复制代码
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.sjtug.sjtu.edu.cn/rocky|g' \
    -i.bak \
    /etc/yum.repos.d/rocky-*.repo
mkdir /etc/yum.repos.d/bakrepo
mv /etc/yum.repos.d/*.bak /etc/yum.repos.d/bakrepo


sed -e 's|^mirrorlist=|#mirrorlist=|g'     -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g'     -i.bak     /etc/yum.repos.d/rocky.repo 
dnf makecache



sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
    -i.bak \
    /etc/yum.repos.d/[Rr]ocky*.repo
配置系统时间与网络同步
复制代码
server ntp.aliyun.com iburst
server ntp.ntsc.ac.cn iburst
server time.neu.edu.cn iburst

删除原有配置加入上面地址
vim /etc/chrony.conf

systemctl restart chronyd

chronyc sources -v #查看同步状态

timedatectl #查看同步状态
               Local time: 五 2024-03-22 17:30:40 CST
           Universal time: 五 2024-03-22 09:30:40 UTC
                 RTC time: 五 2024-03-22 09:30:40
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no   ####yes
              NTP service: active
          RTC in local TZ: no
关闭系统swap缓存
复制代码
swapoff -a && sed -i 's/.*swap.*/#&/' /etc/fstab
host文件解析配置
复制代码
echo '192.168.137.31 zhyj1.cm zhyj1' >> /etc/hosts
ssh免密快速配置

创建秘钥

复制代码
ssh-keygen -f ~/.ssh/id_rsa -P '' -q

参数讲解:

ssh-keygen:密钥对创建工具 [-P old_passphrase] 密码 [-f output_keyfile] 输出的秘钥文件 [-q] 不输出信息 [-t dsa ] 指定秘钥类型

拷备秘钥到其他主机:

复制代码
yum install sshpass
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 192.168.3.32

参数讲解: [root@web02 ~]# sshpass -help Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 192.168.137.32 sshpass [-f|-d|-p|-e] [-hV] command parameters ssh-copy-id -f -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@172.16.1.8 ssh-copy-id [-f] [-i [identity_file]] [-p port] [[-o <ssh -o options>] ...] [user@]hostname 说明: -f: force mode 强制 [-i [identity_file]] 指定秘钥文件 [[-o <ssh -o options>] ...] 指定ssh参数选项

ssh远程执行命令

复制代码
sshpass -p '123456' ssh root@192.168.3.21 'echo 1 > /1.txt'
加载系统内核参数
复制代码
modprobe br_netfilter
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
#加入开机启动项目
echo "modprobe br_netfilter" >> /etc/rc.d/rc.local
echo "sysctl -p /etc/sysctl.d/k8s.conf" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
#查看是否加载
lsmod | grep  br_netfilter
tab键命令补全
复制代码
yum install bash-completion
docker-ce阿里云源安装
复制代码
yum install yum-utils -y
yum-config-manager \
        --add-repo \
        https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

sed -i 's|https://download.docker.com|https://mirrors.tuna.tsinghua.edu.cn/docker-ce|g' /etc/yum.repos.d/docker-ce.repo

# 卸载旧版 Docker 及相关包
yum remove -y docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  docker-selinux

yum install docker-ce -y --allowerasing  # rocky8/9
yum install docker-ce -y # centos7

mkdir -p /etc/docker

cat > /etc/docker/daemon.json <<-'EOF'
{
  "log-opts": {
    "max-size": "5m",
    "max-file": "3"
  },
  "exec-opts": [
    "native.cgroupdriver=systemd"
  ],
  "insecure-registries": [
    "192.168.137.35",
    "harbor.cn"
  ],
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "https://docker-0.unsee.tech",
    "https://docker.1panel.live",
    "https://docker.ckyl.me",
    "https://docker.m.daocloud.io",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://docker.nju.edu.cn",
    "https://docker.rainbond.cc",
    "https://docker.registry.cyou",
    "https://docker.xuanyuan.me",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://dockerhub.icu",
    "https://docker.jsdelivr.fyi",
    "https://dockerproxy.com",
    "https://dockertest.jsdelivr.fyi",
    "https://hub.rat.dev",
    "https://mirror.aliyuncs.com",
    "https://mirror.baidubce.com",
    "https://mirror.iscas.ac.cn",
    "https://reg-mirror.qiniu.com"
  ]
}
EOF

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

#####################################################
docker pull bitnami/jenkins:2.452.3-debian-12-r7
docker pull openjdk:8-jdk-alpine
docker pull gcr.io/google_containers/pause:3.8
docker pull docker.io/library/mysql:5.7.43
#####################################################

#安装指定版本containerd.io
yum install containerd.io-1.6.28-3.1.el8.x86_64

yum list docker-ce.x86_64 --showduplicates | sort -r
#指定安装docker的版本
yum install docker-ce-24.0.2-1.el8.x86_64 -y
yum install docker-ce-24.0.2-1.el7.x86_64 -y

# 导出本机镜像命令
docker save -o coredns.tar k8s.gcr.io/coredns:1.3.1
# 导出其他镜像命令
docker load -i coredns.tar

# x86平台指定下载arm平台的命令
docker pull --platform linux/arm64 docker.io/library/mysql:latest
docker配置代理
复制代码
mkdir /usr/lib/systemd/system/docker.service.d
vim /usr/lib/systemd/system/docker.service.d/http-proxy.conf
# 加入本地局域网内v2ray的地址,打开允许局域网连接。默认端口10809
[Service]
Environment="HTTP_PROXY=http://192.168.1.18:10809"
Environment="HTTPS_PROXY=http://192.168.1.18:10809"

192.168.1.18
# 重启
systemctl daemon-reload
systemctl restart docker

# 显示如下结果说明设置成功
systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://192.168.27.158:10809 HTTPS_PROXY=http://192.168.27.158:10809

# 尝试拉一下google的镜像应该可以了
docker pull gcr.io/google_containers/pause:latest
docker pull gcr.io/google_containers/pause:3.8
docker pull adguard/adguardh

# 删除代理
rm -rf /usr/lib/systemd/system/docker.service.d/http-proxy.conf
systemctl daemon-reload
systemctl restart docker
systemctl show docker --property Environment
docker compose 安装
复制代码
#下载docker-compose文件 且 将文件移动到/usr/local/bin环境变量下面
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#将文件复制到/usr/local/bin环境变量下面
# mv docker-compose /usr/local/bin

#给他一个执行权限
chmod +x /usr/local/bin/docker-compose

#查看是否安装成功
docker-compose -version
docker常用命令
复制代码
[root@zhyj5 ~]# docker commit  -a "hello" -m "add" 2c3457d804ba vv
sha256:0988d4c96972b89c9d366be33578cc020b794dd8cbdf65fd87157fe7c0fbf0d8
[root@zhyj5 ~]# docker images 
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
vv           latest    0988d4c96972   7 seconds ago   471MB
v1           latest    f7e1bba77f64   3 minutes ago   471MB
centos       latest    76d6bc25b8a5   5 years ago     200MB
mycentos     v2        76d6bc25b8a5   5 years ago     200MB

#运行nginx容器并挂载目录
docker run -itd -p8089:80  -v /var/www/html:/usr/share/nginx/html  nginx:1.21

#Portainer安装
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer-ce

#删除所有容器
docker rm $(docker ps -aq)

#停止所有容器
docker stop $(docker ps -q)

#一次性删除所有本地镜像以及其标签
docker rmi -f $(docker images -a -q)

#打包所有镜像
docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o allimages.tar

docker save $(docker images --format "{{.Repository}}:{{.Tag}}") -o allimages.tar

#提交当前运行的镜像
docker commit -m "hello-nginx" -a "zyj" 95c9520689fd nginx:hello

#docker file 编译安装nginx
FROM rockylinux:8.8
LABEL maintainer="pod<pod@example.com>"
ENV NGINX_VERSION 1.23.1
ENV AUTHOR jack
ENV PATH=/usr/local/nginx1/sbin:$PATH
RUN sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/*.repo
RUN yum -y install gcc make pcre-devel zlib-devel tar zlib
RUN mkdir /nginx
COPY . /nginx
WORKDIR /nginx
RUN set -ex; \
        bash install_nginx.sh; \
        yum install vim iputils net-tools iproute -y
EXPOSE 80
STOPSIGNAL SIGQUIT
CMD ["nginx","-g","daemon off;"]

############################################

# 容器间的互联可以通过--link参数来实现
# 1、当使用--link参数启动一个新的容器时,Docker会自动设置源容器(被链接的容器)和目标容器(链接到源容器的新容器)之间的连接。
# 2、Docker会在目标容器的/etc/hosts文件中添加一行记录,将源容器的IP地址映射到源容器的名称或自定义别名上,从而使得目标容器可以直接通过名字访问源容器。
# 3、同时,环境变量会被注入到目标容器中,这些环境变量包含了源容器的相关信息,例如主机名、端口等。

# 启动一个容器并链接到另一个已经存在的容器
  docker run --name container_b --link container_a:alias_name -d image_b
# 1、container_a是已存在的容器名称。
# 2、alias_name是可选的别名,如果未指定,则默认为container_a的容器名。
# 3、这样做之后,container_b就可以通过alias_name或者container_a的名字直接访问container_a暴露的服务了。

# 例:lnmp 环境部署
docker run -itd -p 9000:9000 -v /var/www/html/:/var/www/html --name php-fpm php:7.0-fpm

docker run -itd -p 8081:80 -v /root/lnmp/nginx.conf:/etc/nginx/nginx.conf -v /var/www/html:/var/www/html --name nginx-server --link php-fpm:php nginx:1.21
# 注意: 要删除默认配置文件 default.conf

常用命令

常用小命令
复制代码
  在 Linux 中,>/dev/null 和 2>&1 是两个常用的重定向操作,它们用于控制命令的输出和错误信息。而且这两个参数经常 与 nohup 命令一起使用。

nohup命令
  nohup 是一个用于在后台运行命令的 Unix 命令。它的主要作用是运行指定的命令,即使用户退出登录或终端关闭,该命令也能够继续运行。通过使用 nohup 命令,可以确保程序在后台持续运行,而不会受到终端会话的影响。

  当你在终端中运行一个进程并希望在终端关闭后该进程仍然继续运行时,就可以使用 nohup 命令。例如:

nohup sh monitor.sh > nohup_monitor.log /dev/null 2>&1 &
  上面命令的语法解析

nohup:表示要以 "no hang up" 的方式运行命令,即使终端关闭也不会中断该命令的执行。
sh sr_monitor.sh:表示要执行名为 sr_monitor.sh 的 Shell 脚本。
>:表示重定向标准输出。
nohup_monitor.log:表示将标准输出重定向到一个名为 nohup_monitor.log 的文件中。
/dev/null:表示将标准输入重定向到空设备,即忽略所有输入。
2>&1:表示将标准错误输出重定向到与标准输出相同的位置,即也重定向到 nohup_monitor.log 文件。
&:表示在后台运行命令。
  这个命令的作用:

以 nohup 方式在后台运行 sr_monitor.sh 脚本;
将脚本的标准输出和标准错误输出都重定向到 nohup_monitor.log 文件;
忽略任何标准输入。
/dev/null 解析
  /dev/null 是 Linux 系统中的一个特殊文件,它是一个无处不在的数据黑洞。任何写入 /dev/null 的数据都会消失,不会有任何数据被保存下来。因此,command >/dev/null 会将 command 的标准输出重定向到 /dev/null,也就是丢弃标准输出。例如:

echo "Hello, World!" >/dev/null
  在这个命令中,echo "Hello, World!" 的输出 "Hello, World!" 会被重定向到 /dev/null,因此你不会在终端看到这个输出。

2>&1 解析
  2>&1 是一个重定向操作,它将标准错误(文件描述符 2)重定向到标准输出(文件描述符 1)。因此,command 2>&1 会将 command 的标准错误和标准输出合并,也就是将标准错误输出到标准输出。例如:

ls /path/to/nonexistent 2>&1
  在这个命令中,ls /path/to/nonexistent 的错误输出会被重定向到标准输出,因此你会在终端看到这个错误输出。

  将这两个重定向操作结合使用,command >/dev/null 2>&1,可以将 command 的标准输出和标准错误都丢弃。例如:

ls /path/to/nonexistent >/dev/null 2>&1
  在这个命令中,ls /path/to/nonexistent 的输出和错误都会被重定向到 /dev/null,因此你不会在终端看到任何输出。

  需要注意的是,>/dev/null 2>&1 的顺序是不能写反的。如果你写成 2>&1 >/dev/null,那么只有标准输出会被丢弃,标准错误还会被输出到终端。

 

最近修改过的文件

复制代码
find ./ -type f -mmin -240

命令 find ./ -type f -mmin -240 的作用是在当前目录(./)及其所有子目录下查找所有在最近240分钟内被修改过的文件

卸载软件命令

复制代码
rpm -e lrzsz --nodeps

mysql初始化

复制代码
mysql -h 192.168.3.201 -P 3306 -u root -p 123456 -e"${create_db_sql}"
ALTER USER 'root'@'localhost' IDENTIFIED BY 'aaA...111';
mysql -h 192.168.3.201 -P 3306 -u root -p 123456 -e"${create_db_sql}"
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'aaA...111' WITH GRANT OPTION;
自签发证书
复制代码
mkdir /data/ssl -p
openssl genrsa -out ca.key 3072
openssl req -new -x509 -days 3650 -key ca.key -out ca.pem
按照提示输入
openssl genrsa -out harbor.key 3072
openssl req -new -key harbor.key -out harbor.csr
按照提示输入
openssl x509 -req -in harbor.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out harbor.pem -days 3650
查看证书是否有效:
openssl x509 -noout -text -in harbor.pem
系统快速初始化脚本(centos7)
复制代码
#!/bin/bash
echo "=====系统环境初始化脚本====="
sleep 3
echo "——>>> 关闭防火墙与SELinux <<<——"
sleep 3
systemctl stop firewalld
systemctl disable firewalld &> /dev/null
setenforce 0
sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config

echo "——>>> 创建阿里仓库 <<<——"
sleep 3
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 
yum -y install wget
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  


echo "——>>> 设置时区并同步时间 <<<——"
sleep 3
timedatectl set-timezone Asia/Shanghai
yum -y install chrony
systemctl start chronyd
systemctl enable chronyd

echo "——>>> 设置系统最大打开文件数 <<<——"
sleep 3
if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535   #软限制
* hard nofile 65535   #硬限制
EOF
fi

echo "——>>> 系统内核优化 <<<——"
sleep 3
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1             #防范SYN洪水攻击,0为关闭
net.ipv4.tcp_max_tw_buckets = 20480     #此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死
net.ipv4.tcp_max_syn_backlog = 20480    #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数
net.core.netdev_max_backlog = 262144    #每个网络接口 接受数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数目
net.ipv4.tcp_fin_timeout = 20           #FIN-WAIT-2状态的超时时间,避免内核崩溃
EOF

echo "——>>> 减少SWAP使用 <<<——"
sleep 3
echo "0" > /proc/sys/vm/swappiness

echo "——>>> 安装系统性能分析工具及其他 <<<——"
sleep 3
yum install -y gcc make autoconf vim sysstat net-tools iostat lrzsz

#############################################################

k8s篇

nginx官方镜像安装ping命令

复制代码
apt-get install -y inetutils-ping
apt-get install -y dnsutils

阿里云容器镜像

复制代码
registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.6.1

yum源-k8s

复制代码
cat <<EOF> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum install -y kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0
systemctl enable kubelet && systemctl start kubelet

以镜像名中包含 xuxiaowei 为例去操作

查看 ctr 中 k8s 使用过的镜像 ctr -n=k8s.io i ls
查看 ctr 中 k8s 使用过的镜像:搜索 ctr -n=k8s.io i ls | grep xuxiaowei
查看 ctr 中 k8s 使用过的镜像:搜索:展示镜像ID ctr -n=k8s.io i ls -q | grep xuxiaowei
查看 ctr 中 k8s 使用过的镜像:搜索:展示镜像ID:拼接 ctr -n=k8s.io i ls -q | grep xuxiaowei | xargs
查看 ctr 中 k8s 使用过的镜像:搜索:展示镜像ID:拼接:删除 ctr -n=k8s.io i ls -q | grep xuxiaowei | xargs ctr -n=k8s.io i rm

命令补全

ubuntu系列

复制代码
source /usr/share/bash-completion/bash_completion;source <(kubectl completion bash)
echo "source /usr/share/bash-completion/bash_completion;source <(kubectl completion bash)" >> ~/.bashrc

centos系列

复制代码
yum install bash-completion
source /usr/share/bash-completion/bash_completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc
source ~/.bashrc

busybox测试命令

复制代码
kubectl run busybox --image docker.io/library/busybox:1.28 --image-pull-policy=IfNotPresent --restart=Never --rm -it busybox /bin/sh
复制代码
vim busybox-dp.yaml
复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: busybox
spec:
  replicas: 1
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
    spec:
      containers:
      - name: busybox
        image: busybox:1.28        #内置的linux大多数命令,多用于测试
        args:
        - /bin/sh
        - -c
        - sleep 10; touch /tmp/healthy; sleep 30000
        readinessProbe:           #就绪探针
          exec:
            command:
            - cat
            - /tmp/healthy
          initialDelaySeconds: 10         #10s之后开始第一次探测
          periodSeconds: 5
复制代码
vim busybox-pod.yaml
复制代码
apiVersion: v1
kind: Pod
metadata:
  name: busybox
  namespace: default
  labels:
    app: busybox
spec:
  containers:
  - name: busybox
    image: busybox:1.28
    command:
    - "/bin/sh"
    - "-c"
    - "sleep 3600"
    imagePullPolicy: IfNotPresent

k8s 常用的命令

复制代码
kubectl get nodes 
kubectl get pods
kubectl get pods --show-labels
kubectl get pods --show-labels -n kube-system
kubectl get pods -l run=my-nginx
kubectl get deploy
kubectl get rs
kubectl api-resources
kubectl describe nodes
kubectl describe nodes -owide
kubectl describe nodes xuegode63
kubectl apply -f pod.yaml
kubectl api-resources
kubectl expalin pods.metadata
kubectl explain Deployment
kubectl explain Deployment.metadata

将文件从节点复制到Pod中的容器

复制代码
kubectl cp /path/to/save/file.ext my-helper-pod:/path/to/save/file.ext

pod亲和性

复制代码
apiVersion: v1
kind: Pod
metadata:
  name: second
  labels:
    app: second
spec:
  containers:
  - name: myapp
    image: ikubernetes/myapp:v1
    imagePullPolicy: IfNotPresent
  affinity: 
    podAffinity: 
      requiredDuringSchedulingIgnoredDuringExecution: 
      - labelSelector: 
          matchExpressions: 
          - key: app
            operator: In
            values: 
            - first
        topologyKey: kubernetes.io/hostname

---

apiVersion: v1
kind: Pod
metadata:
  name: second
  labels:
    app: second
spec:
  containers:
  - name: myapp
    image: ikubernetes/myapp:v1
    imagePullPolicy: IfNotPresent
  affinity: 
    podAffinity: 
      requiredDuringSchedulingIgnoredDuringExecution: 
      - labelSelector: 
          matchExpressions: 
          - key: app
            operator: In
            values: 
            - first
        topologyKey: kubernetes.io/hostname

mysql常用命令

复制代码
# 5.7版本
grant all on *.* to 'mysql_monitor'@'%' identified by 'aaB...111'
flush privileges;

# 8.0版本
CREATE USER 'exporter'@'%' IDENTIFIED BY 'aaB...111' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';

#所有权限
GRANT ALL ON *.* TO 'exporter'@'%';

Ubuntu配置篇

常用命令的安装

复制代码
apt -y install xfsprogs openssh-server vim net-tools
systemctl stop ufw
systemctl disable ufw

配置bash命令补全

复制代码
vim /etc/bash.bashrc

# enable bash completion in interactive shells
放开这段代码
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
放开这段代码

解决20版本的复制粘贴

复制代码
apt autoremove open-vm-tools -y
apt install open-vm-tools-desktop -y
reboot

ssh服务安装

复制代码
apt-get install openssh-server -y
vim /etc/ssh/sshd_config

PermitRootLogin yes  # 修改这行

sudo passwd root #给root用户设定密码

systemctl restart ssh

允许root界面登录

复制代码
vim /etc/pam.d/gdm-password
把这行注释了  一般为第二行
#auth   required        pam_succeed_if.so user != root quiet_success

静态IP的设置

复制代码
vim /etc/netplan/01-network-manager-all.yaml
复制代码
# 静态IP
network:
  ethernets:
    ens33:
      dhcp4: false
      addresses: [192.168.3.22/24]
      # 废弃 gateway4,改用 routes
      routes:
        - to: default
          via: 192.168.3.2
      nameservers:
        # 这里必须缩进!
        addresses: [192.168.3.2]
  version: 2
  renderer: NetworkManager
————————————————————————————————————————————————————
# 动态IP
network:
  ethernets:
    ens33:
      dhcp4: true
  version: 2
  renderer: NetworkManager
复制代码
# 应用网卡配置
netplan apply

Ubuntu22版本修改国内源

复制代码
cp /etc/apt/sources.list /etc/apt/sources.list.backup
vim /etc/apt/sources.list

deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
相关推荐
Ehtan_Zheng2 小时前
彻底告别 AndroidX 依赖:如何在 KMP 中构建 100% 复用的 UI 逻辑层?
android
SPC的存折2 小时前
1、MySQL故障排查与运维案例
linux·运维·服务器·数据库·mysql
Hello小赵2 小时前
C语言如何自定义链接库——编译与调用
android·java·c语言
Run_Teenage2 小时前
Linux:认识信号,理解信号的产生和处理
linux·运维·算法
Deitymoon2 小时前
linux——TCP服务器获取客户端IP地址
linux·服务器·tcp/ip
小贾要学习2 小时前
【Linux】应用层自定义协议与序列化
linux·服务器·c++·json
Amnesia0_02 小时前
理解Linux中的OS管理和进程属性
linux·运维·服务器
十五年专注C++开发2 小时前
cpolar(极点云): 一款主流的内网穿透工具
linux·windows·cpolar·穿透
liliangcsdn3 小时前
LLM如何与mcp server交互示例
linux·开发语言·python