#!/bin/sh # # Run once a week via cron, out of dak's crontab. set -e set -u # ERR traps should be inherited from functions too. (And command # substitutions and subshells and whatnot, but for us the functions is # the important part here) set -E export SCRIPTVARS=/srv/ftp.debian.org/dak/config/debian/vars . $SCRIPTVARS # Start logging NOW=`date "+%Y.%m.%d-%H:%M:%S"` LOGFILE="$logdir/weekly_${NOW}.log" exec > "$LOGFILE" 2>&1 cleanup() { echo "Cleanup" rm -f "$LOGFILE" } trap cleanup 0 ################################################################################ # Purge empty directories echo "Purging empty directories in $ftpdir/pool/" if [ ! -z "$(find $ftpdir/pool/ -type d -empty)" ]; then find $ftpdir/pool/ -type d -empty | xargs rmdir; fi # Split queue/done echo "Splitting queue/done" dak split-done > /dev/null # Vacuum the database echo "VACUUM; VACUUM ANALYZE;" | psql --no-psqlrc projectb 2>&1 | grep -v "^NOTICE: Skipping.*only table owner can VACUUM it$" # Do git cleanup stuff echo "Doing git stuff" cd /org/ftp.debian.org/git/dak.git git gc --prune git update-server-info # now workaround a git bug not honoring the setup in logs/* # (fix in development, but until it reached backports.org.......) chmod -R g+w logs/ # Clean up apt-ftparchive's databases cd $configdir echo "Cleanup apt-ftparchive's database" apt-ftparchive -q clean apt.conf apt-ftparchive -q clean apt.conf.buildd # Update wanna-build dump echo "Update wanna-build database dump" /org/ftp.debian.org/scripts/nfu/get-w-b-db echo "Fixing symlinks in $ftpdir" symlinks -d -r $ftpdir echo "Finally, all is done, compressing logfile" exec > /dev/null 2>&1 bzip2 -9 "$LOGFILE" ################################################################################