Inhoudstabel
Setup
**Linux Clients** Om ervoor te zorgen dat backuppc de backups kan nemen vanop afstand, moet je ervoor zorgen dat backuppc kan inloggen op de computers met een ssh-sessie. En dit allemaal zonder vragen te stellen zoals rsa-keys, wachtwoorden… Zorg ervoor dat je elke stap uitvoert, en met de juiste gebruiker!
- Als gebruiker backuppc, op de backupserver:
ssh-keygen -t rsa cp ~/.ssh/id_rsa.pub ~/.ssh/backuppc_id_rsa.pub
scp ~/.ssh/backuppc_id_rsa.pub USER@CLIENT:/home/USER/backuppc_id_rsa.pub - Als gebruiker root, op de client:
ssh USER@CLIENT
sudo su – touch ~/.ssh/authorized_keys2
cat /home/USER/backuppc_id_rsa.pub >> ~/.ssh/authorized_keys2 - Wijzig zo dat root kan inloggen (enkel als ssh lokaal te benaderen is aub) op de client:
vim /etc/ssh/sshd_config
PermitRootLogin yes
service sshd restart - Op de backuppc server, login als backuppc en kopieer de key, en controleer eventjes:
su backuppc
ssh-copy-id root@tinkelbel
ssh root@tinkelbel whoami - Test de connectie als gebruiker backuppc, op de backupserver. Let erop wat je gebruikt als CLIENT hostname. Dit moet overeenkomen met de naam die je gebruikt in backuppc, dus best niet het IP-adres. Eventueel de naam manueel in >/etc/hosts invoeren.
ssh -l root CLIENT whoami - Voor een linux mint client te backuppen vanaf een centos7, kon ik blijkbaar niet de pubkey kopieren. Om dit te laten werken, moet je de /etc/ssh/sshd.conf upgraden met:
PubkeyAcceptedKeyTypes=+ssh-dss
Specifieke scripten
Voorbeeldje van lokale backup met rsync. Hier worden enkele folders niet gebackupped, reden is dat ze anders toch maar falen.
more /etc/backuppc/corius.pl
$Conf{XferMethod} = 'rsync';
$Conf{RsyncClientCmd} = '$sshPath -q -x -l root $host $rsyncPath $argList+';
$Conf{RsyncShareName} = '/';
$Conf{BackupFilesExclude} = ['/proc', '/mnt', '/var/lib/backuppc', '/var/cache','/tmp'];
Voorbeeldje van bij klant, waar de lokale server met ’tar’ wordt gebackupped ipv rsync.
more /etc/backuppc/servertje.pl
$Conf{XferMethod} = 'tar';
$Conf{TarShareName} = ['/'];
$Conf{TarClientCmd} = '/usr/bin/sudo $tarPath -c -v -f - -C $shareName --totals --ignore-failed-read';
$Conf{TarFullArgs} = '$fileList'; $Conf{TarIncrArgs} = '--newer=$incrDate $fileList';
$Conf{BackupFilesExclude} = ['/proc', '/mnt', '/var/lib/backuppc', '/var/cache','/tmp','/home/backups', '/sys', '/run'];
Remote backups plaatsen (NAS)
Met dit scriptje maak ik een remote backup (bv op NAS) van de data op de backupserver.
/scripts/backup_remote.sh
#!/bin/bash
CURRENT_DATE=$(date '+%d/%m/%Y-%H:%M:%S')
MOUNT_DISK="mount -t smbfs -o username=***,password=*** //NAS/backups /mnt/storagirus"
BACKUP_REMOTE="du /mnt/storagirus/public/ -hs"
SEND_MAIL="mail ben@oniria.be < /var/log/backup.log -s 'Backup failed, check server!!!' -F corius@oniria.be"
if grep "/mnt/storagirus" "/proc/mounts" then rsync -thrv --delete --exclude-from '/scripts/backup_remote_exclude.txt' /mnt/nfs/ /mnt/storagirus/nfs
echo "$CURRENT_DATE *** BACKUP *** Backup was OK *** $($BACKUP_SIZE)" >> /var/log/backup.log else #Storagirus is not mounted, let's try to mount it...
$MOUNT_DISK
if grep "/mnt/storagirus" "/proc/mounts" then rsync -thrv --delete --exclude-from '/scripts/backup_remote_exclude.txt' /mnt/nfs/ /mnt/storagirus/nfs echo "$CURRENT_DATE *** BACKUP *** Backup was OK, after remount *** $($BACKUP_SIZE)" >> /var/log/backup.log else #Let's stop trying, I'll warn my administrator...
$SEND_MAIL echo "$CURRENT_DATE *** BACKUP *** Backup was KO, nothing done" >> /var/log/backup.log
fi
fi
more /scripts/backup_remote_exclude.txt
public/data/videos public/data/audio
backup/ user_3/data/documents/Backups/
user_3/data/documents/Software/
public/data/zoneminder/
Geen grafieken
I had the same issue and decided to investigate. My error log looked like this:
ERROR: opening '/var/lib/backuppc/log/pool.rrd': Permission denied: /usr/share/backuppc/cgi-bin/index.cgi, referer: http://servername/backuppc/index.cgi
I found that I had to give execute permissions to the folders above and read permissions to “everyone” on the pool.rrd then the graph appeared. It would seem that the CGI script is executing as “everyone” vs “backuppc user” Here are the minimal permission changes I made to get things to work.
Changed BackupPC directory permission from: 2750 to 2751 --> drwxr-s--x backuppc backuppc
Changed BackupPC/log directory permission from: 750 to 751 --> drwxr-x--x backuppc backuppc log
Changed BackupPC/log/pool.rrd directory permission from: 640 to 754 --> -rwxr-xr-- backuppc backuppc pool.rrd
My server is blocked from public access, so I was comfortable making this change. I would be very happy to hear anyone’s comments regarding what type of security issue this may be -and if there is another way to better way to solve this.
Clients
Windows
Je kan backups nemen via samba (windows protocol), maar beter neem je backups via het protocol rsync. Daarvoor moet je wel op de windows machine een rsyncserver daemon (service) installeren. Volg hiervoor volgende stappen
- Download rsyncd via sourceforge.net/projects/backuppc/files/cygwin-rsyncd/
Dit programma draait na installatie als service, en bevindt zich standaard in de folder c:/rsyncd folder. - Wijzig het bestandje rsyncd.secrets met jouw gebruikersnaam (uit backuppc) die je gebruikt voor de backups. Let er wel op dat deze gebruiker toegang heeft tot de windows bestanden (bv een administrator). Volgende regel is voldoende in dit bestandje:
beheerder:MijnWachtwoord - Wijzig het bestandje rsyncd.conf met hetgeen jij wenst te backuppen. Let er ook op dat je de toegelaten hosten wijzigt naar jouw backupserver. bv:
>use chroot = false
max connections = 2
lock file = c:/rsyncd/rsyncd.lock
>
>[cDrive]
path = /cygdrive/c/
comment = Entire C: Drive
auth users = beheerder
secrets file = c:/rsyncd/rsyncd.secrets
hosts allow = 192.168.2.5
strict modes = false
read only = true
list = false
>
>[qDrive]
path = /cygdrive/Q/
comment = Entire Q: Drive
auth users = beheerder
secrets file = c:/rsyncd/rsyncd.secrets
hosts allow = 192.168.2.5
strict modes = false
read only = true
list = false
Volgende settings zijn van toepassing in backuppc
Volledige backup
$Conf{BackupFilesExclude} = {
'*' => [
'/RECYCLER',
'/WINNT',
'/temp',
'/WUTemp',
'/WINDOWS/*',
'/Windows/*',
'/$Recycle.Bin/*',
'/System Volume Information',
'/Users/*/AppData/Local/Microsoft/Windows/Temporary Internet Files/*',
'/Users/*/AppData/Local/Microsoft/Internet Explorer/Recovery/*',
'/Users/*/AppData/Local/Mozilla/Firefox/*/*/Cache/*',
'/Users/*/AppData/LocalLow/Microsoft/CryptnetUrlCache/*',
'/Users/*/AppData/Local/Microsoft/BingBar/*',
'/Users/*/AppData/Local/Temp/*',
'/Users/*/AppData/Local/Microsoft/Media Player/*',
'/Documents and Settings/*/Local Settings/Application Data/Mozilla/Firefox/Profiles/*/Cache/',
'/Documents and Settings/*/Local Settings/Application Data/Microsoft/Internet Explorer/Recovery/Active/',
'/Documents and Settings/*/Application Data/*/Log/',
'/Documents and Settings/*/Local Settings/Temporary Internet Files/*',
'/Documents and Settings/*/Local Settings/History/*',
'/Documents and Settings/*/Local Settings/Temp/*',
'/Documents and Settings/*/Cookies/',
'/Documents and Settings/*/Favorites/',
'/Documents and Settings/*/IETldCache/',
'/Documents and Settings/*/IECompatCache/',
'/Documents and Settings/*/NetHood/',
'/Documents and Settings/*/PrivacIE/',
'/Documents and Settings/*/PrintHood/',
'/Documents and Settings/*/WINDOWS/',
'/Documents and Settings/*/Recent/',
'/Documents and Settings/*/Webex/',
'/Documents and Settings/*/temp/',
'/pagefile.sys',
'/hiberfil.sys',
'*/NTUSER.DAT',
'*/NTUSER.DAT.LOG',
'*/ntuser.dat.LOG',
'*/UsrClass.dat',
'*/UsrClass.dat.LOG',
]
}
Data backup
>$Conf{BackupFilesExclude} = {
'*' => [
'*/AppData/Local/Microsoft/Windows/Temporary Internet Files/*',
'*/AppData/Local/Microsoft/Internet Explorer/Recovery/*',
'*/AppData/Local/Mozilla/Firefox/*/*/Cache/*',
'*/AppData/LocalLow/Microsoft/CryptnetUrlCache/*',
'*/AppData/Local/Microsoft/BingBar/*',
'*/AppData/Local/Temp/*',
'*/AppData/Local/Microsoft/Media Player/*',
'*Application Data/Mozilla/Firefox/Profiles/*/Cache/',
'*/Application Data/Microsoft/Internet Explorer/Recovery/Active/',
'*/Application Data/*/Log/',
'*/Local Settings/Temporary Internet Files/*',
'*/Local Settings/History/*',
'*/Local Settings/Temp/*',
'*/Cookies/',
'*/IETldCache/',
'*/IECompatCache/',
'*/NetHood/',
'*/PrivacIE/',
'*/PrintHood/',
'*/WINDOWS/',
'*/Recent/',
'*/Webex/',
'*/temp/',
]
}
Restore
Soms wil je natuurlijk wel es een backup terugzetten onder backuppc. Dit is vrij eenvoudig, op voorwaarde natuurlijk dat je weet waar je data zich bevond.
- Open backuppc (http://……)
- Selecteer de juiste machine in het linkermenuu (dropdown)
- Selecteer de juist backup versie uit de verschillende backups.
Hier kan je oudere backups terugzetten dan bv die van gisteren. Handig als je een paar dagen geleden een foutje gemaakt hebt. - ‘Browse’ naar de juiste folder bv /home/ben
- Selecteer de bestanden die je terug wenst te zetten
- Klik op ‘restore selected files’
- Vervolgens kan je kiezen waar je de backup wenst terug te zetten.
- Dit kan bv zijn op de oorspronkelijke plaats (let op dat de huidige bestanden onherroepelijk worden overschreven)
- Je kan ook kiezen om de gekozen bestand(en) te downloaden als zip-bestand (of tar).
Handig als je zaken wenst te vergelijken.
Control
Hoe kan je op een snelle manier controleren of de backups genomen werden?
- Login op je backupserver (http://……)
- Selecteer een machine (server, werkstation…) in het linkermenu.
Dropdown menuutje - Controleer in de kolom ‘Backup Summary’ de laatste entry = het hoogste nummertje
- Check de datum hiernaast
Dit zou vrij recent moeten zijn.
Dit is wanneer een laatste backup werd genomen.