EXSi Shell 기반 스냅 샷 자동화 생 성 및 삭제
스 크 립 트 파일 은 가상 컴퓨터 의 저장 디 렉 터 리 인/vmfs/volumes 디 렉 터 리 에 두 어야 합 니 다. 다른 디 렉 터 리 EXSi 호스트 에 두 고 다시 시작 하면 삭 제 됩 니 다.
#!/bin/sh
#auto create ESXi snapshots
for i in `vim-cmd vmsvc/getallvms | grep -v nosnap | awk '{print $1}' | grep -e "[0-9]"`
do
vname=$(vim-cmd vmsvc/get.summary $i | grep name | awk '{ print $3 }' | cut -d \" -f 2)
vim-cmd vmsvc/snapshot.create $i $(date "+%F")
sleep 30s
if [ $? -eq 0 ];then
echo "$(date "+%F %T") : $vname snapshot create success.." >> ./schedule_snap.log
else
echo "$(date "+%F %T") : $vname snapshot create FAILED.." >> ./schedule_snap.log
fi
done
2, 삭제
변수의 수학 적 계산 은 셸 버 전에 따라 쓰기 가 다 를 수 있 습 니 다. 이 곳
DELETE_COUNT= $(($SNAPSHOT_COUNT-$DAY))
을 먼저 테스트 하고 괄호 [] 의 쓰기 방법 을 사용 하면 계산 할 수 없습니다.#!/bin/sh
DAY=1 #
for i in `vim-cmd vmsvc/getallvms | awk '{print $1}' | grep -e "[0-9]"`
do
SNAPSHOT_COUNT=`vim-cmd vmsvc/snapshot.get $i | egrep -- '--\|-CHILD|^\|-ROOT' | wc -l`
if [ $SNAPSHOT_COUNT -gt $DAY ]; then
DELETE_COUNT=$(($SNAPSHOT_COUNT-$DAY))
OLD_SNAPSHOT_ID=`vim-cmd vmsvc/snapshot.get $i | grep Id | head -$DELETE_COUNT | awk -F: '{print $2}'`
for n in $OLD_SNAPSHOT_ID
do
vim-cmd vmsvc/snapshot.remove $i $n > /dev/null
sleep 30s
done
fi
done
3, crond 퀘 스 트 추가
"5c64e4b5 - 5ae69e88 - dbb 3 - 9cdc71dab 878"은 메모리 볼 륨 이름 입 니 다.
##/etc/rc.local.d/local.sh
#!/bin/sh
/bin/echo "0 1 * * 6 sh /vmfs/volumes/5c64e4b5-5ae69e88-dbb3-9cdc71dab878/crontabs/snapshot_creat.sh" >>/var/spool/cron/crontabs/root
/bin/echo "30 1 * * 6 sh /vmfs/volumes/5c64e4b5-5ae69e88-dbb3-9cdc71dab878/crontabs/snapshot_del.sh" >>/var/spool/cron/crontabs/root
kill $(cat /var/run/crond.pid)
crond
exit 0
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.