virt-sysprep: Add cron-spool, mail-spool, utmp.
authorRichard W.M. Jones <rjones@redhat.com>
Fri, 14 Oct 2011 07:36:00 +0000 (08:36 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 14 Oct 2011 07:36:00 +0000 (08:36 +0100)
TODO
clone/virt-sysprep.in
clone/virt-sysprep.pod

diff --git a/TODO b/TODO
index bfc6136..4b275aa 100644 (file)
--- a/TODO
+++ b/TODO
@@ -564,8 +564,6 @@ virt-sysprep ideas
     /var/cache/gdm/*
     /var/lib/fprint/*
     /var/run/*
-    /var/spool/mail/*
-    /var/spool/cron/*
     /var/lib/AccountService/users/*
     /var/lib/sss/db/*
     /var/lib/samba/*
index 12c55bc..144bad4 100644 (file)
@@ -131,43 +131,52 @@ done
 # enable all of these, although some of them are only done on certain
 # guest types (see details below).
 if [ -z "$enable" ]; then
+    cron_spool=yes
     dhcp_client_state=yes
     dhcp_server_state=yes
     hostname=yes
     logfiles=yes
+    mail_spool=yes
     net_hwaddr=yes
     random_seed=yes
     rhn_systemid=yes
     smolt_uuid=yes
     ssh_hostkeys=yes
     udev_persistent_net=yes
+    utmp=yes
     yum_uuid=yes
 elif [ "$enable" = "list" ]; then
+    echo "cron-spool"
     echo "dhcp-client-state"
     echo "dhcp-server-state"
     echo "hostname"
     echo "logfiles"
+    echo "mail-spool"
     echo "net-hwaddr"
     echo "random-seed"
     echo "rhn-systemid"
     echo "smolt-uuid"
     echo "ssh-hostkeys"
     echo "udev-persistent-net"
+    echo "utmp"
     echo "yum-uuid"
     exit 0
 else
     for opt in $(echo "$enable" | sed 's/,/ /g'); do
         case "$opt" in
+            cron-spool)            cron_spool=yes ;;
             dhcp-client-state)     dhcp_client_state=yes ;;
             dhcp-server-state)     dhcp_server_state=yes ;;
             hostname)              hostname=yes ;;
             logfiles)              logfiles=yes ;;
+            mail-spool)            mail_spool=yes ;;
             net-hwaddr)            net_hwaddr=yes ;;
             random-seed)           random_seed=yes ;;
             rhn-systemid)          rhn_systemid=yes ;;
             smolt-uuid)            smolt_uuid=yes ;;
             ssh-hostkeys)          ssh_hostkeys=yes ;;
             udev-persistent-net)   udev_persistent_net=yes ;;
+            utmp)                  utmp=yes ;;
             yum-uuid)              yum_uuid=yes ;;
             *)
                 echo "error: unknown --enable feature: $opt"
@@ -240,6 +249,10 @@ mnt="$tmpdir/mnt"
 #----------------------------------------------------------------------
 # The sysprep operations.
 
+if [ "$cron_spool" = "yes" ]; then
+    rm -rf $mnt/var/spool/cron/*
+fi
+
 if [ "$dhcp_client_state" = "yes" ]; then
     case "$type" in
         linux)
@@ -293,6 +306,11 @@ if [ "$logfiles" = "yes" ]; then
     esac
 fi
 
+if [ "$mail_spool" = "yes" ]; then
+    rm -rf $mnt/var/spool/mail/*
+    rm -rf $mnt/var/mail/*
+fi
+
 if [ "$net_hwaddr" = "yes" ]; then
     case "$type/$distro" in
         linux/fedora)
@@ -344,6 +362,10 @@ if [ "$udev_persistent_net" = "yes" -a "$type" = "linux" ]; then
     rm -f $mnt/etc/udev/rules.d/70-persistent-net.rules
 fi
 
+if [ "$utmp" = "yes" -a "$type" != "windows" ]; then
+    rm -f $mnt/var/run/utmp
+fi
+
 if [ "$yum_uuid" = "yes" -a "$package_management" = "yum" ]; then
     rm -f $mnt/var/lib/yum/uuid
 fi
index eb5c430..bdd0dfd 100755 (executable)
@@ -171,6 +171,10 @@ Future versions of virt-sysprep may add more operations.  If you are
 using virt-sysprep and want predictable behaviour, specify only the
 operations that you want to have enabled.
 
+=head2 cron-spool
+
+Remove user at-jobs and cron-jobs.
+
 =head2 dhcp-client-state
 
 Remove DHCP client leases.
@@ -191,6 +195,10 @@ changed to C<localhost.localdomain>.
 
 Remove many log files.
 
+=head2 mail-spool
+
+Remove email from the local mail spool directory.
+
 =head2 net-hwaddr
 
 Remove HWADDR (hard-coded MAC address) configuration.  For Fedora and
@@ -236,6 +244,14 @@ old MAC address occupies the old name (eg. eth0), this means the fresh
 MAC address is assigned to a new name (eg. eth1) and this is usually
 undesirable.  Erasing the udev persistent net rules avoids this.
 
+=head2 utmp
+
+Remove the utmp file.
+
+This records who is currently logged in on a machine.  In modern Linux
+distros it is stored in a ramdisk and hence not part of the virtual
+machine's disk, but it was stored on disk in older distros.
+
 =head2 yum-uuid
 
 Remove the yum UUID.