lvcreate -L 50G -n /dev/vg0/home
lvcreate -L 50G -s -n $VM_snap /dev/vg0/$VM_img
dd if=/dev/vg0/$VM_snap conv=sync,noerror bs=64K | gzip -c | ssh [email protected] "gzip -d |dd of=/dev/vg0/$VM_img
dd if=/dev/vg0/kvm1480_snap conv=sync,noerror bs=64K | gzip | ssh [email protected] 'gzip -d | /dev/vg0/kvm1480_img'
dd if=/dev/vg0/kvm1480_snap conv=sync,noerror bs=4M | gzip | ssh [email protected] " gzip -d | of=/dev/vg0/kvm1480_img bs=4M "
dd if=/dev/vg0/lv_1 conv=noerror,sync bs=4M | gzip | ssh [email protected] 'gzip -d | dd of=/dev/vg0/kvm1480_img bs=4M'
dd if=/dev/vg0/kvm1365_snap conv=notrunc,noerror bs=8M | gzip | ssh [email protected] "gzip -d |dd of=/dev/vg0/kvm1365_img conv=notrunc,noerror bs=8M"
/usr/local/solusvm/core/solusvmc-h --virt-resize -d --resize-force /dev/sda2=512M --expand /dev/sda1 /home/solusvm/kvm/template/linux-centos-6.3-x86_64-min-gen2-v1.gz /dev/vg0/kvm1480_img
手动备份
dd if=/dev/vg0/vm1825_snapshot | bzip2 | dd of=/tmp/dump-2392.bz
dd if=/tmp/dump-2392.bz| gzip -d | dd of=/dev/vg0/vm1825_img
bak() {
echo $VM start --- `date` >>/root/m.log
lvcreate -L 50G -s -n $1_snap /dev/vg0/$1_img;
dd if=/dev/vg0/$1_snap conv=sync,noerror bs=64K | gzip -c >/opt/$1.gz ;
lvremove /dev/vg0/$1_snap -f;
date
echo $VM done --- `date` >>/root/m.log
echo "" >>/root/m.log
}
一些批量处理
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
VPS_mount() {
virsh destroy $1;
kpartx -av /dev/vg0/$1_img;
e2fsck -f -y /dev/mapper/vg0-$1_img1
resize2fs /dev/mapper/vg0-$1_img1
fuser -k /home/kvm/$1/mnt
mount /dev/mapper/vg0-$1_img1 /home/kvm/$1/mnt;
df -h
if [ ! "`mount|grep $1`" ]; then mount /dev/mapper/vg0-$1_img1 /home/kvm/$1/mnt;fi;
rm -f /home/kvm/$2/mnt/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service;
rm -f /home/kvm/$2/mnt/etc/systemd/system/basic.target.wants/firewalld.service;
rm -f /home/kvm/$2/mnt/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service;
rm -f /home/kvm/$2/mnt/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service;
rm -f /home/kvm/$2/mnt/etc/systemd/system/multi-user.target.wants/NetworkManager.service;
rm -f /home/kvm/$2/mnt/etc/sysconfig/iptables;
}
VPS_boot()
{
if [ -n "`egrep "Debian|Ubuntu" /home/kvm/$1/mnt/etc/issue`" ]; then deb_fix $1;fi
if [ -n "`egrep "CentOS|Fedora" /home/kvm/$1/mnt/etc/issue`" ]; then rhel_fix $1;fi
fuser -k /home/xen/$1/mnt
umount /home/kvm/$1/mnt/proc /home/kvm/$1/mnt;
kpartx -dv /dev/vg0/$1_img;
virsh create /home/kvm/$1/$1.xml;
echo done $1;
}
rhel_fix()
{
busybox chroot /home/kvm/$1/mnt /bin/sh -c "cd /etc/init.d/;chmod 444 rpcbind rpcgssd auditd rpcidmapd nfs nfslock;"
busybox chroot /home/kvm/$1/mnt /bin/sh -c "mount -t proc proc /proc;rpm -e kernel-xen;yum update -y;"
busybox chroot /home/kvm/$1/mnt /bin/sh -c "chkconfig httpd on;chkconfig nginx on;chkconfig php-fpm on;"
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /home/kvm/$1/mnt/etc/selinux/config;
sed -i 's/rhgb//g' /home/kvm/$1/mnt/boot/grub2/grub.cfg /home/kvm/$1/mnt/boot/grub/grub.conf
}
deb_fix()
{
busybox chroot /home/kvm/$1/mnt /bin/sh -c "mount -t proc proc /proc;apt-get update -y;"
if [ ! "`cat /home/kvm/$1/mnt/etc/default/grub|grep GRUB_RECORDFAIL_TIMEOUT`"] ;
then
busybox chroot /home/kvm/$1/mnt/ /bin/sh -c "echo 'GRUB_RECORDFAIL_TIMEOUT=0'>>/home/kvm/$1/mnt/etc/default/grub;update-grub -y;"
fi
}
case "$1" in
start)
VPS_mount $2
;;
boot)
VPS_boot $2
;;
*)
printf "null"
esac
echo "ban() { ip route add blackhole \$1; }" >> .bash_profile
speed(){
virsh domiftune $1 $1.0 --current --inbound 1000,2000,2000
virsh domiftune $1 $1.0 --current --outbound 1000,2000,2000
}
快照检查
snap() {
if [ ! -n "$1" ]; then exit 0 ;fi; if [ "$2" == "umount" ]; then umount /dev/mapper/vg0-$1_snap1; kpartx -dv /dev/mapper/vg0-$1_snap; lvremove /dev/mapper/vg0-$1_snap -f;fi;
if [ ! -n "$2" ]; then lvcreate -L 50G -s -n $1_snap /dev/vg0/$1_img; kpartx -av /dev/mapper/vg0-$1_snap; mount /dev/mapper/vg0-$1_snap1 /mnt; ls /mnt/root/.bash_history; fi;
}
已经遗忘的Xen pv系列
rsvps() {
xm destroy $1
mount /dev/vg0/$1_img /home/xen/$1/mnt
rsync -vzrtopg /home/xen/$1/mnt/ [email protected]:/home/xen/$1/mnt/
}
mountvps() {
xm destroy $1
mkdir -p /home/xen/$1/mnt
mount /dev/vg0/$1_img /home/xen/$1/mnt/
tar zxvf /tmp/$1.tar.gz -C /home/xen/$1/mnt
}