● ESXI 버전 확인 vmware name 찾기 및 전원이 꺼진 경우 VM 전원 켜기를 자동화하는 ESXi bash 스크립트
본문
● ESXI 버전 확인 vmware name 찾기 및 전원이 꺼진 경우 VM 전원 켜기를 자동화하는 ESXi bash 스크립트
사전 확인 작업
echo esxi 버전 확인하기
echo [root@localhost:~] vmware -v
echo VMware ESXi 7.0.2 build-17630552
vmeare -v
echo vmname 이름찾기 (구성파일 vmInventory.xml 입다)
find / -name "vmInventory.xml"
echo cat /etc/vmware/hostd/vmInventory.xml
echo [root@localhost:~] cat /etc/vmware/hostd/vmInventory.xml
cat /etc/vmware/hostd/vmInventory.xml
cat /etc/vmware/hostd/vmInventory.xml |grep vm
.....많은 내용이 있습니다......
vmware 사용중인 이름 찾기
[root@localhost:~] cat /etc/vmware/hostd/vmInventory.xml |grep vm
<vmxCfgPath>/vmfs/volumes/6167e460-4819a5ce-dfc1-1cfd08738685/ds3615_dsm7/ds3615_dsm7.vmx</vmxCfgPath>
<vmxCfgPath>/vmfs/volumes/6167e460-4819a5ce-dfc1-1cfd08738685/ds918/ds918.vmx</vmxCfgPath>
<vmxCfgPath>/vmfs/volumes/6177091d-8bbea952-1f41-1cfd08738685/ubuntu/ubuntu.vmx</vmxCfgPath>
<vmxCfgPath>/vmfs/volumes/6177091d-8bbea952-1f41-1cfd08738685/windows11/windows11.vmx</vmxCfgPath>
<vmxCfgPath>/vmfs/volumes/6177091d-8bbea952-1f41-1cfd08738685/tinycore/tinycore.vmx</vmxCfgPath>
[root@localhost:~]1. 호스트에 SSH를 연결합니다.
2. vmfs 볼륨에 있는 쉘 스크립트(auto-poweron.sh)에 다음 내용을 복사하여 붙여넣습니다.
예:-
ESXi 서버에 대한 ssh 액세스를 활성화한 후 루트로 ssh하십시오.
나의 datastore 이름은
[root@localhost:~] cd /vmfs/volumes/
[root@localhost:/vmfs/volumes] ls
13bba9e5-034a1524-438d-f96e514cc07c 616ae09e-83c02110-4dc7-1cfd08738685
2THDD_25_vm 6177091d-8bbea952-1f41-1cfd08738685
38b3164b-8a415326-55a7-8008f12a0734 BOOTBANK1
540G_SSD_sever_all BOOTBANK2
6167e460-4819a5ce-dfc1-1cfd08738685 OSDATA-616ae09e-58cb8870-66fa-1cfd08738685
6167e923-b102b1a4-004d-1cfd08738685 datastore_128g_ESxi_Booting_vm
616ae09e-58cb8870-66fa-1cfd08738685 datastore_m2_ssd_1_tera_vm
[root@localhost:/vmfs/volumes]
~ #vi /vmfs/volumes/datastore1/auto-poweron.sh
[crayon lang=”shell”]
vmname=”testvm”
vmid=$(vim-cmd vmsvc/getallvms | grep “$vmname” | awk ‘{print $1}’)
stat1=$(vim-cmd vmsvc/power.getstate “$vmid” | grep “off”)
if [ “$stat1” == “Powered off” ]
then
vim-cmd vmsvc/power.on “$vmid”
fi
[/crayon]
3. 'testvm'을 적절한 vmName으로 바꿉니다.
4. 내용을 저장하고 종료합니다(:wq).
5. 파일 권한을 실행 파일로 변경합니다.
[crayon lang=”shell” escaped=”true”]
chmod 755 /vmfs/volumes/datastore1/auto-poweron.sh
[/crayon]
6. 이 스크립트를 실행할 때마다 cron 작업을 생성합니다. 한 시간.
ESXi 7.0에 cron 작업 추가
1. VI를 사용하여 /var/spool/cron/crontabs/root 를 편집합니다.
vi /var/spool/cron/crontabs/root
2. 맨 아래 줄(모두 한 줄에)을 추가하고 저장(:wq!)합니다.
0 */5 * * * /vmfs/volumes/datastore1/auto-poweron.sh
3. "cat /var/run/crond.pid"
명령을 실행합니다 .
4. 다음과 같이 실행 중인 crond의 프로세스 번호가 인쇄됩니다. 12345
5. "kill 12345"
명령을 실행합니다.
여기서 " 12345 "는 이전 명령에 의해 출력된 숫자로 대체되어야 합니다.
ESXi에서 위의 변경 사항은 재부팅 후에도 지속 되지 않습니다 .
재부팅 시 cron 작업이 일관적인지 확인하려면 다음 단계를 따르십시오.
/etc/rc.local.d/local.sh 에 명령을 추가 하여
ESX/ESXi가 재부팅될 때 cron 작업을 다시 생성합니다
1. vi 와 같은 명령을 사용하여 /etc/rc.local.d/local.sh 를 편집합니다.
VI /etc/rc.local.d/local.sh
2. 'exit 0' 바로 위의 파일 끝에 다음 3줄을 추가합니다.
첫 번째는 crond를 죽이고,
두 번째는 루트 crontab 파일에 새 cron 작업을 추가하고,
세 번째는 crond를 다시 시작합니다.
[crayon lang=”shell” escaped=”true”]
/bin/kill $(cat /var/run/crond .pid)
/bin/echo '0 */5 * * * /vmfs/volumes/datastore1/auto-poweron.sh' >> /var/spool/cron/crontabs/root
crond
[/crayon]
3. 저장하고 종료 편집기("Esc" 키를 누른 다음 ":wq"를 누른 다음 vi에서 "Return"을 누릅니다)
4. "auto-backup.sh" 명령을 실행하여
/etc/rc.local.d/local.sh
에 대한 변경 사항이 재부팅 후에도 유지되도록 합니다.
ESXi bash script to automate Power ON VM if its Powered OFF
https://pingforinfo.com/cronjob-poweron-vm/
관련자료
-
링크
-
이전
-
다음