Difference between revisions of "Cedeus DB backups"

From stgo
Jump to: navigation, search
(File transfer)
(File transfer)
Line 27: Line 27:
  
 
==== File transfer ====
 
==== File transfer ====
 +
To tranfers files I decided, for safety reasons, to create a new cedeus backup user on the receiving computer.
 
can be accomplished using '''scp''' or better '''rsync''' e.g.:
 
can be accomplished using '''scp''' or better '''rsync''' e.g.:
*: "<code>scp /home/ssteinig/ftw.txt user@example.com:/home/ssteinig/dbbackups/</code>"
+
*: "<code>scp /home/ssteinig/ftw.txt user@example.com:/home/backup_user/dbbackups/</code>"
 
** However, a ssh key should be generated first so no password needs to be provided. A detailed dscription can be found on: http://troy.jdmz.net/rsync/index.html
 
** However, a ssh key should be generated first so no password needs to be provided. A detailed dscription can be found on: http://troy.jdmz.net/rsync/index.html
 
** in short do "<code>ssh-keygen -t rsa -b 2048 -f /home/thisuser/cron/thishost-rsync-key</code>". Then copy the key to the other servers users .ssh folder (using scp), and add it to the authorized_keys. (Note, authorized_keys should be chmod 700).
 
** in short do "<code>ssh-keygen -t rsa -b 2048 -f /home/thisuser/cron/thishost-rsync-key</code>". Then copy the key to the other servers users .ssh folder (using scp), and add it to the authorized_keys. (Note, authorized_keys should be chmod 700).
** then we would use "<code>scp -i /home/ssteinig/cron/thishost-rsync-key /home/ssteinig/ftw.txt user@example.com:/home/ssteinig/dbbackups/</code>"
+
** then we would use "<code>scp -i /home/ssteinig/cron/thishost-rsync-key /home/ssteinig/ftw.txt user@example.com:/home/backup_user/dbbackups/</code>"
 
** note that it is necessary to initialize it once (with whatever file), so the connextion gets an ECDDSA key fingerprint.
 
** note that it is necessary to initialize it once (with whatever file), so the connextion gets an ECDDSA key fingerprint.
 
* having my ssh keys setup, the code for syncing the cedeusdb directory with '''rsync''' would be
 
* having my ssh keys setup, the code for syncing the cedeusdb directory with '''rsync''' would be
** "<code></code>"
+
** "<code>...ToDo...</code>"
  
 
==== Example geonodegisdb93backup.sh ====
 
==== Example geonodegisdb93backup.sh ====

Revision as of 17:06, 3 December 2014

>> return to Cedeus_IDE


How to set up Backups

notifications

To get notified about the backups via email, a/the shell script may send emails via "mailx" - i.e Nail. => see http://klenwell.com/press/2009/03/ubuntu-email-with-nail/

Btw. postfix may work as well

=> ToDo: Install mail program

dump of the GeoNode DB - on CedeusDB

  • create a shell script that contains the pgdump instructions - see /home/ssteinig/pgdbbackup.sh on CedeusDB
  • test if script or script execution actually works. A simple script for testing may perhaps be this (/home/ssteinig/touchy.sh)
#!/bin/bash 
touch /home/ssteinig/ftw.text

File transfer

To tranfers files I decided, for safety reasons, to create a new cedeus backup user on the receiving computer. can be accomplished using scp or better rsync e.g.:

  • "scp /home/ssteinig/ftw.txt user@example.com:/home/backup_user/dbbackups/"
    • However, a ssh key should be generated first so no password needs to be provided. A detailed dscription can be found on: http://troy.jdmz.net/rsync/index.html
    • in short do "ssh-keygen -t rsa -b 2048 -f /home/thisuser/cron/thishost-rsync-key". Then copy the key to the other servers users .ssh folder (using scp), and add it to the authorized_keys. (Note, authorized_keys should be chmod 700).
    • then we would use "scp -i /home/ssteinig/cron/thishost-rsync-key /home/ssteinig/ftw.txt user@example.com:/home/backup_user/dbbackups/"
    • note that it is necessary to initialize it once (with whatever file), so the connextion gets an ECDDSA key fingerprint.
  • having my ssh keys setup, the code for syncing the cedeusdb directory with rsync would be
    • "...ToDo..."

Example geonodegisdb93backup.sh

#!/bin/bash
logfile="/home/ssteinig/geonode_db_backups/pgsql.log"
backup_dir="/home/ssteinig/geonode_db_backups"
touch $logfile

echo "Starting backup of databases " >> $logfile
dateinfo=`date '+%Y-%m-%d %H:%M:%S'`
timeslot=`date '+%Y%m%d-%H%M'`
/usr/bin/vacuumdb -z -h localhost -U postgres geonodegisdb93  >/dev/null 2>&1
/usr/bin/pg_dump -U postgres -i -F c -b geonodegisdb93 -h 127.0.0.1 -f $backup_dir/geonodegisdb93-backup-$timeslot.backup
echo "Backup and Vacuum complete on $dateinfo for database: geonodegisdb93 " >> $logfile
echo "Done backup of databases " >> $logfile
# sstein: email notification not used at the moment
# tail -16 /home/ssteinig/geonode_db_backups/pgsql.log | mailx blabla@blub.cl

This example is based on the shell script posted here: http://stackoverflow.com/questions/854200/how-do-i-backup-my-postgresql-database-with-cron For a better Postgres dump script it may be worth to look here: https://wiki.postgresql.org/wiki/Automated_Backup_on_Linux

dump of the GeoNode user db - on CedeusGeonode VM

blabla

tar/zip of the (uploaded) GeoNode file data and docs - on CedeusGeonode Vm

blabla

MySQL dump for Elgg miCiudad - on CedeusGeonode VM

blabla

tar/zip of the (uploaded) Elgg miCiudad files - on CedeusGeonode VM

blabla

MySQL dump for Mediawiki(s) - on CedeusGeonode VM

blabla