apt-get -y upgrade apt-get -y autoremove apt-get -y clean echo "cleaning up guest additions" rm -rf VBoxGuestAdditions_*.iso VBoxGuestAdditions_*.iso.? echo "cleaning permissions" chown -R ${SSH_USERNAME}:${SSH_USERNAME} /home/${SSH_USERNAME} # Remove some packages to get a minimal install echo "==> Removing all linux kernels except the current one" dpkg --list | awk '{ print $2 }' | grep 'linux-image-*-generic' | grep -v $(uname -r) | xargs apt-get -y purge echo "==> Removing linux source" dpkg --list | awk '{ print $2 }' | grep linux-source | xargs apt-get -y purge echo "==> Removing documentation" dpkg --list | awk '{ print $2 }' | grep -- '-doc$' | xargs apt-get -y purge echo "==> Removing default system Ruby" apt-get -y purge ruby ri doc echo "==> Removing obsolete networking components" apt-get -y purge ppp pppconfig pppoeconf echo "==> Removing other oddities" apt-get -y purge popularity-contest installation-report landscape-common wireless-tools wpasupplicant # Clean up the apt cache apt-get -y autoremove --purge apt-get -y autoclean apt-get -y clean echo "removing man pages" rm -rf /usr/share/man/* echo "removing APT files" find /var/lib/apt -type f | xargs rm -f echo "removing any docs" rm -rf /usr/share/doc/* echo "removing caches" find /var/cache -type f -exec rm -rf {} \; echo "cleaning up tmp" rm -rf /tmp/* # Remove Bash history unset HISTFILE rm -f /root/.bash_history rm -f ${SSH_USER_HOME}/.bash_history # Clean up log files find /var/log -type f | while read f; do echo -ne '' > "${f}"; done; echo "clearing last login information" >/var/log/lastlog >/var/log/wtmp >/var/log/btmp echo "whiteout /" count=$(df --sync -kP / | tail -n1 | awk -F ' ' '{print $4}') let count-- dd if=/dev/zero of=/tmp/whitespace bs=1024 count=$count rm /tmp/whitespace echo "whiteout /boot" count=$(df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}') let count-- dd if=/dev/zero of=/boot/whitespace bs=1024 count=$count rm /boot/whitespace echo "clear out swap and disable until reboot" set +e swapuuid=$(/sbin/blkid -o value -l -s UUID -t TYPE=swap) case "$?" in 2|0) ;; *) exit 1 ;; esac set -e if [ "x${swapuuid}" != "x" ]; then # Whiteout the swap partition to reduce box size # Swap is disabled till reboot swappart=$(readlink -f /dev/disk/by-uuid/$swapuuid) /sbin/swapoff "${swappart}" dd if=/dev/zero of="${swappart}" bs=1M || echo "dd exit code $? is suppressed" /sbin/mkswap -U "${swapuuid}" "${swappart}" fi echo "whiteout free space" dd if=/dev/zero of=/EMPTY bs=1M || echo "dd exit code $? is suppressed" rm -f /EMPTY sync echo "disk usage" df -h