Both sides previous revisionPrevious revisionNext revision | Previous revision |
linux:slug [2010/03/20 22:35] – alien | linux:slug [2010/04/24 19:20] (current) – More slashes at the end of directories removed. alien |
---|
</code> | </code> |
| |
This will automatically install the dependencies as well: | Please follow carefully the post-installation instructions shown on-screen after installing some of these packages (such as syslog-ng, nfs-utils) or they will not work properly. Sendmail will for instance state: <code bash> |
| sendmail will run as a daemon now. Alternatively, execute: |
| echo 'smtp stream tcp nowait root /opt/sbin/sendmail -bs' >> /etc/inetd.conf |
| echo '0-59/15 * * * * root /opt/sbin/sendmail -q & > /dev/null 2>&1' >> /etc/crontab |
| </code> |
| |
| Installing these base packages will automatically install their dependencies as well: |
* for openssh : openssl, zlib | * for openssh : openssl, zlib |
* for rsnapshot : coreutils, perl, rsync, openssh | * for rsnapshot : coreutils, perl, rsync, openssh |
# mkdir /mnt/thevault/.snapshots | # mkdir /mnt/thevault/.snapshots |
</code> Set the proper permissions on all directories: <code> | </code> Set the proper permissions on all directories: <code> |
# chmod 0700 /mnt/thevault/.private/ | # chmod 0700 /mnt/thevault/.private |
# chmod 0755 /mnt/thevault/.private/.snapshots/ | # chmod 0755 /mnt/thevault/.private/.snapshots |
# chmod 0755 /mnt/thevault/.snapshots/ | # chmod 0755 /mnt/thevault/.snapshots |
</code> In ''/etc/exports'', add the directory ''.private/.snapshots/'' as a read only NFS export: <code> | </code> In ''/opt/etc/exports'', add the directory ''.private/.snapshots'' as a read only NFS export: <code> |
/mnt/thevault/.private/.snapshots/ 127.0.0.1(ro,no_root_squash) | /mnt/thevault/.private/.snapshots 127.0.0.1(ro,no_root_squash) |
</code> In ''/etc/fstab'', mount ''.private/.snapshots/'' read-only under ''.snapshots/'' <code> | </code> In ''/etc/fstab'', mount ''.private/.snapshots'' read-only under ''.snapshots'' <code> |
localhost:/mnt/thevault/.private/.snapshots/ /mnt/thevault/.snapshots/ nfs ro 0 0 | localhost:/mnt/thevault/.private/.snapshots /mnt/thevault/.snapshots nfs ro 0 0 |
</code> Now restart the NFS daemon: <code> | </code> Now restart the NFS daemon: <code> |
/opt/etc/init.d/S56nfs-utils condrestart | /opt/etc/init.d/S56nfs-utils condrestart |
</code> Now mount the read-only snapshot root (happens automatically at boot): <code> | </code> Now mount the read-only snapshot root (happens automatically at boot): <code> |
# mount /mnt/thevault/.snapshots/</code> | # mount /mnt/thevault/.snapshots</code> |
| |
* In ''/opt/etc/mail/aliases'' add an email alias for user root so that you will receive emails generated from root's cronjobs. | * In ''/opt/etc/mail/aliases'' add an email alias for user root so that you will receive emails generated from root's cronjobs. |
</code> As you may notice, these crontab entries schedule the jobs with larger intervals to run a bit before the jobs that trigger more regularly.(//daily// runs 30 minutes before //hourly//; and //weekly// in turn runs 30 minutes before //daily//). This is to prevent for instance the //weekly// rsnapshot job to run before the //daily// job (the same goes for combinations of other intervals). If you would schedule them the other way round, a problem may arise in case the larger interval job would start (re)moving backup directories before the shorter interval job has finished it's work. | </code> As you may notice, these crontab entries schedule the jobs with larger intervals to run a bit before the jobs that trigger more regularly.(//daily// runs 30 minutes before //hourly//; and //weekly// in turn runs 30 minutes before //daily//). This is to prevent for instance the //weekly// rsnapshot job to run before the //daily// job (the same goes for combinations of other intervals). If you would schedule them the other way round, a problem may arise in case the larger interval job would start (re)moving backup directories before the shorter interval job has finished it's work. |
| |
<note>It seems that my changes to ''/etc/fstab'' are being overwritten at boot. However, there is an alternative to mounting through fstab: If the file ''/unslung/rc.local'' exists, it will be executed. So, I created that file (it did not exist) and added <code> | <note>It seems that my changes to ''/etc/fstab'' are being overwritten at boot. However, there is an alternative to mounting through fstab: If the file ''/unslung/rc.local'' exists, it will be executed. So, I copied ''/etc/rc.d/rc.local'' to that file (it did not exist): <code> |
| cp -a /etc/rc.d/rc.local /unslung/rc.local</code> removed the line <code> |
| if ( [ -r /unslung/rc.local ] && . /unslung/rc.local ) ; then return 0 ; fi |
| </code> and then added these lines at the bottom: <code> |
mount -t ext3 -o defaults,usrquota /dev/sdb1 /mnt/thevault | mount -t ext3 -o defaults,usrquota /dev/sdb1 /mnt/thevault |
mount -t nfs localhost:/mnt/thevault/.private/.snapshots /mnt/thevault/.snapshots | mount -t nfs localhost:/mnt/thevault/.private/.snapshots /mnt/thevault/.snapshots |
return 1 | </code></note> |
</code> The "return 1" will ensure that the rest of the commands in ''/etc/rc.d/rclocal'' will be executed after ''/unslung/rc.local'' finishes.</note> | |
| |
==== The rsnapshot log file ==== | ==== The rsnapshot log file ==== |