vm이름의 변경은 vcenter등에서도 가능합니다만
그것은 단지 vmx파일에 displayName을 변경할 뿐입니다.
즉, 지저분 하죠.....
ssh 나 데이터스토어에서 보면 예전 폴더명이 그대로 남아 있습니다. 안에 들어가서 보면 vmdk파일도 마찬가지.
이리저리 대충 vm들을 만들다 보니 대략 20여개의 vm들의 이름을 정리하려니 눈앞이 캄캄합니다.
그래서 만들었습니다.
// ---[/bin/vm-rename]-----------------------------------
cat > /bin/vm-rename
#!/bin/sh
if [ $# -ne 2 ];then
echo "USAGE: $0 SRC_NAME DEST_NAME";
exit;
fi;
## remove /
SRC=`basename "$1" /`
DEST=`basename "$2" /`
if [ ! -d "$SRC" ];then
echo "Source Dir \"$SRC\" is not exist. Exit....";
exit;
fi
if [ -d "$DEST" ];then
echo "Dest Dir \"$DEST\" is already exist. Exit....";
exit;
fi
mkdir "$DEST"
mv "${SRC}/${SRC}-flat".vmdk "${DEST}/${DEST}-flat".vmdk
sed "s/${SRC}/${DEST}/g" < "${SRC}/${SRC}".vmdk > "${DEST}/${DEST}".vmdk
sed "s/${SRC}/${DEST}/g" < "${SRC}/${SRC}".vmx > "${DEST}/${DEST}".vmx
sed "s/${SRC}/${DEST}/g" < "${SRC}/${SRC}".vmxf > "${DEST}/${DEST}".vmxf
echo "Done!";
echo "Result";
echo "---------[ OLD DIR : ${SRC} ]-------------------------------------------"
ls -al "${SRC}"
echo "---------[ NEW DIR : ${DEST} ]-------------------------------------------"
ls -al "${DEST}"
echo "---------[ execute manual ]---------------------------------------------"
echo "rm -rf ${SRC}"
-----------------------------------[/bin/vm-rename]---//
소스는 빨간색 부분입니다.
cat 부터 마지막 echo "rm.. "까지를 ssh 에서 붙여넣기 한 후
chmod a+x /bin/vm-rename
또는 chmod 700 등으로 실행 권한 부여하고요.
다음과 같이 실행하면 됩니다.
vm-rename 원본 대상
제가 방금 실행한 예제 입니다.
주의사항
1. 반드시 vm 종료하고 인벤토리에서 제거(Y) 한 다음에 실행해야 합니다.
2. vmdk 하나인 경우만 고려되어 있습니다. 두개인 경우 flat.vmdk가 OLD DIR에 남아있게 됩니다.
그럴땐 수동으로 옮기셔야 합니다.
그냥 .vmdk 랑 flat.vmdk mv하고 .vmdk 파일 vi로 열어보시면 아~ 여기 바꿔야 하는구나 딱 보입니다.
3. 잘못된 경우 저는 책임지지 않습니다. 직접 만들기 귀찮으신분만 사용해 주세요^^
.
¸ÚÀïÀÌ...
¹Ú¼öXX¹Ú¼öXX¹Ú¼öXX¹Ú¼öXX¹Ú¼öXX