Browse Source

Restructured to better break up backups and add user control

main
DarkFeather 4 years ago
parent
commit
652d7c4795
12 changed files with 69 additions and 68 deletions
  1. +2
    -1
      Makefile
  2. +14
    -5
      aether-gen.bash
  3. +4
    -0
      examples/cron.backup.script
  4. +6
    -0
      examples/foundation.backup.script
  5. +4
    -0
      examples/grimoire.backup.script
  6. +7
    -0
      examples/irc.backup.script
  7. +5
    -0
      examples/singularity.backup.script
  8. +4
    -0
      examples/sshd.backup.script
  9. +5
    -0
      examples/webserver.backup.script
  10. +9
    -0
      examples/wiki.backup.script
  11. +9
    -0
      examples/yggdrasil.backup.script
  12. +0
    -62
      server-backup

+ 2
- 1
Makefile View File

@ -23,11 +23,12 @@ server: keys scripts user ./aether-gen.bash ./aether.pub ./server-backup
bash ./aether-gen.bash
cp ./aether.pub /home/aether/.ssh/authorized_keys
cp ./aether-gen.bash /root/bin/aether-gen.bash
mkdir /usr/local/etc/Aether
mkdir -p /usr/local/etc/Aether/backup-entries
touch /usr/local/etc/Aether/nodeslist
mkdir -p ${BACKUPDIR};
make checkperm
@echo You have the files. Add aether-gen.bash and server-backup to root\'s crontab.
@echo Mark services to be backed up by adding a file from examples/ to /usr/local/etc/Aether/backup-entries
@echo Track client nodes in /usr/local/etc/Aether/nodeslist
user: aether make-user.bash


+ 14
- 5
aether-gen.bash View File

@ -2,11 +2,20 @@
export LOGFILE="/var/log/aether-gen.log"
/usr/local/src/Aether/server-backup
export BACKUPDIR="/usr/local/backup"
export BACKUPCMD="rsync -avzl --delete-after";
cd /home/aether
date >> "$LOGFILE"
chown root:root "$BACKUPDIR"
chmod 0770 "$BACKUPDIR"
for i in `find /usr/local/etc/Aether/backup-entries/ -type f`; do
bash "${i}" &>> "$LOGFILE"
done
date >> $LOGFILE
date > "$BACKUPDIR"/lastbackup.date
cd /home/aether
echo Creating and compressing archive...
tar cvf aether.tar /usr/local/backup
@ -18,5 +27,5 @@ rm aether.tar.gz
echo Created aether archive.
date >> $LOGFILE
echo >> $LOGFILE
date >> "$LOGFILE"
echo >> "$LOGFILE"

+ 4
- 0
examples/cron.backup.script View File

@ -0,0 +1,4 @@
#!/bin/bash
### Cron ###
crontab -l > "$BACKUPDIR"/$(whoami)-crontab

+ 6
- 0
examples/foundation.backup.script View File

@ -0,0 +1,6 @@
#!/bin/bash
### Foundation ###
$BACKUPCMD /srv/foundation/ "$BACKUPDIR"/Foundation &>/dev/null
$BACKUPCMD /usr/local/etc/ "$BACKUPDIR"/usr-local-etc

+ 4
- 0
examples/grimoire.backup.script View File

@ -0,0 +1,4 @@
#!/bin/bash
### Grimoire ###
sudo -u postgres pg_dumpall > "$BACKUPDIR"/grimoire.sql

+ 7
- 0
examples/irc.backup.script View File

@ -0,0 +1,7 @@
#!/bin/bash
### IRC Server ###
$BACKUPCMD /etc/unrealircd/ "$BACKUPDIR"/unrealircd
$BACKUPCMD /etc/anope/ "$BACKUPDIR"/anope
cp /opt/anope/data/anope.db "$BACKUPDIR"

+ 5
- 0
examples/singularity.backup.script View File

@ -0,0 +1,5 @@
#!/bin/bash
### Singularity ###
cp /usr/share/webapps/tt-rss/config.php "$BACKUPDIR"/singularity-config.php
sudo -u postgres pg_dump ttrss > "$BACKUPDIR"/ttrss.psql

+ 4
- 0
examples/sshd.backup.script View File

@ -0,0 +1,4 @@
#!/bin/bash
### SSHD ###
mkdir -p "$BACKUPDIR"/ssh
$BACKUPCMD /etc/ssh "$BACKUPDIR"/ssh

+ 5
- 0
examples/webserver.backup.script View File

@ -0,0 +1,5 @@
#!/bin/bash
### Lighttpd ###
mkdir -p "$BACKUPDIR"/lighttpd "$BACKUPDIR"/http
$BACKUPCMD /etc/lighttpd/ "$BACKUPDIR"/lighttpd
$BACKUPCMD /srv/http/ "$BACKUPDIR"/http/

+ 9
- 0
examples/wiki.backup.script View File

@ -0,0 +1,9 @@
#!/bin/bash
### Wiki ###
mkdir "$BACKUPDIR"/wiki/
for i in `find /usr/share/webapps/ -maxdepth 1 -type d | grep mediawiki`; do
foldername="$(echo "$i" | rev | cut -f 1 -d '/' | rev)"
dbname="$(grep '^\$wgDBname' "$i"/LocalSettings.php | cut -f 2 -d \")"
$BACKUPCMD "${i}"/LocalSettings.php "$BACKUPDIR"/wiki/"$foldername"-localsettings.php
sudo -u postgres pg_dump "$dbname" > "$BACKUPDIR"/wiki/"$dbname".psql
done

+ 9
- 0
examples/yggdrasil.backup.script View File

@ -0,0 +1,9 @@
#!/bin/bash
### Yggdrasil -- File list only for space reasons ###
if [ -x /usr/bin/locate ]; then
locate /srv/yggdrasil > "$BACKUPDIR"/yggdrasil-file-list.txt
else
find /srv/yggdrasil/ > "$BACKUPDIR"/yggdrasil_file_list.txt
fi

+ 0
- 62
server-backup View File

@ -1,62 +0,0 @@
#!/bin/bash
export BACKUPDIR="/usr/local/backup"
export BACKUPCMD="rsync -avzl --delete-after";
## Backup small development ##
chown postgres:root "$BACKUPDIR"
chmod 0770 "$BACKUPDIR"
$BACKUPCMD /root/bin/ "$BACKUPDIR"/root/bin/
## Backup configuration ##
cp -r /etc/skel "$BACKUPDIR"
cp /etc/bash.bashrc "$BACKUPDIR"/bash.bashrc
cp /etc/vimrc "$BACKUPDIR"/vimrc
## Backup the good servers ##
### SSHD ###
$BACKUPCMD /etc/ssh "$BACKUPDIR"/ssh
### Lighttpd ###
$BACKUPCMD /etc/lighttpd/ "$BACKUPDIR"/lighttpd
$BACKUPCMD /srv/http/ "$BACKUPDIR"/http/
### Cron ###
crontab -l > "$BACKUPDIR"/$(whoami)-crontab
### IRC Server ###
$BACKUPCMD /etc/unrealircd/ "$BACKUPDIR"/unrealircd
$BACKUPCMD /etc/anope/ "$BACKUPDIR"/anope
cp /opt/anope/data/anope.db "$BACKUPDIR"
### Foundation ###
$BACKUPCMD /srv/foundation/ "$BACKUPDIR"/Foundation
$BACKUPCMD /usr/local/etc/ "$BACKUPDIR"/usr-local-etc
### Wiki ###
$BACKUPCMD /usr/share/webapps/mediawiki/LocalSettings.php "$BACKUPDIR"/mediawiki-localsettings.php
# Databases backed up by Grimoire
### Singularity ###
cp /usr/share/webapps/tt-rss/config.php "$BACKUPDIR"/singularity-config.php
# Databases backed up by Grimoire
### Grimoire ###
sudo -u postgres pg_dump aninix_wiki > "$BACKUPDIR"/aninix_wiki.psql
sudo -u postgres pg_dump gb_wiki > "$BACKUPDIR"/gb_wiki.psql
sudo -u postgres pg_dump ttrss > "$BACKUPDIR"/ttrss.psql
sudo -u postgres pg_dump lykos_wiki > "$BACKUPDIR"/lykos_wiki.psql
### Yggdrasil -- File list only for space reasons ###
if [ -x /usr/bin/locate ]; then
locate /srv/yggdrasil > "$BACKUPDIR"/yggdrasil-file-list.txt
else
find /srv/yggdrasil/ > "$BACKUPDIR"/yggdrasil_file_list.txt
fi
# TODO evaluate for other services not covered.
date > /var/log/server-backup.log
date > "$BACKUPDIR"/lastbackup.date

Loading…
Cancel
Save