Skip to content
Ben Best edited this page Apr 21, 2014 · 9 revisions

Backup folders

  • Original The following directories are not backed up:
/dev
/lost+found
/media
/mnt
/proc
/run
/sys
/tmp
/var/cache
/var/data
  • Modified The following directories are not backed up:
/dev
/lost+found
/media
/mnt
/proc
/run
/sys
/tmp
/var/cache

/var/data/db_export
/var/data/db_mirror

ohi home-backup (rsync from /var/data/us data-backup var/data machine_backups/vulcan usr/local <- /usr/local/ohi (rsync to /var/cache/ohi/home-backup) ohi (rsync to /var/cache/ohi/data-backup) db_mirror (pg_dump) db_export (psql export to CSV files)

PostgreSQL

Crontabs

# list crontab  of [user]
sudo -u [user] crontab -l

# edit crontab  of [user]
sudo -u [user] crontab -e
  • postgres BB 2014-03-06: swapped pg dump script, frequency and location
# m h  dom mon dow   command
#@weekly $HOME/db-backup-weekly.sh 2>/dev/null 1>/dev/null
@daily pg_dumpall -U postgres > /var/data/ohi/db_dump/pg_dumpall.sql
  • root - BB commented weekly 2014-03-06, BB commented daily 2014-04-21
# m h  dom mon dow   command
#0 3 * * * /usr/local/ohi/sbin/ohi-backup-nightly
#0 5 * * 1 /usr/local/ohi/sbin/ohi-backup-weekly
  • ohi - BB commented weekly 2014-03-06
SHELL=/bin/bash
@hourly  /usr/local/ohi/sbin/cron-hourly.sh >/dev/null 2>>/var/log/ohi/cron.err
@daily   /usr/local/ohi/sbin/cron-daily.sh >/dev/null 2>>/var/log/ohi/cron.err # commented out ohi-backup of pgdb's
#@weekly  /usr/local/ohi/sbin/cron-weekly.sh >/dev/null 2>>/var/log/ohi/cron.err
@monthly /usr/local/ohi/sbin/cron-monthly.sh >/dev/null 2>>/var/log/ohi/cron.err

Scripts

ohi-backup-weekly

in /usr/local/ohi/sbin (/usr/local/ohi -> /var/data/ohi/usr/local)

#!/bin/bash

function doit () {
    rsync -ao --delete $1 $2
    chown -R ohi.ohi $2
    chmod -R ug+rX $2
}

. /etc/ohi/profile.sh

# fast nightly data backup -- for quick access to 1-day old files
doit ${OHI_DISK_DATA}/ ${OHI_DISK_TMP}/data-backup/weekly

# fast nightly home backup -- for quick access to 1-day old files
doit ${OHI_HOME}/ ${OHI_DISK_TMP}/home-backup/weekly

# fast nightly data backup -- for quick access to 1-day old files
doit ${OHI_DISK_LIB}/ ${OHI_DISK_TMP}/lib-backup/weekly

cron-weekly.sh

in /usr/local/ohi/sbin (/usr/local/ohi -> /var/data/ohi/usr/local)

#!/bin/bash
source $HOME/.profile # best way to force a login shell
cd $OHI_RUNDIR && {
  export PATH="$OHI_HOME/sbin:$PATH"

  # log this job
  #ohi-shell echo "Running $0"

  # delete any unused files
  pushd "$OHI_DISK_L1" && {
    echo "Purging files not accessed in last 30 days"
    find . -type f -atime "+30" -writable -print #-delete
    popd
  }

  # mirror data from external sites (static only, run ohi-mirror one at a time)
  #for t in static; do
  #  ohi-shell mirrors $t | xargs -L 1 ohi-mirror >> $OHI_LOGDIR/mirror.log 2>&1
  #done
}

exit 0

db-backup-weekly.sh

in /var/lib/postgresql

as user postgres:

HOME=/var/lib/postgresql
/var/lib/postgresql/backups -> /var/data/postgres/backups
set -x
cd $HOME/backups
dt=$(date +"%Y%m%d")

for db in ohi_global2013 ohi_nature2012 ohi_brazil2012 ohi_cc2012 bbest hardy_dev; do
    export PGDATABASE=$db
    d=$PGDATABASE/$dt

    test -d $d && rm -rf $d
    mkdir -p $d
    (cd $d
     pg_dump --format=plain  --lock-wait-timeout=1000 $PGDATABASE > dump.sql
     pg_dump --format=custom --lock-wait-timeout=1000 $PGDATABASE > dump.dat
        )

    tar cf - $d | 7z a -si $d.tar.7z
    rm -rf $d
done

Environment

env | grep -i OHI_

OHI_DISK_DATA=/var/data/ohi
OHI_HOME=/usr/local/ohi
OHI_DISK_LIB=/var/lib/ohi
OHI_DISK_TMP=/var/cache/ohi


OHI_MODELDIR=/var/data/ohi/model
OHI_STABLEDIR=/var/data/ohi/stable
OHI_CACHEDIR=/var/cache/ohi/cache
OHI_CLEANDIR=/var/data/ohi/stable
OHI_PROJDIR=/var/lib/ohi/proj
OHI_LOGDIR=/var/log/ohi
PGDATABASE=ohi_nature2012
OHI_CONFDIR=/etc/ohi
OHI_INGESTDIR=/var/cache/ohi/ingest
OHI_PUBDATADIR=/var/lib/ohi/ftp/pub/data
OHI_DISK_L5=/var/cache/ohi
OHI_DISK_L7=/var/lib/ohi
OHI_PUBCATALOGDIR=/var/lib/ohi/ftp/pub/catalog
OHI_DISK_L1=/var/cache/ssd/ohi
OHI_STAGEDIR=/var/cache/ohi/staged
OHI_DISK_L3=/var/log/ohi
OHI_DISK_LOG=/var/log/ohi
OHI_DISK_L9=/var/data/ohi
OHI_READYDIR=/var/cache/ssd/ohi/ready
OHI_REBUILD=all
OHI_RAWDIR=/var/data/ohi/raw
OHI_DISK_RUN=/var/cache/ssd/ohi
OHI_PARAMDIR=/var/lib/ohi/param
OHI_MIRRORDIR=/var/cache/ohi/mirror
OHI_RUNDIR=/var/cache/ssd/ohi
OHI_PUBDIR=/var/lib/ohi/ftp/pub

Actions

sudo rm -rf /var/cache/ohi/data-backup/weekly
sudo -u ohi crontab -e
sudo -u root crontab -e