当前位置: 首页 > 工具软件 > Tmux Guest > 使用案例 >

掩码 mail virsh工具 tmux分频工具

微生德泽
2023-12-01

sed -i ‘/#/d’ /etc/maxscale.cnf #删除文件中的以#号开头的行

~]#PATH=/usr/local/mysql/bin:KaTeX parse error: Expected 'EOF', got '#' at position 25: … ~]#̲vim /etc/profil…PATH #将源码安装的软件 绝对路径的命令永久设置成系统命令

~]#source /etc/profile

	单引号''和双引号""

	两者都是解决变量中间有空格的问题。


	在bash中“空格”是一种很特殊的字符,比如在bash中这样定义str=this is String,这样就会报错,为了避免出错就得使用单引号''和双引号""。	

	单引号'',双引号""的区别是单引号''剥夺了所有字符的特殊含义,单引号''内就变成了单纯的字符。双引号""则对于双引号""内的参数替换($)和命令替换(``)是个例外。

	比如说   n=3
	echo '$n'

	结果就是n3

	改成双引号  echo "$n",结果就是3

	反引号``

	反引号``是命令替换,命令替换是指Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出。语法:`command`

	下面的例子中,将命令执行结果保存在变量中:

#!/bin/bash

DATE=date echo “Date is $DATE” USERS=who | wc -l echo “Logged in user are $USERS” UP=date ; uptime echo “Uptime is $UP”

	运行结果:

Date is Thu Jul 2 03:59:57 MST 2009 Logged in user are 1 Uptime is Thu Jul 2 03:59:57 MST 2009 03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15

stat 文件名 /目录 #查看文件目录的元数据屬性
rmdir 目录 #删除空目录

255.255.255.248
512 256 128 64 32 16 8 4 2 1
子网掩码的换算方法
1 首先将子网掩码换算成二进制
2 把子网中对应的主机部分的ip地址换算成二进制
3把子网中主机部分对应的ip地址转换为0是当前网段最小ip 转换为1是当前网段最大ip

非交互试发邮件
~]# mail -s 主题 地址用户名 << ABC
内容

ABC

字符比较的符号有 == != -Z
数字的有 -eq -ne -gt -ge -lt -le
文件或目录 -e -f -d -r(读) -w(写) -x(执行)

awk格式
BEGIN 里的命令 在读取文件之前执行1次
{} 里的命令 在读取文件之前执行n次
END 里的命令 在读取文件之后执行1次
awk 选项 ‘BEGIN{} 条件{} END{}’ 文件
选项-F 指定分隔符
-v 变量=值
条件: /正则/ #对整行匹配/a/
$1~/正则/ # 仅对第一列匹配$1~/a/
$1!~/正则/ #不对 第一列匹配$1~/a/
精确匹配符号(字符,数字) == != > >= < <=

      • / % ++ – += *= /=
        awk -F: ‘BEGIN{print “用户名 UID 家目录”}{print $1,$3,$6}END{print $NR}’ /etc/passwd | column -t

HPC
用户管理
~LDAP
~NIS

存储管理
~NFS
~CLUSTRE----开源的版本
~GPFS----商业版IBM

调度管理
~Torque
~Openpbs
~Pbspro
~Slurm
~LSF---->商业版–IBM

NIS安装
Server端
yum install ypserv ypbind
Client
yum install ypbind

·cd /var/yp make 同步数据
·/etc/sysconfig/network
·NISDOMAIN=NIS域名
·/etc/yp.conf
·domain 域名 server serverIP
·/etc/nsswitch.conf
·33行 files 后面添加nis

·nisdomainname

·systemctl start yppasswdd 起服务
·systemctl start ypserv

Client 端
把服务端所做的三个文件scp到客户端对应的目录下
ypcat passwd 查看服务端非系统自带的用户

yum -y install tmux 终端
tmux attach -t 会话名 ---- 连接会话
ctrl+b d —分离会话
tmux new -s 名字 ----创建窗口
tmux ls ----查看会话
tmux kill-session -t 会话名 ----杀死会话
ctrl+b w ----切换窗口
exit ctrl+b & ----退出窗口
面板
ctrl+b % 垂直分割 ctrl+b o 跳到另一边
ctrl+b " 上下分割 ctrl+b 上下左右键切换
在使用过程中,如果有断电情况会保存数据,后续直接使用tmux attach -t 会话名 就可以正常使用。
linux下终端分屏使用的两种方法(screen和tmux)
一、使用screen分屏(只能上下分屏,不能左右分屏)
(1)安装工具
在ubuntu系统中使用sudo apt-get install screen 安装screen工具
(2)使用工具
1,输入命令screen使用工具
2,上下分屏:ctrl + a 再按shift + s
3,切换屏幕:ctrl + a 再按tab键
4,新建一个终端:ctrl + a 再按c
5,关闭一个终端:ctrl + a 再按x (或直接按exit退出)
二、使用tmux分屏(既可以左右分屏,也可以上下分屏)
(1)安装工具
在ubuntu系统中使用sudo apt-get install tmux安装tmux工具
(2)使用工具
1,输入命令tmux使用工具
2,上下分屏:ctrl + b 再按 "
3,左右分屏:ctrl + b 再按 %
4,切换屏幕:ctrl + b 再按o
5,关闭一个终端:ctrl + b 再按x
6,上下分屏与左右分屏切换: ctrl + b 再按空格键

virsh
virsh 是kvm一个管理工具包。virsh提供两种执行模式:”直接模式(Direct Mode)”与”互动模式(Interactive Mode)”。在直接模式里,你必须在Shell中以参数、自变量的方式来执行virsh,如果在互动模式中,则virsh会提供一个提示字符串, 你可以在该提示字符串后,输入要执行的命令。如果执行virsh没有指定任何参数或自变量则默认就是进入互动模式。 与xm一样,COMMAND也是 virsh提供的命令
virsh语法: virsh [COMMAND] [ARGS…]
参数:
autostart #自动加载指定的一个虚拟机
connect #重新连接到hypervisor
console #连接到客户会话
create #从一个SML文件创建一个虚拟机
start #开始一个非活跃的虚拟机
destroy #删除一个虚拟机
define #从一个XML文件定义一个虚拟机
domid #把一个虚拟机名或UUID转换为ID
domuuid #把一个郁闷或ID转换为UUID
dominfo #查看虚拟机信息
domstate #查看虚拟机状态
domblkstat #获取虚拟机设备快状态
domifstat #获取虚拟机网络接口状态
dumpxml #XML中的虚拟机信息
edit #编辑某个虚拟机的XML文件
list #列出虚拟机
migrate #将虚拟机迁移到另一台主机
quit #退出非交互式终端
reboot #重新启动一个虚拟机
resume #重新恢复一个虚拟机
save #把一个虚拟机的状态保存到一个文件
dump #把一个虚拟机的内核dump到一个文件中以方便分析
shutdown #关闭一个虚拟机
setmem #改变内存的分配
setmaxmem #改变最大内存限制值
suspend #挂起一个虚拟机
vcpuinfo #虚拟机的cpu信息
version #显示virsh版本

一、什么是虚拟化

虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。

二、虚拟化能做什么

CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

三、虚拟化分类

虚拟化可分为两类,完全虚拟化(full virtualization)和半虚拟化(paravirtualization)。

完全虚拟化(full virtualization):完全虚拟化是一种虚拟化技术用于提供一种虚拟机环境,即一个完整的底层硬件仿真。完全虚拟化要求每个硬件的显著特征被映射到每一个虚拟机上。在虚拟机(VM)和硬件之间之间增加一个软件层–Hypervisor,实现虚拟机管理。工作与完全虚拟化的虚拟机不知道有hypervisor的存在。

半虚拟化(paravirtualization):半虚拟化是一种虚拟化技术,提出了一种虚拟机软件界面相似,但不完全相同的底层硬件。宿主计算机操作系统需要支持para-API,并通过virtual machine monitor (VMM)管理。也就是让虚拟机明确知道自己工作在虚拟环境中。

其中,hypervisor 可以划分为两大类。

类型 1,这种 hypervisor 是直接运行在物理硬件之上的,例如:vmware vsphere, kvm等。

类型 2,这种 hypervisor 运行在另一个操作系统(运行在物理硬件之上)中,例如:VMware workstation, xen(hvm)等。

除此之外,还有以下虚拟化分类:

用户空间虚拟化(容器)拥有独立的文件树和进程树于独立的名字空间中,容器间可通信。可打包如httpd, tomcat

服务于一个文件中,利于快速部署。

docker是容器的一种易于快速部署的方式,kvm+docker是流行的部署方式。

docker的其他实现方式:lxc, openvz, solaris containers, FreeBSD jails

库虚拟化:

WINE,Cywin

应用程序虚拟化:

jvm, pvm

四、KVM的相关术语

KVM (名称来自英语: Kernel-basedVirtual Machine 的缩写,即基于内核的虚拟机),是一种用于Linux内核中

的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Linux 2.6.20核心中,以

加载核心模块的方式被移植到FreeBSD及illumos上。

KVM必须在在具备硬件支持的Intel VT或AMD-V功能的平台上运行。

KVM安装后,宿主机(HOST)的kernel变为hypervisor。原有操作系统变为domain 0,提供控制台和I/O管理。KVM虚拟机可直接通过原kernel的kvm模块调用宿主机的cpu和

内存,I/O部分则需要先到domain0,再到宿主硬件设备。

运行模式如下:

内核模式:GuestOS执行I/O类操作;

用户模式:代表GuestOS请求I/O类操作;

来宾模式:GuestOS的非I/O类操作;

kvm hypervisor:安装过KVM的kernel;

两类组件:
/dev/kvm:字符设备文件,工作于hypervisor,主要用于创建VM、为VM分配内存、读写VCPU的寄存器、向VCPU注入中断、运行VCPU等等;
qemu进程:工作于用户空间,主要用于实现模拟PC机的IO设备;
QEMU主要提供以下功能:
五、安装KVM
在正式安装之前,我们先来看看这张kmv和各管理工具的关系图。

kvm-libvert.jpg

QUME的主要功能:

处理器模拟器

仿真IO设备

关联模拟的设备至真实设备;

调试器

与模拟器交互的用户接口

qemu:kmv的文本管理工具,包括qemu-kvm、qemu-img

libvirt:是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,libvirtd是运行的守护进程的名称。包括GUI: virt-manager, virt-viewer,CLI: virt-install, virsh

安装步骤:

(1) 确保CPU支持HVM

grep -E –color=auto “(vmx|svm)” /proc/cpuinfo

(2) 装载模块

modprobe kvm

lsmod | grep kvm

(3)验证

ls -l /dev/kvm

(4)安装libvirt

yum install libvirt -y

(5)安装其他管理组件

yum install -y virt-manager virt-viewer virt-install

yum install -y qemu-kvm

(6)启动libvirtd守护进程

systemctl start libvirtd

验证:ifconfig多了virbr0虚拟网桥(只能是nat模式)

[root@localhost ~]# ifconfig

virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500

    inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

    ether 52:54:00:57:1a:76  txqueuelen 0  (Ethernet)

    RX packets 0  bytes 0 (0.0 B)

    RX errors 0  dropped 0  overruns 0  frame 0

    TX packets 0  bytes 0 (0.0 B)

    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(7)启动virt tui

virt-manager

ps aux

root 14996 13.9 8.7 1197240 87980 ? Ssl 23:41 0:01 /usr/bin/python2 /usr/share/virt-manager/virt-manager

使用virsh测试各命令及创建虚拟机

  1. 获取各命令帮助

virsh help KEYWORD

#virsh help list

  1. 查看域,–all选项可查看关机的虚拟机域,域id每次开关机后可能不一样

root@localhost ~]# virsh list –all

Id Name State

—————————————————-

– debian8 shut off

  1. 查看虚拟机配置文件

注意为xml格式,可以到处到某处查看或以此为模板创建其他虚拟机

虚拟机以域(domain)为单位创建

virsh dumpxml debian8 > /tmp/mytemplate.xml

  1. 创建域

create

virsh create [–console] [–paused] [–autodestroy] [–pass-fds ] [–validate]

[–file] <string>  file containing an XML domain description

–console        attach to console after creation

–paused         leave the guest paused after creation

–autodestroy    automatically destroy the guest when virsh disconnects

–pass-fds <string>  pass file descriptors N,M,… to the guest

–validate       validate the XML against the schema
  1. 获取域id

[root@localhost ~]# virsh domid debian8

3

  1. 获取域uuid

[root@localhost ~]# virsh domuuid debian8

9332c5a4-4abc-4e7f-bec0-faf394950a55

  1. 获取域信息

[root@localhost ~]# virsh dominfo debian8

Id: 3

Name: debian8

UUID: 9332c5a4-4abc-4e7f-bec0-faf394950a55

OS Type: hvm

State: running

CPU(s): 2

CPU time: 428.6s

Max memory: 1047552 KiB

Used memory: 1047552 KiB

Persistent: yes

Autostart: disable

Managed save: no

Security model: selinux

Security DOI: 0

Security label: system_u:system_r:svirt_t:s0:c327,c602 (enforcing)

  1. 登录虚拟机控制台

[root@localhost ~]# virsh console debian8

Connected to domain debian8

Escape character is ^]

使用ctrl+],退出console

  1. 开启域

[root@localhost ~]# virsh start debian8

Domain debian8 started

  1. 重启域

reboot

  1. 关闭域

destory

shutdown

  1. 删除域

undefine

  1. 暂停域并保存域状态至某文件中

virsh save debian8 /tmp/debian_save1 –running

–running 下次恢复,直接启动

  1. 从保存文件中恢复域

virsh restore /tmp/debian_save1

管理域的命令:

  1. 改变内存大小

不能超出预设值,只能调小,可以当前生效,也可以下次生效

virsh setmem debian8 786m –current

[root@localhost ~]# virsh dominfo debian8

Id: 5

Name: debian8

UUID: 9332c5a4-4abc-4e7f-bec0-faf394950a55

OS Type: hvm

State: running

CPU(s): 2

CPU time: 1471.5s

Max memory: 1047552 KiB

Used memory: 804864 KiB #此处为改过的值

Persistent: yes

Autostart: disable

Managed save: no

Security model: selinux

Security DOI: 0

Security label: system_u:system_r:svirt_t:s0:c470,c985 (enforcing)

[root@localhost ~]# free -mh

                 total        used        free      shared  buff/cache   available

Mem: 977M 741M 73M 4.2M 162M 64M

Swap: 1.9G 1.1G 827M

  1. 设定内存最大内存

运行中的域不能修改最大内存值

[root@localhost ~]# virsh setmaxmem debian8 900m –config

下次启动有效

  1. 设定vcpu数量

virsh setvcpus debian8 1 –config

不能实时改,下次启动有效

  1. 获取vcpu信息

[root@localhost ~]# virsh vcpuinfo debian8

VCPU: 0 #vcpu

CPU: 0 #在宿主机cpu位置

State: running

CPU time: 675.5s

CPU Affinity: yyyy

VCPU: 1

CPU: 1

State: running

CPU time: 694.2s

CPU Affinity: yyyy

  1. 获取域网络接口信息

[root@localhost ~]# virsh domiflist debian8

Interface Type Source Model MAC

——————————————————-

vnet0 network default virtio 52:54:00:82:53:a2

  1. 获取域的接口统计信息

[root@localhost ~]# virsh domifstat debian8 vnet0

vnet0 rx_bytes 197810

vnet0 rx_packets 3755

vnet0 rx_errs 0

vnet0 rx_drop 0

vnet0 tx_bytes 13400

vnet0 tx_packets 111

vnet0 tx_errs 0

vnet0 tx_drop 0

  1. 获取域块设备信息

[root@localhost ~]# virsh domblklist debian8

Target Source

————————————————

vda /var/lib/libvirt/images/debian8.qcow2

hda –

  1. 获取域块设备(存储)统计信息

[root@localhost ~]# virsh domblkstat debian8

rd_req 21908

rd_bytes 670065746

wr_req 1105

wr_bytes 29772800

flush_operations 229

rd_total_times 97947369758

wr_total_times 60546346501

flush_total_times 1534616225

创建及管理磁盘:

  1. 创建磁盘

[root@localhost ~]# qemu-img create -f qcow2 -o preallocation=metadata /tmp/test.qcow2 120G 稀疏格式

Formatting ‘/tmp/test.qcow2’, fmt=qcow2 size=128849018880 encryption=off cluster_size=65536 preallocation=‘metadata’ lazy_refcounts=off

[root@localhost ~]# du -lh /tmp/test.qcow2

19M /tmp/test.qcow2

[root@localhost ~]# ll -lh /tmp/test.qcow2

-rw-r–r–. 1 root root 121G Jan 12 13:53 /tmp/test.qcow2

  1. 增加磁盘大小

[root@localhost ~]# qemu-img resize /tmp/test.qcow2 150G

Image resized.

[root@localhost ~]# ll -h /tmp/test.qcow2

-rw-r–r–. 1 root root 121G Jan 12 13:57 /tmp/test.qcow2

[root@localhost ~]# du -lh /tmp/test.qcow2

19M /tmp/test.qcow2

  1. 附加磁盘到域

qemu-img create -f qcow2 -o preallocation=metadata /tmp/mytest.img 20G

[root@localhost ~]# virsh attach-disk debian8 /tmp/mytest.img vdb

Disk attached successfully

  1. 拆除磁盘

[root@localhost ~]# virsh detach-disk debian8 vdb

Disk detached successfully

网卡管理

网桥查看命令

[root@localhost ~]# brctl show

bridge name bridge id STP enabled interfaces

br0 8000.000000000000 no

virbr0 8000.525400571a76 yes virbr0-nic

                    vnet0

27.添加域网卡到宿主机桥上

[root@localhost ~]# virsh attach-interface debian8 bridge virbr0 为宿主机nat网桥

Interface attached successfully

[root@localhost ~]# virsh domiflist debian8

Interface Type Source Model MAC

——————————————————-

vnet0 network default virtio 52:54:00:82:53:a2

vnet1 bridge virbr0 rtl8139 52:54:00:ca:04:d3

vnet2 bridge br0 rtl8139 52:54:00:89:3b:1d

  1. 删除域网卡

[root@localhost ~]# virsh detach-interface debian8 bridge –mac 52:54:00:89:3b:1d

Interface detached successfully

使用qemu命令手动创建虚拟机

qemu-kvm为创建工具

 类似资料: