Script to clean up Ubuntu Vagrant box before packaging
#!/bin/bash | |
# This script zeroes out any space not needed for packaging a new Ubuntu Vagrant base box. | |
# Run the following command in a root shell: | |
# | |
# bash <(curl -s https://gist.github.com/justindowning/5670884/raw/vagrant-clean.sh) | |
function print_green { | |
echo -e "\e[32m${1}\e[0m" | |
} | |
print_green 'Clean Apt' | |
apt-get -y autoremove | |
aptitude clean | |
aptitude autoclean | |
print_green 'Cleanup bash history' | |
unset HISTFILE | |
[ -f /root/.bash_history ] && rm /root/.bash_history | |
[ -f /home/vagrant/.bash_history ] && rm /home/vagrant/.bash_history | |
print_green 'Cleanup log files' | |
find /var/log -type f | while read f; do echo -ne '' > $f; done | |
print_green 'Whiteout root' | |
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 | |
print_green '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 | |
print_green 'Whiteout swap' | |
swappart=`cat /proc/swaps | tail -n1 | awk -F ' ' '{print $1}'` | |
swapoff $swappart | |
dd if=/dev/zero of=$swappart | |
mkswap -f $swappart | |
swapon $swappart | |
print_green 'Zero out disk' | |
dd if=/dev/zero of=/EMPTY bs=1M | |
rm -f /EMPTY | |
print_green 'Vagrant cleanup complete!' |
This comment has been minimized.
This comment has been minimized.
I did |
This comment has been minimized.
This comment has been minimized.
you might want to try a 'sync' between the dd and rm -f Zero out the free space to save space in the final image:dd if=/dev/zero of=/EMPTY bs=1M |
This comment has been minimized.
This comment has been minimized.
If you put @ in your print_green command instead of 1, then you can do print_green this should output in green and not have to do the very ugly print_green 'this should output in green' |
This comment has been minimized.
This comment has been minimized.
This script is like strapping a rocket to your back and going for a sled ride. Main issues with it are:
Fix for the above two might be something like:
(swap file support left as an execise to the reader)
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
After running this script on ubuntu box it filled disk space 100% to the point I can't event shut it down.
dd: error writing ‘/EMPTY’: No space left on device
Now I have a
Filename
file 37GB which I cannot delete even as super user.Any ideas?