无vCenter克隆 备注好需要克隆的 我一般以ip备注好
查看虚拟机路径
复制文件 复制前关闭虚拟机,创建一个新的目录,选择.vmx文件和.vmdk文件,然后复制 到刚才创建的文件夹 中
列出的每个文件的解释: 虚拟机磁盘文件
new_base-flat.vmdk
作用: 这是虚拟磁盘数据文件,包含虚拟机的实际数据。此文件存储虚拟机磁盘的全部内容,比如操作系统、应用程序和文件。由于它代表了虚拟机的完整磁盘空间,通常会很大。
new_base.vmdk
作用: 这是 new_base-flat.vmdk
的描述文件,包含关于虚拟磁盘的元数据,如大小、格式和数据布局。它是一个文本文件,为 ESXi 提供访问 flat
文件所需的信息。
虚拟机配置文件
new_base.vmx
作用: 这是虚拟机的主要配置文件,包含所有的设置和参数,如内存大小、CPU 配置、网络设置和设备信息。该文件对于启动和管理虚拟机至关重要。
new_base.nvram
作用: 这个文件存储了虚拟机 BIOS 的状态,包含启动顺序、硬件配置和其他类似物理计算机非易失性内存的设置。
new_base.vmsd
作用: 此文件用于存储虚拟机快照的元数据和信息,记录快照的详细信息,是管理虚拟机快照操作的重要文件。
日志文件
vmware.log
作用: 这是虚拟机的当前日志文件,记录与虚拟机操作相关的最近事件和活动,用于故障排除和监控虚拟机。
vmware-1.log
, vmware-2.log
, vmware-3.log
作用: 这些是归档的日志文件。ESXi 轮换日志文件,将旧的日志重命名为递增的数字。它们存储虚拟机的旧事件和活动记录,可用于分析过去的问题或性能。
注册虚拟机 复制完成后,在复制后的文件夹,右键vmx 文件,注册虚拟机
注册完成,在虚拟机下搜索你刚刚要备注的的虚拟机,发现有两台, 启动其中一台 修改ip 地址和mac 地址即可 我复制了centos7 发现mac 地址不用修改,使用ip link 对比是不同的
修改名称
复制脚文件夹脚本 支持exsi6.7系统, win10测试也行
复制文件夹下指定后缀格式的文件到目标文件.脚本包含日志,pid打印,
执行方式
1 2 3 4 nohup /opt/copy_specific_files.sh $tail -f nohup.out或者 nohup /opt/copy_specific_files.sh > log.log 2>&1 &
copy_specific_files.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 #!/bin/sh SOURCE_FOLDER="." SOURCE_FOLDER_NAME="aa" SOURCE_DIR="$SOURCE_FOLDER /$SOURCE_FOLDER_NAME " DEST_BASE_DIR="." TOTAL_COPIES=4 CONCURRENT_COPIES=2 FILE_EXTENSIONS="vmx vmdk" log_message () { log_file="$1 " message="$2 " timestamp=$(date "+%Y-%m-%d %H:%M:%S" ) echo "$timestamp : $message " >> "$log_file " echo "$timestamp : $message " } check_directory_exists () { dir ="$1 " log_file="$2 " if [ ! -d "$dir " ]; then log_message "$log_file " "Directory $dir does not exist." exit 1 fi } generate_dest_dir_name () { base_dir="$1 " folder_name="$2 " copy_number="$3 " echo "$base_dir /${folder_name} _copy_$copy_number " } copy_specific_files () { source_dir="$1 " dest_dir="$2 " extensions="$3 " log_file="$4 " mkdir -p "$dest_dir " log_message "$log_file " "Created directory $dest_dir " for ext in $extensions ; do find "$source_dir " -maxdepth 1 -type f -name "*.$ext " | while read file; do if [ -f "$file " ]; then dest_file="$dest_dir /$(basename "$file " ) " if [ ! -f "$dest_file " ]; then cp "$file " "$dest_file " log_message "$log_file " "Copied $file to $dest_file " else log_message "$log_file " "Skipped $file as $dest_file already exists" fi fi done done log_message "$log_file " "Completed copying files from $source_dir to $dest_dir " } execute_copy_tasks () { source_dir="$1 " base_dest_dir="$2 " folder_name="$3 " total_copies="$4 " concurrent_copies="$5 " extensions="$6 " i=1 while [ $i -le "$total_copies " ]; do j=0 while [ $j -lt "$concurrent_copies " ] && [ $((i + j)) -le "$total_copies " ]; do copy_number=$((i + j)) dest_dir=$(generate_dest_dir_name "$base_dest_dir " "$folder_name " "$copy_number " ) log_file="copy_log_${folder_name} _copy_${copy_number} .log" log_message "$log_file " "Starting copy to $dest_dir " check_directory_exists "$source_dir " "$log_file " copy_specific_files "$source_dir " "$dest_dir " "$extensions " "$log_file " & j=$((j + 1 )) done wait i=$((i + concurrent_copies)) done } main () { script_pid=$$ log_message "general_log.log" "Script started with PID $script_pid " check_directory_exists "$SOURCE_DIR " "general_log.log" check_directory_exists "$DEST_BASE_DIR " "general_log.log" execute_copy_tasks "$SOURCE_DIR " "$DEST_BASE_DIR " "$SOURCE_FOLDER_NAME " "$TOTAL_COPIES " "$CONCURRENT_COPIES " "$FILE_EXTENSIONS " log_message "general_log.log" "All copies completed." } main
修改ip 1 vi /etc/netplan/00-installer-config.yaml
重启生效
设置hostname
查看
设置
通过命令hostnamectl 来修改。此种方式既可以修改/etc/hostname文件,又可以立即生效
1 hostnamectl set-hostname epm
或者
修改hostname
1 2 sudo vi /etc/hostname sudo vi /etc/hosts
让其立即生效
1 sudo hostname -F /etc/hostname