目目录
【1】、【linux】|grep -v '#'|grep -v '^$'
【7】、【linux】[Linux grep/egrep命令详解]
【8】、【mariadb】linux下mariadb安全配置向导 mysql_secure_installation
【11】、【ubuntu】Ubuntu系统:设置root账号
【12】【linux】centos7更改yum源为国内源,以阿里源为例
【13】【shell】shell脚本中判断上一个命令是否执行成功
【15】【shell】shell脚本 在已有文件中追加多行内容
【16】【shell】linux中用cat追加文件时遇见追加的内容里有$符号时的情况
【17】【python】python中if not isinstance使用
【18】【linux】shell tar解压.tar.gz格式到指定的目录下:
【19】【kafka】Kafka连接服务器出现:Connection to node 1 (localhost/127.0.0.1:9092) could not be established.
【一】、【新Linux系统环境配置流程】
【1】配置网络环境
#1、ifconfig命令未安装无法使用,使用如下命令查看网卡信息
<span style="background-color:#333333"><span style="color:#b8bfc6">ip address</span></span>
#2、进入以下路径对网卡进行配置
<span style="background-color:#333333"><span style="color:#b8bfc6">vi /etc/sysconfig/network-scripts/ifcfg-ens192</span></span>
#3、ifcfg-ens192的网卡文件中配置以下内容
<span style="background-color:#333333"><span style="color:#b8bfc6">TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=08749e55-f9b7-43f9-8eb0-2d1ba2dc795f
DEVICE=ens192
ONBOOT=yes
IPADDR=10.10.7.60
NETMASK=255.255.255.0
GATEWAY=10.10.7.1
DNS1=114.114.114.114
DNS2=8.8.8.8</span></span>
#4、配置完网卡信息后需要重启network服务,并检测网络是否连通
<span style="background-color:#333333"><span style="color:#b8bfc6">systemctl restart network</span></span>
#5、下载ifconfig服务,并进行验证
<span style="background-color:#333333"><span style="color:#b8bfc6">yum -y install net-tools</span></span>
#6、关闭防火墙
<span style="background-color:#333333"><span style="color:#b8bfc6">systemctl stop firewalld
systemctl disable firewalld</span></span>
#7、安装常用包
<span style="background-color:#333333"><span style="color:#b8bfc6">yum install -y lrzsz vim wget net-tools #lrzsz:用于xshell上传、下载文件</span></span>
==============================================
【2】关闭selinux
#1、临时关闭:关闭selinux
<span style="background-color:#333333"><span style="color:#b8bfc6">setenforce 0</span></span>
#2、永久关闭:关闭selinux
<span style="background-color:#333333"><span style="color:#b8bfc6">vi /etc/selinux/config</span></span>
将SELINUX=enforcing改为SELINUX=disabled 重启机器即可
将SELINUX=enforcing改为SELINUX=disabled 重启机器即可
#3、查看SELinux状态:
1、
<span style="background-color:#333333"><span style="color:#b8bfc6"> /usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled</span></span>
2、
<span style="background-color:#333333"><span style="color:#b8bfc6">bashgetenforce ##也可以用这个命令检查</span></span>
================================================
【3】git环境部署安装
#1、下载编译工具
<span style="background-color:#333333"><span style="color:#b8bfc6">yum -y groupinstall Development Tools</span></span>
#2、下载git依赖包
<span style="background-color:#333333"><span style="color:#b8bfc6">yum -y install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel</span></span>
#3、通过ftp或通过如下的scp命令从其他服务器将安装包git-2.34.1.tar.gz拷贝拷到/home路径下
<span style="background-color:#333333"><span style="color:#b8bfc6">scp git-2.34.1.tar.gz root@10.10.7.50:/home/</span></span>
#4、在/home路径下将tar安装包进行解压
<span style="background-color:#333333"><span style="color:#b8bfc6">tar -zxvf git-2.34.1.tar.gz</span></span>
#5、进入git的安装路径进行如下指令
<span style="background-color:#333333"><span style="color:#b8bfc6">cd /home/git-2.34.1
#(若git-2.34.1路径下只有configure.ac文件没有configure文件则需先执行 autoconf )
./configure --prefix=/usr/local/git</span></span>
#6、进行编译并安装
<span style="background-color:#333333"><span style="color:#b8bfc6">make && make install</span></span>
#7、配置全局路径
<span style="background-color:#333333"><span style="color:#b8bfc6">export PATH="/usr/local/git/bin:$PATH"
source /etc/profile</span></span>
#8、查看git的版本,是否安装成功
<span style="background-color:#333333"><span style="color:#b8bfc6">git --version</span></span>
================================================
【4】jdk环境的安装部署(离线部署方式)
#1、通过ftp上传或如下wget方式下载jdk的tar包(以jdk1.7为例,但该包下载解压后无jre)
<span style="background-color:#333333"><span style="color:#b8bfc6">wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz</span></span>
#2、创建/usr/local/java路径文件,在该路径中对下载的jdk的tar包进行解压
<span style="background-color:#333333"><span style="color:#b8bfc6">mkdir /usr/local/java
tar -zxvf jdk-8u301-linux-x64.tar.gz </span></span>
#3、设置环境变量:
<span style="background-color:#333333"><span style="color:#b8bfc6">vim /etc/profile</span></span>
#4、在/etc/profile文件中进行如下新增:
<span style="background-color:#333333"><span style="color:#b8bfc6">#设置jdk环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_301 #jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}</span></span>
:wq #保存
#5、使刚配置的环境变量生效:
<span style="background-color:#333333"><span style="color:#b8bfc6">source /etc/profile</span></span>
#6、查看jdk版本及是否安装成功
<span style="background-color:#333333"><span style="color:#b8bfc6">java -version</span></span>
=====================================================================================================
【5】fdisk分区
查看lvm工具是否存在:rpm -qa|grep lvm
查看分区类型及情况:lsblk
查看是否存在没有分区的磁盘: fdisk -l
对/dev/vdb进行分区:fdisk /dev/vdb
格式化新建分区:mkfs -t ext4 /dev/vdb1
挂载新分区到/dat目录下:mount /dev/vdb1 /data
#lvm
查看系统是否有lv逻辑卷:lvscan 或lvdisplay
查看vg:vgdisplay
查看pv:pvdisplay
创建PV:pvcreate /dev/vdb2 (pvcreate 新增分区路径)
扩展VG:vgextend centos_hikvisionos /dev/vdb2 (vgextend vg名称 新增的pv名称)
扩展LV:lvextend -L +20G /dev/centos/root (lvextend -L +20G lv路径)
rpm -qa|grep lvm
查看分区类型:lsblk
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@iZm5eenwt1nrwc19cgc5ukZ hik]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 250G 0 disk
├─vda1 253:1 0 1M 0 part
├─vda2 253:2 0 1G 0 part /boot
├─vda3 253:3 0 820M 0 part [SWAP]
├─vda4 253:4 0 1K 0 part
├─vda5 253:5 0 128M 0 part
└─vda6 253:6 0 6.1G 0 part
└─centos_hikvisionos-root 254:0 0 6G 0 lvm /
vdb 253:16 0 1T 0 disk
└─vdb1 253:17 0 1024G 0 part </span></span>
查看是否存在没有分区的磁盘: fdisk -l
第一步:分区
对/dev/vdb进行分区:fdisk /dev/vdb
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@iZm5eenwt1nrwc19cgc5ukZ hik]# fdisk /dev/vdb
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): m #输入m查看输出菜单
Command action
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): p #输出分区表进行查看
Disk /dev/vdb: 1099.5 GB, 1099511627776 bytes, 2147483648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: BD14E5C5-51E8-427C-AABA-53922E4DCF08
# Start End Size Type Name
1 2048 629147647 300G Linux filesyste
Command (m for help): n #新建一个分区2
Partition number (2-128, default 2): 2
First sector (34-2147483614, default 629147648):
Last sector, +sectors or +size{K,M,G,T,P} (629147648-2147483614, default 2147483614): +200G
Created partition 2
Command (m for help): p
Disk /dev/vdb: 1099.5 GB, 1099511627776 bytes, 2147483648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: BD14E5C5-51E8-427C-AABA-53922E4DCF08
# Start End Size Type Name
1 2048 629147647 300G Linux filesyste
2 629147648 1048578047 200G Linux filesyste
Command (m for help): w #将改动写入并离开
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@iZm5eenwt1nrwc19cgc5ukZ hik]#
</span></span>
第二步:格式化:
mkfs -t ext4 /dev/vdb1
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@iZm5eenwt1nrwc19cgc5ukZ hik]# mkfs -t ext4 /dev/vdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
67108864 inodes, 268434944 blocks
13421747 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2415919104
8192 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@iZm5eenwt1nrwc19cgc5ukZ hik]#
</span></span>
第二步:挂载:
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@iZm5eenwt1nrwc19cgc5ukZ /]# mkdir data
[root@iZm5eenwt1nrwc19cgc5ukZ /]# mount /dev/vdb1 /data
[root@iZm5eenwt1nrwc19cgc5ukZ /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos_hikvisionos-root 6.1G 6.1G 20K 100% /
devtmpfs 31G 0 31G 0% /dev
tmpfs 31G 0 31G 0% /dev/shm
tmpfs 31G 25M 31G 1% /run
tmpfs 31G 0 31G 0% /sys/fs/cgroup
/dev/vda2 1014M 149M 866M 15% /boot
tmpfs 6.2G 0 6.2G 0% /run/user/1000
tmpfs 6.2G 0 6.2G 0% /run/user/0
/dev/vdb1 1008G 77M 957G 1% /data
[root@iZm5eenwt1nrwc19cgc5ukZ /]# </span></span>
第四步:设置开机自动挂载
1、获取分区的 uuid:
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@iZm5eenwt1nrwc19cgc5ukZ /]# blkid
/dev/vda2: UUID="c454ed4e-68f4-4b1c-b38b-79355f0b8811" TYPE="xfs"
/dev/vda3: UUID="b1e437f5-4680-4418-b9bf-aa634e9ef309" TYPE="swap"
/dev/vda5: SEC_TYPE="msdos" UUID="4B87-F41E" TYPE="vfat"
/dev/vda6: UUID="GlWz9P-5d7K-W32p-13Xy-YPkb-NGf6-klim2T" TYPE="LVM2_member"
/dev/vdb1: UUID="5088ef3b-f150-4d75-b0b2-bd318669c081" TYPE="ext4" PARTLABEL="1" PARTUUID="2a31ef7b-00f6-4262-8387-73686a537e27"
/dev/mapper/centos_hikvisionos-root: UUID="c0f48d93-f29f-4352-9bd6-b979cc0d4cd8" TYPE="xfs"
[root@iZm5eenwt1nrwc19cgc5ukZ /]#</span></span>
2、编辑 /etc/fstab 文件:
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@iZm5eenwt1nrwc19cgc5ukZ etc]# vim fstab
</span></span>
=====================================================================================================
【6】对lv进行扩容
遇到的情况:在给分区扩容时,执行lvextend命令时报错Insufficient free space: 103970 extents needed, but only 10 available
原因是:划定vg时已经固定了容量,lv容量从vg扩充,第一次已经将vg的空间全部划给lv,所以无法扩充。需扩充vg,但扩充vg需先扩pv,扩pv需新建分区。
之前分区的盘没有分完,还有50G的剩余,所以可以用这个剩余来做物理卷。
具体操作如下:
1.先创建一个物理分区
使用fdisk /dev/vdb,选择n来创建一个新的分区比如vdb2,主分区还是逻辑分区对此例子无所谓。
选择‘n’创建新分区,主分区,逻辑分区对这个例子来说都可以,‘w’保存。
2.将分出来的/vdb2分区建为物理卷 (可以先执行pvdisplay ,查看一下/vdb2的路径在哪,然后在进行操作,一般都是在/dev下)
pvcreate /dev/vdb2 (pvcreate 新增分区路径)
3.为卷组vg添加新的物理卷vdb2来增大容量, (vgdisplay 查看vg的名称和路径)
vgextend centos_hikvisionos /dev/vdb2 (vgextend vg名称 新增的pv名称)
4.扩展逻辑卷的大小 (lvdisplay 查看lv 逻辑卷的路径和名称)
lvextend -L +20G /dev/centos/root (lvextend -L +20G lv路径)
5.最后用resizefs2 命令重新加载逻辑卷的大小才能生效。(或xfs_growfs命令)
resizefs2 /dev/centos/root
<span style="background-color:#333333"><span style="color:#b8bfc6">#【注意】:
#若执行报错则输入xfs_growfs /dev/centos/root
#原因:centos7 默认使用了xfs文件系统,
#所以
#如果使用xfs文件系统
##xfs_growfs /dev/root_vg/root
#如果使用ext4文件系统
##resize2fs /dev/root_vg/root</span></span>
6.再用df -h 查看逻辑卷的大小
=====================================================================================================
【二】、【日常软件操作】
【1】docker相关操作:
#从docker hub上下载镜像
<span style="background-color:#333333"><span style="color:#b8bfc6">docker pull centos:centos7</span></span>
#运行docker容器
<span style="background-color:#333333"><span style="color:#b8bfc6">docker run -i -t centos:centos7 /bin/bash</span></span>
参数说明: -i: 交互式操作。 -t: 终端。 centos:centos7 镜像及版本。 /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 要退出终端,直接输入 exit:
#登录harbor仓库10.10.7.52:80
<span style="background-color:#333333"><span style="color:#b8bfc6">[root@localhost home]docker login 10.10.7.52:80
Username: admin
Password:
Login Succeeded
[root@localhost home]systemctl status docker</span></span>
#在项目中标记镜像
<span style="background-color:#333333"><span style="color:#b8bfc6">docker tag centos:centos7 10.10.7.52:80/test/centos7</span></span>
#推送镜像到当前项目
<span style="background-color:#333333"><span style="color:#b8bfc6"> docker push 10.10.7.52:80/test/centos7</span></span>
#重命名镜像
<span style="background-color:#333333"><span style="color:#b8bfc6">docker tag 镜像名:版本号 新名字:新版本号
#【eg】
sudo docker tag centos:7 yunweijia_centos:10</span></span>
#删除镜像
<span style="background-color:#333333"><span style="color:#b8bfc6">docker rmi centos:7</span></span>
#查看所有镜像的运行状态(不加-a只显示正在运行的镜像)
<span style="background-color:#333333"><span style="color:#b8bfc6">docker ps -a</span></span>
#导出/导入镜像
<span style="background-color:#333333"><span style="color:#b8bfc6">docker save centos_test:7 >/home/bak/centos_7.rar #导出镜像
docker load < /home/bak/centos_7.rar #导入镜像</span></span>
#查看容器详细信息
<span style="background-color:#333333"><span style="color:#b8bfc6">docker inspect 容器ID</span></span>
#查看容器日志
<span style="background-color:#333333"><span style="color:#b8bfc6">docker logs 容器ID</span></span>
#后台运行容器
#需要有永久运行的程序,否则程序一旦停止,容器也将随之停止。
<span style="background-color:#333333"><span style="color:#b8bfc6">docker run -d 镜像:版本号 bash环境 运行的程序
#【eg】后面就加了一个永久运行的脚本
sudo docker run -d centos:7 /bin/bash -c "while true;do echo yunweijia; sleep 5; done"</span></span>
#进入后台运行的容器
<span style="background-color:#333333"><span style="color:#b8bfc6">docker exec -it 容器ID bash环境
#【eg】
sudo docker exec -it b47b053f66c2 /bin/bash</span></span>
#启动/停止后台容器
<span style="background-color:#333333"><span style="color:#b8bfc6">docker start 容器ID
docker stop 容器ID # 正常停止
docker kill 容器ID # 强制停止</span></span>
#删除容器
<span style="background-color:#333333"><span style="color:#b8bfc6">docker rm 容器ID #正常删除
docker rm -f 容器ID #强制删除
docker rm -f 容器ID 容器ID #批量删除</span></span>
#宿主机与容器间复制文件
<span style="background-color:#333333"><span style="color:#b8bfc6">#从主机复制到容器
sudo docker cp host_path containerID:container_path
#从容器复制到主机
sudo docker cp containerID:container_path host_path</span></span>
#进入后台运行的容器 exec & attach
<span style="background-color:#333333"><span style="color:#b8bfc6">docker exec -it 容器ID bash环境
#或
docker attach 容器ID
#【eg】
docker exec -it 3a5606474e20 /bin/bash
#或
docker attach 3a5606474e20</span></span>
#☆★注意:输入exit退出容器将会停止容器运行,在运行的容器中按Ctrl+P+Q进行容器退出后容器将继续运行
==========&