Näin olen hoitanut Debianin yksinkertaisen varmuuskopioinnin Internetin yli kerran kuussa läppäriltäni tiedostopalvelimelleni. Tapa ei ole paras mahdollinen, mutta riittävän yksinkertainen ja ajaa minulla asiansa. Ohje on kohtalaisen epäselvä, koska se on kirjoitettu lähinnä omaksi muistiinpanoksi, että muistan miten olen milläkin koneella asiat toteuttanut.
Aluksi luodaan backup käyttäjä, jolla on kirjoitusoikeus varmuuskopiohakemistoon (/var/backups/mirror/).
root@server# adduser --uid=999 --group backup --ingroup adm kopio
Tämän jälkeen muokataan kirjoitusoikeudet oikein.
root@server# chgrp -R backup /var/backups/mirror/ root@server# chgrp adm /var/log/ root@server# chmod o-rx /home/kopio
Järjestetään ensin clientille salasanaton kirjautuminen ssh:ta varten, ettei skripti kysele salasanaa.
root@client# ssh-keygen -t rsa root@client# ssh-copy-id -i ~/.ssh/id_rsa.pub kopio@server
Seuraavaksi tehdään itse backup skripti. Koko järjestelmää ei kannata kopioida, vaan kannattaa kopioida itselle tärkeät tiedostot, conffitiedostot ja lista asennetuista paketeista.
Uuden järjestelmän asennusvaiheessa pakettilistan voi importata paketinhallintaan ja asentaa komennolla:
# dpkg --set-selections < dpkg-selections.txt && apt-get dselect-upgrade/etc/cron.scripts/backup :
#!/bin/sh gzip -c /var/log/backup.log > /var/log/backup.log.gz date > /var/log/backup.log #rsync -az --delete --numeric-ids /mistä/ /mihin 2>> loki # Koko järjestelmän kopioiminen on turhaa työasemassa, joten tallennetaan vain # lista asennetuista paketeista ja conffitiedostot. dpkg --get-selections |ssh kopio@server "cat > /var/backups/mirror/olli/dpkg-selections.txt" rsync -az -x --delete --numeric-ids --exclude-from=/etc/rsync.exclude /etc/ kopio@server:/var/backups/mirror/clientdir/ 2>> /var/log/backup.log rsync -az -x --delete --numeric-ids --exclude-from=/etc/rsync.exclude /usr/local/ kopio@server:/var/backups/mirror/clientdir/ 2>> /var/log/backup.log rsync -az -x --delete --numeric-ids --exclude-from=/etc/rsync.exclude /root/ kopio@server:/var/backups/mirror/clientdir/ 2>> /var/log/backup.log rsync -az -x --delete --numeric-ids --max-size=1M --exclude '*.mp3' --exclude-from=/etc/rsync.exclude /home kopio@server:/var/backups/mirror/clientdir/ 2>> /var/log/backup.log #käyttäjien tiedostot rsync -azx --delete --numeric-ids --max-size=150M --exclude-from=/etc/rsync.exclude /home kopio@server:/var/backups/mirror/clientdir/ 2>> /var/log/backup.log echo 'backup done by /etc/cron.scripts/backup' >> /var/log/backup.log date >> /var/log/backup.log exit 0
/etc/rsync.exclude :
/var/backups/mirror /var/log/backup.log /dev /sys /proc /tmp /share* /pchome /work
Lopuksi ajastetaan skripti toimiman esim kuukauden välein lisäämällä /etc/crontab:iin seuraava rivi:
0 2 2 * * root nice -n 5 /etc/cron.scripts/backup