VM-ESXI 相关常用命令(Updateing)

# ESXI

【系统相关】

获取esxi版本

vmware -v

esxcli system version get

查看系统时间

esxcli system time get

e.g.

esxcli system time set <options>

修改系统时间,例子:

Cmd options:

-d|--day=<long> Day

-H|--hour=<long> Hour

-m|--min=<long> Minute

-M|--month=<long> Month

-s|--sec=<long> Second

-y|--year=<long> Year

[root@localhost:~] esxcli system time set -y=2020 -M=6 -d=29 -H=14 -m=16

esxcli system – 通过该命令使你能够控制ESXi的高级选项,比如设置syslog并管理主机状态。

# 查看是否为维护模式

esxcli system maintenanceMode get 

esxcli system maintenanceMode set --enable true/false  #  ESXi主机进入/退出,维护模式

# 系统重启/关机(必须处于维护模式,否则命令不生效)

esxcli system shutdown reboot/poweroff

# 查看所有虚拟机姓名和Vmid

vim-cmd vmsvc/getallvms

【网络相关】

# 查看网卡状态

esxcfg-vmknic -l

# 查看服务器自身IP地址

esxcli network ip interface ipv4 get

# 获取所有虚拟机名字和IP地址
for item in `vim-cmd vmsvc/getallvms |grep -v Vmid| awk '{print $1}'`;do vim-cmd vmsvc/get.summary $item | grep -E "ipAddress|hostName";done

# 查宿主机下每个对应的mac

net-stats -l

# 查看路由表

esxcli network ip route ipv4 list

# 查看ESXi主机网卡列表(nic)或up-link列表

esxcli network nic list

# 关闭/打开vmnic1接口

esxcli network nic down/up -n=vmnic1

esxcli network –需要监控vSphere网络并对如下网络组件进行调整时,包括虚拟交换机、VMkernel网络接口、防火墙以及物理网卡等

【防火墙相关】--2020.7.30更新

esxcli network firewall

 # 已经开启的服务

esxcli network firewall ruleset list  | grep "true"

#  防火墙允许的IP地址

esxcli network firewall ruleset allowedip list

# 批量授权某个IP访问开启的所有服务

for item in `esxcli network firewall ruleset list |grep "true"|awk '{print $1}'`;do esxcli network firewall ruleset allowedip add --ip-address "192.168.x.x" --ruleset-id "$item";done;esxcli network firewall ruleset allowedip list

【硬件相关】

#  获取ESXi主机的硬件及配置信息

esxcli hardware 

esxcli hardware cpu list – 获取CPU信息(系列、型号以及缓存)

esxcli hardware memory get – 获取内存信息(可用内存以及非一致内存访问)

# 查看磁盘列表

esxcli storage – 可能是最常用的esxcli命令命名空间之一,包括了管理连接到vSphere的存储的所有信息。

esxcli storage core device list – 列出当前存储设备

esxcli storage core device vaai status get –获得存储设备支持的VAAI的当前状态。

【服务相关】

# 重启所有的服务

services.sh restart 

【软件相关】

esxcli software – 软件命名空间可以用于检索ESXi主机已安装的软件及驱动并可以安装新组件。

esxcli software vib list – 列出ESXi主机上已经安装的软件及驱动。

【脚本相关】
计划任务路径:
cat /var/spool/cron/crontabs/root
# 获取虚拟机列表
vim-cmd vmsvc/getallvms
获取vm状态
vim-cmd vmsvc/power.getstat [vmid]
关闭虚机
vim-cmd vmsvc/power.shutdown [vmid]
vim-cmd vmsvc/power.off [vmid] # 强制关闭
长期脚本存放路径
vi /etc/rc.local.d/local.sh # 内容写在exit 0 之前

# Esxi 开机脚本

#/bin/bash
# author:jerry
# create date:2017-8-29
# last update:2018-7-30
status=`vim-cmd /hostsvc/hostsummary | grep inMaintenanceMode|cut -c 27`
[ $status == "t" ] && vim-cmd hostsvc/maintenance_mode_exit 1&> /dev/null  
for on in `vim-cmd vmsvc/getallvms |awk '{print $1}'|tail -n 12`
do
if  [ $on -eq 11 ]
then
   continue
else
   vim-cmd vmsvc/power.on  $on
   sleep 30
fi
done

# Esxi 关机脚本

#!/bin/sh
# author:jerry
# create date:2017-7-27
# last update:2018-7-30
off=`esxcli vm process list|grep World |awk '{print $3}'|wc -l`
status=`vim-cmd /hostsvc/hostsummary | grep inMaintenanceMode|cut -c 27`
if [ $off == 0 ] ;then
  [ $status == "f" ] && vim-cmd hostsvc/maintenance_mode_enter 1&> /dev/null  && sleep 10 && halt || halt
else
hostsum=`vim-cmd vmsvc/getallvms|awk 'NR>1{print $1}'|wc -l`
vim-cmd vmsvc/getallvms|awk 'NR>1{print $1}'>tmp.txt
 
 for i in `seq 1 $hostsum`
do 
vid=`sed -n "$i p" ./tmp.txt`
    on=`vim-cmd vmsvc/power.getstate $vid |tail -1|awk '{print $2}' 2&>/dev/null`
 if [ $on == on ] ;then
     vim-cmd vmsvc/power.shutdown $vid 1&>/dev/null
         sleep 5
 fi
   done
rm -rf ./tmp.txt
   
 off=`esxcli vm process list|grep World|awk '{print $3}'|wc -l`
 if [ $off == 0 ] ;then
      vim-cmd hostsvc/maintenance_mode_enter 1&> /dev/null
 sleep 10
   halt
    else
    ps |grep vmx|awk '{print $2}' |uniq  >tmp.txt   
    on=`ps |grep vmx|awk '{print $2}' |uniq |wc -l`
    for i in `seq 1 $on`         
     do                                
     hostid=`sed -n " $i p " ./tmp.txt`  
         kill $hostid 1&> /dev/null 
     done            
 rm -rf ./tmp.txt
 vim-cmd hostsvc/maintenance_mode_enter 1&> /dev/null
     sleep 10
 halt
  fi
fi

参考链接:

https://www.cnblogs.com/dragon7421/p/12594209.html

原文地址:https://www.cnblogs.com/Cong0ks/p/11131516.html