Скопируйте виртуальную машину xen для проверки удаленного обновления почтового сервера

Взгляните на это:

[ -n "$ACCESS_TOKEN" -eq null ]

[является оператором проверки и может проверять либо:

  • если строковое значение не равно нулю -при использовании-n

  • сравнить два целых числа -при использовании-eq

Но не то и другое сразу! (По крайней мере, не в такой форме. )Таким образом, вы должны выбрать, что вы хотите проверить в этом [. И если вы хотите сравнить с null, то это будет сравнение строк, которое выполняется с помощью оператора =.

0
09.05.2020, 08:59
1 ответ

предпосылки:

  • выберите IP для вашей новой ВМ (в этом примере 10.77.77.200)
  • выберите IP6 для вашей новой ВМ (в этом примере 2a01 :4f8 :241 :1d02 :0 :77 :77 :200)
  • выберите имя (vm01.mail -test)

создать нового гостя xen

xen-create-image --hostname=vm01.mail-test --pygrub --size=180Gb --swap=8Gb --vcpus=1 --memory=8Gb --ip=10.77.77.200 --dist=jessie --nopasswd --nodhcp --gateway=10.77.77.1 --netmask=255.255.255.0 --broadcast=10.77.77.255
# maybe this would be enough:
#lvcreate -L 180G -n vm01.mail-test-disk /dev/vg0
#lvcreate -L 1G -n vm01.mail-test-swap /dev/vg0
#mkfs.ext4 /dev/vg0/vm01.mail-test-disk
#mkswap /dev/vg0/vm01.mail-test-swap

смонтировать снимок и новый том LVM -:

mkdir -p /media/vm01.mail-disk-snapshot/
mkdir -p /media/vm01.mail-test-disk/
mount /dev/vg0/vm01.mail-disk-snapshot /media/vm01.mail-disk-snapshot/
mount /dev/vg0/vm01.mail-test-disk /media/vm01.mail-test-disk/

используйте rsync для копирования всех данных в новый том LVM -

отформатировать новую виртуальную машину и синхронизировать все файлы из моментального снимка с вновь созданной виртуальной машиной, но пропустить папки,которые не могут быть скопированы на новый сервер:

mkfs.ext4 /dev/vg0/vm01.mail-test-disk
e2fsck -f /dev/vg0/vm01.mail-test-disk
tune2fs -O ^metadata_csum /dev/vg0/vm01.mail-test-disk
# yes
tune2fs -O ^64bit /dev/vg0/vm01.mail-test-disk
resize2fs -s /dev/vg0/vm01.mail-test-disk
rsync -aAxX --del --info=progress2 /media/vm01.mail-disk-snapshot/ /media/vm01.mail-test-disk/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/boot/*,/var/tmp/*,/var/cache/*,/usr/tmp/*}
# this excludelist for rsync only excludes * inside each folders

адаптировать новую виртуальную машину к новым IP-адресам

find /media/vm01.mail-test-disk/etc/ -type f -exec sed -i -e "s/2a01:4f8:241:1d02:0:77:77:101/2a01:4f8:241:1d02:0:77:77:200/g" \
                                                          -e "s/10.77.77.101/10.77.77.200/g" \
                                                          "{}" \;

chroot в смонтированную новую систему:

mount /dev/vg0/vm01.mail-test-disk /media/vm01.mail-test-disk/
mount -t proc none /media/vm01.mail-test-disk/proc
mount --bind /dev /media/vm01.mail-test-disk/dev
mount -t sysfs sysfs /media/vm01.mail-test-disk/sys
chroot /media/vm01.mail-test-disk/ /bin/bash

1. очистите почтовую очередь, чтобы письма не отправлялись с вашей новой виртуальной машины

postsuper -d ALL

2. изменить имя хоста и выйти

hostname mail-test
echo mail-test > /etc/hostname
echo "127.0.0.1 mail-test" >> /etc/hosts
exit

запустить новую виртуальную машину

umount -l /media/vm01.mail-test-disk
umount /media/vm01.mail-disk-snapshot 

xen create /etc/xen/vm01.mail-test.cfg
sleep 20
ssh 10.77.77.200 "ip a s"

решали проблемы при разработке этого решения:

Здесь вы видите проблемы, возникшие за последние дни :Невозможно загрузить новую виртуальную машину при копировании с одного хоста XEN -на другой

Фиксированный

Теперь в новой скопированной виртуальной машине все работает нормально

0
28.04.2021, 23:15

Теги

Похожие вопросы