#!/bin/bash # # Changes before copying server/VM # [[ ! ("$#" == 1 && -n "$1") ]] && echo "Only 1 argument required, $# provided" && exit 1; [[ ! $1 =~ ^[0-9]+$ ]] && echo "Container ID has to be numeric, '$1' provided. Please provide a numeric argument and try again" && exit 1; if [ `whoami` = root ] then if [ ! -d /vz/root/$1 ] then echo Creating container folders /vz/root/$1 and /vz/private/$1 mkdir -p /vz/root/$1 /vz/private/$1 cat /etc/vz/conf/ve-basic.conf-sample > /etc/vz/conf/$1.conf echo 'OSTEMPLATE="centos"' >> /etc/vz/conf/$1.conf else echo "Container ID $1 already exists" fi else echo 'Need to be "root" to execute this script' fi #################################### # Copying content of server/VM # # Source: # # for i in `chkconfig --list | grep :on | gawk '!/network|iscsi|vmware|syslog|sshd|irqbalance|iptables/ {print $1}'`; do service $i stop; done # # echo -e '/dev/*\n/mnt/*\n/tmp/*\n/proc/*\n/sys/*\n/usr/lib/vmware-server-console/*\n/etc/vmware-server-console/*\n/etc/vmware-tools/*\n/usr/lib/vmware-tools/*\n/selinux/*\n/var/tmp/*\n/var/named/chroot/proc/*\n/var/named/chroot/dev/*' > /tmp/excludes.txt # # for i in acpid amd checkfs cups checkroot clock consolefont hdparm klogd keymaps kudzu lm_sensors microcode_ctl netplugd restorecond; do chkconfig $i off; done # # Using Netcat + tar: # Source: $ tar --numeric-owner -cpf - / -X /tmp/excludes.txt | nc sourceIP 4500 # Destination: $ nc -l 4500 > VM.tar && tar -xpf VM.tar -C VM # OR # $ nc -l 4500 | tar -xpf - -C /vz/private/102/ # # Using Rsync + SSH: # Destination: $ rsync --numeric-ids -av --exclude-from=/tmp/excludes.txt root@source:/ . # ####################################