FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
  1. May 24, 2022
    • Dr Adam Thorn's avatar
      Fix generation of list of package files to exclude in the standard prepare script · ad91da90
      Dr Adam Thorn authored
      c714a331 introduced an annoying bug here. If the filenames piped to xargs include
      an apostrophe, xargs will complain and stop. We have thus, in practice, been
      including all files that appear in the list after
      
      /usr/share/sounds/ubuntu/ringtones/Sam's Song.ogg
      
      !! Also, we've not been properly handling filenames with spaces in, and perhaps
      other filenames too. We thus null-terminate the filenames for ourself.
      
      Because I want to get to the point where we can have a sensible return code
      from the prepare script, this commit also adds some set -e commands to try
      to ensure errors bubble up. This is a little tedious to achieve due to all
      the subshells in this script.
      
      For the same reason, we split off the "diff" command into a "set +e" block
      because diff returns non-zero if differences are found. We do not consider
      that to be an error!
      ad91da90
    • Dr Adam Thorn's avatar
      Improve check of whether mysql is(/should be) running in default prepare script · 40f64d5c
      Dr Adam Thorn authored
      We think the intention of the old version of this block is
      
      "if mysql is running, dump the databases".
      
      The check has been buggy for a long long time: it reads the contents
      of my.cnf ... which nowadays just has some !includedir directives.
      This lead to setting
      
      SOCKET=""
      
      and, it turns out, [ -S "" ] returns true.
      
      The main intention of this part of the prepare script is to backup
      vaguely normal machines running a simple mysql database, such as
      small group webservers. We thus don't need to consider every
      eventuality.
      40f64d5c
    • Dr Adam Thorn's avatar
    • Dr Adam Thorn's avatar
      Cease trying to configure dateext logrotation in prepare script · dd28c9af
      Dr Adam Thorn authored
      On servers we configure this via ansible.
      
      On workstations it is not having the desired effect because the stock
      logrotate.conf includes the line ...
      
      and so the simple grep thinks it's already configured! I'll add an
      ansible task in due course to actually configure this.
      dd28c9af
  2. Apr 25, 2022
  3. Jun 15, 2021
    • Dr Catherine Pitt's avatar
      Add prepare-redhat script · 83e54e26
      Dr Catherine Pitt authored
      prepare-nondebian does not work on RedHat machines running MySQL as the
      paths are different, so providing a fixed version. prepare-nondebian has
      historically been used more widely than just RedHat, hence the decision
      to provide a RedHat-specific version and not just edit it.
      0.9-ch78
      83e54e26
  4. Jan 18, 2021
  5. Jan 06, 2021
  6. Nov 09, 2020
  7. Nov 06, 2020
  8. Oct 07, 2020
  9. Oct 06, 2020
  10. Dec 06, 2018
  11. Nov 07, 2018
    • Dr Adam Thorn's avatar
      Escape $ in ssh commands used in prepare scripts · 71da2ff1
      Dr Adam Thorn authored
      Our backup logs are generally full of
      
      + ssh -p 22 -o ConnectTimeout=10 root@openvpn2020.ch.cam.ac.uk '
        umask 077
        FILELIST=`tempfile`
        CONFLIST=`tempfile`
        mkdir -p /var/adm/backup
        # Make logrotate use datestamps
        if ! grep -q dateext /etc/logrotate.conf ; then sed  -i '\''s/^include/dateext\ninclude/'\'' /etc/logrotate.conf ; fi
        # Which packages are installed?
        dpkg --get-selections | awk '\'' { print $1 ; } '\'' >/var/adm/backup/packages
        cat /var/lib/dpkg/info/*.list | while read F ; do [ -f "$F" ] && echo "$F" ; done | sort > $FILELIST
        awk '\''/Description:/ { flag = 0 } ; flag == 1 { print $1 ; }  ; /Conffiles:/ { flag = 1  } ; '\'' </var/lib/dpkg/status |  sort >$CONFLIST
        diff -u $FILELIST $CONFLIST | grep ^-/ | sed s/^-// >/var/adm/backup/package-files
        rm
       '
      rm: missing operand
      
      because we're not escaping the args to that final rm command! This means we gradually fill
      up /tmp, especially on machines that are infrequently rebooted (e.g. calculon)
      0.9-ch56
      71da2ff1
  12. Oct 18, 2018
  13. Oct 10, 2017
    • Dr Catherine Pitt's avatar
      Add two new specialised prepare scripts · 111db7bb
      Dr Catherine Pitt authored
      prepare-olddebian : does not do package file excludes
      prepare-database: does not do package file excludes or dump databases
      
      These are for use on machines where we can no longer reinstate them by
      quickly and easily installing a new VM from the network and then
      layering the backup on top, usually because the OS is obsolete.
      0.9-ch49
      111db7bb
  14. Jun 01, 2017
  15. Jan 12, 2017
  16. Jun 27, 2016
  17. Apr 05, 2016
    • Dr Catherine Pitt's avatar
      Logging enhancements and prepare-nondebian tweak · bd5e7e8d
      Dr Catherine Pitt authored
      Split logs for tasks with same target machine but different target filesystems into
      different logfiles for easier debugging.
      
      prepare-nondebian script creates a fake excludes file for the machine now if
      one doesn't exist, because I keep forgetting to do it myself for Redhat
      machines and then the zfs-rsync script fails.
      bd5e7e8d
  18. Apr 04, 2016
  19. Jan 14, 2016
  20. Jul 02, 2015
Loading