http://wiki.td-er.nl/index.php?title=Dirvish&feed=atom&action=historyDirvish - Revision history2024-03-29T08:07:43ZRevision history for this page on the wikiMediaWiki 1.33.0http://wiki.td-er.nl/index.php?title=Dirvish&diff=2411&oldid=prevAdmin: Created page with "== /etc/dirvish/master.conf == ## Example dirvish master configuration file: bank: /storage/dirvish_bank image-default: %Y%m%d log: bzip2 index: bzip2 exclude: ..."2011-09-11T08:44:57Z<p>Created page with "== /etc/dirvish/master.conf == ## Example dirvish master configuration file: bank: /storage/dirvish_bank image-default: %Y%m%d log: bzip2 index: bzip2 exclude: ..."</p>
<p><b>New page</b></p><div>== /etc/dirvish/master.conf ==<br />
## Example dirvish master configuration file:<br />
bank:<br />
/storage/dirvish_bank<br />
image-default: %Y%m%d<br />
log: bzip2<br />
index: bzip2<br />
exclude:<br />
lost+found/<br />
core<br />
*~<br />
.nfs*<br />
dev/<br />
proc/<br />
tmp/<br />
mnt/<br />
Runall:<br />
fileserver_data 22:00<br />
mailserver_data 22:00<br />
# mailserver_filesystem 22:00<br />
expire-default: +15 days<br />
expire-rule:<br />
# MIN HR DOM MON DOW STRFTIME_FMT<br />
* * * * 1 +3 months<br />
# * * 1-7 * 1 +1 year<br />
# * * 1-7 1,4,7,10 1<br />
* 10-20 * * * +4 days<br />
# * * * * 2-7 +15 days<br />
<br />
== default.conf ==<br />
De gebruikte config heeft de betreffende dirvish-bank in /storage/dirvish_bank/fileserver_data/ staan.<br />
Een dirvish-bank is een dirvish-bank, omdat er de file /dirvish/default.conf in staat met de volgende inhoud:<br />
<br />
client: root@192.168.1.5<br />
tree: /storage/networkdrive<br />
xdev: 0<br />
index: gzip<br />
<br />
Voorbeeld na een paar weken aan dirvish-backup:<br />
backupserver:/storage/dirvish_bank/fileserver_data# ls<br />
20080203 20080224 20080304 20080307 20080310 20080313 20080316<br />
20080210 20080302 20080305 20080308 20080311 20080314 dirvish<br />
20080217 20080303 20080306 20080309 20080312 20080315<br />
Met onder elke "datum-directory" de volgende structuur:<br />
backupserver:/storage/dirvish_bank/fileserver_data# ls -l 20080203/<br />
total 4636<br />
-rw-r--r-- 1 root root 4718902 Feb 4 10:51 index.gz<br />
-rw-r--r-- 1 root root 759 Feb 4 10:51 log<br />
-rw-r--r-- 1 root root 842 Feb 4 10:51 summary<br />
drwxrwxr-x 20 1017 users 4096 Jan 15 15:29 tree<br />
Onder de directory "tree" is een volledige snapshot te vinden van de datastructuur van dat moment.<br />
<br />
== Dirvish-bank initialiseren ==<br />
Om een ''vault'' te kunnen gebruiken moet deze eerst een keer aangemaakt worden. Dit doe je dmv het volgende commando:<br />
dirvish --vault fileserver_data --init<br />
N.B. Dit maakt een complete rsync backup van je data, dus kan een grotere netwerk/server belasting veroorzaken dan een normale backup.<br />
<br />
<br />
== cronjob ==<br />
De cronjob om de backups te maken ziet er als volgt uit:<br />
# m h dom mon dow command<br />
0 22 * * * /usr/sbin/dirvish-expire --quiet ; /usr/sbin/dirvish-runall --quiet<br />
<br />
== Automatisch inloggen via ssh op een andere machine ==<br />
Genereer eerst een eigen ssh-identity.<br />
ssh-keygen -t dsa<br />
Eventueel kun je een passphrase opgeven, maar dat is in dit geval niet praktisch.<br />
Dit maakt de private <tt>id_dsa</tt> en public key <tt>id_dsa.pub</tt> aan in <tt>/root/.ssh/</tt><br />
Hierna kopieer je die key naar de andere machine (waarop je automatisch wilt inloggen):<br />
ssh-copy-id -i id_dsa root@mail<br />
Zorg wel dat de hostname <tt>mail</tt> bestaat en maak deze desnoods aan in de <tt>/etc/hosts</tt><br />
Hierna kun je zonder een wachtwoord in te hoeven vullen, inloggen op de andere pc ("mail" in dit geval)<br />
Rsync en dergelijke hebben nu ook geen wachtwoord meer nodig.<br />
<br />
== Kopieren van Dirvish-vault ==<br />
Ik heb een script geschreven wat op de CH3SNAS automatisch na het booten de backup-server kopieert naar zijn eigen schijven.<br />
Op de CH3SNAS heb ik met funplug eerst een Linux-distributie gezet.<br />
<br />
Script kijkt wat de laatste lokale backup is, en haalt vervolgens alles wat nieuwer is van de backupserver (inclusief --link-dest)<br />
<br />
#!/bin/sh<br />
hostname=192.1.132.15<br />
dirvishbank=/storage/dirvish_bank/<br />
remote_dirvishbank=/storage/dirvish_bank/<br />
expire_days=100<br />
TODAY=`date +%Y%m%d` <br />
dobackup(){<br />
echo "Doing backup of $dirvishbank / $dirvishvault"<br />
cd /$dirvishbank/$dirvishvault/<br />
LATEST_LOCAL=`ls | tail -n 1`<br />
remote_allfiles=`ssh root@$hostname ls /storage/dirvish_bank/$dirvishvault/ --file-type | grep '/$' |sort -n |grep '[0-9]'` <br />
for file in $remote_allfiles<br />
do remote_latest=$file<br />
done <br />
remote_backups=`ssh root@$hostname ls /storage/dirvish_bank/$dirvishvault/ --file-type | grep '/$' |sort -n |grep '[0-9]' |grep -B 26 $remote_latest |grep<br />
todo=`echo $remote_backups $LATEST_LOCAL/ |xargs -n 1 echo|sort -n | uniq |grep -A 26 $LATEST_LOCAL/ |grep -v $LATEST_LOCAL/`<br />
for ARG in $todo<br />
do echo "Transferring $dirvishvault using $LATEST_LOCAL as link-dest, processing $ARG"<br />
rsync -e 'ssh -ax -c blowfish' -vrltH --delete -pgo --stats -D --numeric-ids -x --link-dest=/$dirvishbank/$dirvishvault/$LATEST_LOCAL root@$hostname:$remote_dirvishbank/$dirvish<br />
LATEST_LOCAL=$ARG<br />
done<br />
}<br />
dirvishvault=system_files/<br />
dobackup<br />
dirvishvault=mailserver_data/<br />
dobackup<br />
dirvishvault=tekensysteem_data/<br />
dobackup<br />
dirvishvault=fileserver_data/<br />
dobackup<br />
Er is geen dirvish-expire op de CH3NAS (eventueel een keer kijken naar waarom dat (een perl-script) niet werkt). Oude backups (meer dan 100 dagen) verwijderen met:<br />
find /storage/dirvish_bank/VAULT -maxdepth 1 -mtime +100 -type d -exec rm -r {} \;<br />
<br />
Op dit moment 2 schijven in de CH3NAS, eenmaal 500 en eenmaal 300G:<br />
# df -h<br />
Filesystem Size Used Available Use% Mounted on<br />
rootfs 9.7M 7.2M 2.0M 78% /<br />
/dev/root 9.7M 7.2M 2.0M 78% /<br />
/dev/sda2 457.5G 132.8G 324.7G 29% /mnt/HD_a2<br />
/dev/sdb2 292.4G 191.2G 101.2G 65% /mnt/HD_b2<br />
/dev/sda4 486.2M 9.0k 486.2M 0% /mnt/HD_a4<br />
/dev/sdb4 486.2M 5.0k 486.2M 0% /mnt/HD_b4<br />
In /storage/dirvish_bank staan symlinks, zodat alle backups van de dirvish-backups uniform te benaderen zijn:<br />
/storage/dirvish_bank # ls -l<br />
lrwxrwxrwx 1 root root 38 Jan 26 13:37 fileserver_data -> /mnt/HD_a2/dirvishbank/fileserver_data<br />
lrwxrwxrwx 1 root root 46 Jan 26 13:37 fileserver_installation -> /mnt/HD_b2/dirvishbank/fileserver_installation<br />
lrwxrwxrwx 1 root root 38 Jan 26 13:37 mailserver_data -> /mnt/HD_b2/dirvishbank/mailserver_data<br />
lrwxrwxrwx 1 root root 46 Jan 26 13:37 mailserver_installation -> /mnt/HD_b2/dirvishbank/mailserver_installation<br />
lrwxrwxrwx 1 root root 36 Jan 28 13:30 system_files -> /mnt/HD_a2/dirvishbank/system_files/<br />
<br />
fileserver_data en system_files komen dus op de schijf van 500, de rest op de 300G.<br />
<br />
== Links ==<br />
* [http://edseek.com/~jasonb/articles/dirvish_backup/index.html Uitgebreide uitleg van Dirvish]<br />
* [http://www.dirvish.org/debian.howto.html Korte uitleg van het gebruik van Dirvish onder Debian]<br />
* [http://www.dirvish.org/INSTALL Korte installatie handleiding van de Dirvish-homepage]</div>Admin