主机运维超常用命令整理-个人笔记

文章目录

    • 配置网卡
      • CentOs 7
      • Ubuntu 20.04
      • 网卡聚合
        • bond
        • team
      • 开启/关闭网卡
    • lvm磁盘管理
      • pv物理卷
      • vg卷组
      • lv逻辑卷
      • 格式化
      • 挂载磁盘
      • swap
    • fdisk和gdisk
      • MBR和GPT
    • 用户、组、密码时效
      • user--用户
          • useradd 添加用户
          • userdel 删除用户
          • usermod 更改用户
      • group--组
          • groupadd添加组
          • groupdel删除组
          • groupmod修改组
      • chage--设定密码时效
    • rpm--软件包管理器
    • iptables
    • tar
    • 重置系统密码
    • dmidecode--硬件信息
    • chronyc.conf
    • ipmitool lan print
    • yum

个人整理的一些简单但极常用的命令和脚本

配置网卡

CentOs 7

vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
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=ens33
UUID=37cd0531-46d3-4ec7-88cc-8e4bad12bda1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.190.30
PREFIX=24
GATEWAY=192.168.190.1
DNS1=8.8.8.8
IPV6_PRIVACY=no

systemctl restart neteork

Ubuntu 20.04

vim /etc/netplan/00-installer-config.yaml

network:
  ethernets:
    ens33:
      addresses: [192.168.56.11/24]
      gateway4: 10.12.1.254
      nameservers:
        addresses: [192.168.56.2,8.8.8.8]
        search: []
  version: 2
netplan apply

网卡聚合

bond

两张网卡配置bond脚本:

执行条件:已配置单ip && 主机有且只有两张网卡

脚本可以重复执行

# 加载bond模块
modprobe bonding
# 删除bond模块
# rmmod bonding

# bond check
for i in `ls -l /proc/net/bonding/|grep -v total|awk '{print $NF}'`;do
if [[ `cat /proc/net/bonding/$i|grep 'Slave Interface'|wc -l 2>>/dev/null` -eq 2 ]];then
echo "$i is already ok:";cat /proc/net/bonding/$i|egrep 'Slave Interface|Mode';exit
fi;done
# ip/NIC check
if [[ `ip a|grep global|wc -l` -ne 1 ]];then
echo "not single ip";exit
elif [[ `ip a|grep 'state UP'|awk -F ': ' '{print $2}'|wc -l` -ne 2 ]];then
echo "not two NICs";exit
fi

# 指定两个网卡名和ip
bond_slave1=`ip a|grep 'state UP'|awk -F ': ' '{print $2}'|head -1`
bond_slave2=`ip a|grep 'state UP'|awk -F ': ' '{print $2}'|tail -1`
ip_addr=`ip a|grep global|awk '{print $2}'`
ip_gateway=`ip a| grep global|awk '{print $2}'|awk -F '/' '{print $1}'|awk -F '.' '{print $1"."$2"."$3".1"}'`

# 添加bond接口
nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses $ip_addr ipv4.gateway $ip_gateway autoconnect true 1>>/dev/null
### 若是CentOS7且是虚拟机,需额外配置 ###
#echo 'BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"' >>/etc/sysconfig/network-scripts/ifcfg-bond0

# 添加子网卡 bond-slave
nmcli con add type bond-slave ifname $bond_slave1 master bond0 1>>/dev/null
nmcli con add type bond-slave ifname $bond_slave2 master bond0 1>>/dev/null
# 若没有为从属接口提供连接名,则该名称为"接口名称-类型-网卡名"
# 启动绑定
nmcli con up bond0 1>>/dev/null && nmcli con up bond-slave-$bond_slave1 1>>/dev/null && nmcli con up bond-slave-$bond_slave2 1>>/dev/null
# 配置文件
sed -i "/^ONBOOT/s/ONBOOT.*/ONBOOT=\"no\"/" /etc/sysconfig/network-scripts/ifcfg-$bond_slave1
sed -i "/^ONBOOT/s/ONBOOT.*/ONBOOT=\"no\"/" /etc/sysconfig/network-scripts/ifcfg-$bond_slave1

# bond 查看接口的相关信息
echo ""
echo "bond0: " && cat /proc/net/bonding/bond0|egrep 'Slave Interface|Mode' 
# bond 切换网卡
# ifenslave -c bond0 网卡名
# bond 删除
# nmcli con del bond0

七种bond模式说明:常用0、1、6

第⼀种模式:mod=0,即:(balance-rr) Round-robin policy(平衡抡循环策略)
特点:传输数据包顺序是依次传输(即:第1个包⾛eth0,下⼀个包就⾛eth1….⼀直循环下去,直到最后⼀个传输完
毕),此模式提供负载平衡和容错能⼒。

第⼆种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略)
特点:只有⼀个设备处于活动状态,当⼀个宕掉另⼀个⻢上由备份转换为主设备。mac地址是外部可⻅得,从外⾯看
来,bond的MAC地址是唯⼀的,以避免switch(交换机)发⽣混乱。此模式只提供了容错能⼒;由此可⻅此算法的优点
是可以提供⾼⽹络连接的可⽤性,但是它的资源利⽤率较低,只有⼀个接⼝处于⼯作状态,在有 N 个⽹络接⼝的情况 下,资源利⽤率为1/N。

第三种模式:mod=2,即:(balance-xor) XOR policy(平衡策略)
特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR ⽬标MAC地址) % slave数量。其他
的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能⼒。

第四种模式:mod=3,即:broadcast(⼴播策略) 特点:在每个slave接⼝上传输每个数据包,此模式提供了容错能⼒。

第五种模式:mod=4,即:(802.3ad) IEEE 802.3adDynamic link aggregation(IEEE
802.3ad 动态链接 聚合) 特点:创建⼀个聚合组,它们共享同样的速率和双⼯设定。根据802.3ad规范将多个slave⼯作在同⼀个激活的聚合体 下。 必要条件:
条件1:ethtool⽀持获取每个slave的速率和双⼯设定。 条件2:switch(交换机)⽀持IEEE 802.3ad Dynamic
link aggregation。 条件3:⼤多数switch(交换机)需要经过特定配置才能⽀持802.3ad模式。

第六种模式:mod=5,即:(balance-tlb) Adaptive transmit load
balancing(适配器传输负载均衡)
特点:不需要任何特别的switch(交换机)⽀持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分
配外出流量。如果正在接受数据的slave出故障了,另⼀个slave接管失败的slave的MAC地址。 该模式的必要条件:
ethtool⽀持获取每个slave的速率

第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)
特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance,
rlb),⽽且不需要任何switch(交换机)的⽀持。

team

两张网卡配置team脚本:centos7及以上使用,且不能重复执行,还在完善

# 指定两个网卡名和ip
team_slave1='eno1'
team_slave2='eno2'
ip_addr='133.38.111.111/24'
ip_gateway='133.38.111.1'

# 添加team接口
nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'  ipv4.method manual ipv4.addresses $ip_addr ipv4.gateway $ip_gateway autoconnect true 
### 若是CentOS7且是虚拟机,需额外配置 ###
# nmcli con mod team0 config '{"runner":{"name":"activebackup", "hwaddr_policy":"by_active"}}'

# 添加子网卡 team-slave
nmcli con add type team-slave ifname $team_slave1 con-name $team_slave1 master team0
nmcli con add type team-slave ifname $team_slave2 con-name $team_slave2 master team0
# 网卡配置文件
mv /etc/sysconfig/network-scripts/ifcfg-$team_slave1 /etc/sysconfig/network-scripts/ifcfg-$team_slave1.bak
mv /etc/sysconfig/network-scripts/ifcfg-$team_slave2 /etc/sysconfig/network-scripts/ifcfg-$team_slave2.bak
mv /etc/sysconfig/network-scripts/ifcfg-$team_slave1-1 /etc/sysconfig/network-scripts/ifcfg-$team_slave1
mv /etc/sysconfig/network-scripts/ifcfg-$team_slave2-1 /etc/sysconfig/network-scripts/ifcfg-$team_slave2
sleep 3
# 重载网络配置
systemctl restart NetworkManager
systemctl restart network
ifdown $team_slave1 && ifdown $team_slave2
ifup $team_slave1 && ifup $team_slave2
ifdown team0 && ifup team0

# team 切换活动网卡
# teamdctl team0 state item set runner.active_port 网卡名称
teamdctl team0 state item set runner.active_port $team_slave1
# team 查看接口的相关信息
sleep 3;teamdctl team0 state
# 获取网卡模式 teamnl team0 getoption mode

team种类

broadcast               # 广播容错
roundrobin              # 平衡轮叫
activebackup            # 主备模式
loadbalance             # 负载均衡模式,判断不同网卡的负载,给负载最少的网卡发送数据包

开启/关闭网卡

ip link set eth0 up		#开
ip link set eth0 down	#关
ifup/ifdown eth0
ethtool -p eno1 		#点亮网卡

lvm磁盘管理

pv物理卷

pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
pvremove /dev/sdb1 /dev/sdb2 /dev/sdb3

vg卷组

vgcreate vg_name(名称) /dev/sdb1
vgextend vg_data(现有的vgname) /dev/sdb1(PV绝对路径)  # 将新的PV加入到当前VG

lv逻辑卷

lvcreate -n lv_name(lvname) -L 7454.72G(lv磁盘大小) vg_name(vg名字)
lvcreate -n lv_name(lvname) -l 100%VG(lv磁盘大小) vg_name(vg名字)
lvcreate -n lv_name(lvname) -l 100%FREE(lv磁盘大小) vg_name(vg名字)
lvextend -L +837G(需要扩多大空间) /dev/mapper/lv_name(现有lv绝对路径)

报错处理方式: device /dev/sdb excluded by a filter

wipefs -a /dev/sdb

格式化

mkfs.xfs /dev/mapper/lvname
xfs_growfs /dev/centos/root  (扩容xfs格式)
resize2fs /dev/vg01/lv01   (扩容ext格式)

挂载磁盘

如果不做lv直接单盘挂载,则需要用UUID

vi /etc/fstab
mount -a

swap

# 创建lv_swap
lvcreate -n lv_swap_new -L 100G centos
mkswap /dev/centos/lv_swap_new
# 打开交换分区,检查
swapon /dev/centos/lv_swap_new
swapon -s
free -g
lsblk
# 若临时添加,不需要fstab
vi /etc/fstab
/dev/vg_name_swap_new  swap  swap  defaults 0 0

swapoff

# 清理缓存
sync && sync && sync && echo 1 > /proc/sys/vm/drop_caches
# 如果swap较大,关闭会很慢,就使用screen关闭swap
screen -R swapoff
swapoff /dev/centos/..
# 关闭自动挂载,删除lv_swap
vi /etc/fstab
swapon -s
# grub
vi /etc/default/grub
grub2-mkconfig -o /etc/grub2.cfg

fdisk和gdisk

gdisk可以对2T以上的磁盘进行操作,fdisk不行
fdisk只能用于MBR分区,gdisk可以用于GPT分区

MBR和GPT

MBR分区:不支持4T以上
GPT分区:GPT,全局唯一标识分区表(GUID Partition Table),它使用128位GUID来唯一标识每个磁盘和分区,与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过CRC校验和来检测GPT头和分区表中的错误与损坏;默认一个硬盘支持128个分区


用户、组、密码时效

user–用户

/etc/passwd

useradd 添加用户
#常用:
useradd -d 指定家目录 -m 用户名 -s /bin/nologin
echo “密码” | passwd --stdin 用户
setfacl -m u:用户名:rwx 目录
getfacl 目录
-e expireDate		#有效期
-g primaryGroup		#主组
-G gruop1,group2...	#次要组,最多31个
-s loginShell		#登陆解释器
-u userid
userdel 删除用户
-r						#同时删除用户拥有的资源
-G <username> <groupname>	#将用户从组中删除
usermod 更改用户
usermod -参数 username
-l newUsername	#更改用户名
-u newUserid	#更改userid
-L				#锁定账户
-U				#解锁账户
-a				#给用户添加一个组

group–组

/etc/group

groupadd添加组
groupdel删除组
groupmod修改组
groupmod -n <oldname> <newname>		#修改组名
groupmod -g <newGid> <groupname>	#修改gid

chage–设定密码时效

chage -参数 username
选项				意义
-l				#查看密码时效具体信息
-d YYYY-MM-DD	#人工设定“Last Day”,这是linux记录的上次更改密码的日期
-m minday		#“Last Day”后密码可以更改的最少天数
-M maxdays		#“Last Day”后密码可以使用的最多天数.这段时间的最后一天叫做Maximum Day或Password Expiration Day
-W warnday		#Maximum Day前多少天,用户开始收到更改密码警告
-I inactivedays	#Maximum Day后多少天,若用户还未更改密码,账户将被锁定
-E YYYYY-MM-DD	#设定账户(不是密码)的过期日期

rpm–软件包管理器

RPM:数据库file /var/lib/rpm/

所有软件包:/mnt/Packages/

# rpm命令
rpm -i	(install)				从软件包文件中安装软件
rpm -U	(update)、rpm -F	(fresh)	从软件包文件中升级软件
rpm -e	(erase)					删除软件包
rpm -q	(query)					查询RPM数据库
rpm -V	(verify)				校验已安装的软件包,报告了自安装以来被修改过的文件
rpm -checksig					校验RPM数据包文件的完整性
# 与`rpm -i|rpm -U|rpm -F`一起使用的命令行选项
选项					作用
-h, --hash			安装时输出'#'符号
-v, --verbose		打印“冗长的”输出。一个-v选项打印软件包名称,多个-v选项提供更详细的输出
--nodeps			即使不符合前提条件,也进行安装
--replace-files		安装时已有的文件会被新文件覆盖
--force				即使已经安装了软件包,也进行安装
--test				不执行任何动作,只打印输出
--noscripts			不执行与RPM安装有关的任何脚本
# rpm -q
-q --requires		可以查询RPM软件包的先决条件。
-q -provides		可以查询RPM软件包所满足的RPM先决条件。
-qa --last 			可以生成软件包及其安装时间的排序列表。
-q -scripts			查询RPM软件包中含有安装或删除软件包时所执行的脚本。
-qf					拥有文件 filename 的软件包

iptables

INPUT链 第二行 添加一条策略

iptables -I INPUT 2 -s 133.37.1.0/24 -j ACCEPT

WEIHU链 添加一条策略

iptables -I WEIHU -s 133.37.1.64/26 -j ACCEPT

连续ip和连续端口 的策略

iptables -I INPUT -m iprange --src-range 10.251.1.100-10.251.1.200 -p tcp -m multiport --dport  9000:9999 -j ACCEPT

保存到文件

iptables-save >/etc/sysconfig/iptables

tar

文件格式 解压命令
.tar tar -xvf
.gz gzip -d 或 gunzip
tar.gz和.tgz tar -xzf
bz2 bzip2 -d 或 bunzip2
tar.bz2 tar -xjf
.Z uncompress
.tar.Z tar -xZf
rar unrar e
zip unzip
tar [options] [archive-file] [file or directory to be archived]
options:
-c:压缩
-x:解压
-f:创建具有给定文件名的压缩文档
-t:显示或列出压缩文件中的文件
-u:压缩并且添加到已有的压缩文件中
-v:显示详细信息
-A:连接压缩文件
-z:告诉tar命令使用gzip创建tar文件
-j:使用tbzip过滤tar压缩文件
-W:验证压缩文件
-r:在已经存在的.tar文件中更新或添加文件或目录

archive-file:
归档文件是由一个或多个文件以及元数据组成的文件。归档文件用于将多个数据文件收集到一个文件中,
以便于移植和存储,或者简单的压缩文件以使用更少的存储空间。

重置系统密码

# reboot重启系统,在引导界面按“e”,找到linux并且按“end”键到行尾输入:空格 rd.break
# 接下来按CTRL+X 开始引导系统,接着输入命令:
mount-o remount,rw /sysroot (重新挂载)
chroot /sysroot
echo “password” | passwd --stdin root
touch /.autorelabel (自动重写标签)
exit

dmidecode–硬件信息

dmidecode -t 1
dmidecode | grep -i date
dmidecode  -s bios-release-date		#查看服务器出厂日期

chronyc.conf

# 备份
cp /etc/chrony.conf /etc/chrony.conf.bak
# 配置文件
sed -i '/pool.ntp.org/iburst/d' /etc/chrony.conf
sed -i '3a server 133.37.8.240 iburst' /etc/chrony.conf
systemctl restart chronyd
# 检查
chronyc sources -a
datetime
#查看时间同步
chronyc sources -Z

ipmitool lan print

物理机查看管理ip

ipmitool lan print	#需要下载ipmitool工具

yum

yum不安装软件,仅下载安装包至指定路径

yum install --downloadonly --downloaddir=/tmp/ vsftpd

你可能感兴趣的:(运维,笔记,服务器,linux)