OSDN Git Service

Improve copying /var directory in lxcf-createfile
authorTAMUKI Shoichi <tamuki@linet.gr.jp>
Wed, 23 Apr 2014 05:30:45 +0000 (14:30 +0900)
committerniwa-hideyuki <niwa.hideyuki@jp.fujitsu.com>
Thu, 24 Apr 2014 02:41:07 +0000 (11:41 +0900)
When copying /var directory for container creation, the directories
/var/cache/lxc, /var/lib/lxc and /var/lib/docker are now skipped, and
then remove the contents in /var/log/lxc in case that lxc is installed
in the system.

Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
lxcf/lib/lxcf-createfile

index 129e1c7..955d5ab 100755 (executable)
@@ -119,16 +119,30 @@ mkdir -p $rootfs/boot
 echo "creating $rootfs/var..."
 mkdir -p $rootfs/var
 for i in `lsdir /var` ; do
-  if [ $i == lib ] ; then
+  if [ $i == cache ] ; then
+    mkdir -p $rootfs/var/$i
+    for j in `lsdir /var/$i` ; do
+      if [ $j == lxc ] ; then
+        mkdir -p $rootfs/var/$i/$j
+      else
+        cp -a /var/$i/$j $rootfs/var/$i
+      fi
+    done
+    echo -n "."
+  elif [ $i == lib ] ; then
     mkdir -p $rootfs/var/$i
     for j in `lsdir /var/$i` ; do
       if [ $j == libvirt ] ; then
         mkdir -p $rootfs/var/$i/$j
         for k in `lsdir /var/$i/$j` ; do
-          if [ $k != images ] ; then
+          if [ $k == images ] ; then
+            mkdir -p $rootfs/var/$i/$j/$k
+          else
             cp -a /var/$i/$j/$k $rootfs/var/$i/$j
           fi
         done
+      elif [ $j == lxc -o $j == docker ] ; then
+        mkdir -p $rootfs/var/$i/$j
       else
         cp -a /var/$i/$j $rootfs/var/$i
       fi
@@ -142,6 +156,7 @@ done
 echo
 rm -f $rootfs/var/lib/libvirt/images/*
 rm -rf $rootfs/var/log/libvirt/{*,.*} 2> /dev/null
+rm -rf $rootfs/var/log/lxc/{*,.*} 2> /dev/null
 cat /dev/null > $rootfs/var/log/messages
 if [ -d $rootfs/var/log/audit ] ; then
   rm -rf $rootfs/var/log/audit/{*,.*} 2> /dev/null