Changes

From Amahi Wiki
Jump to: navigation, search
2,424 bytes added ,  03:23, 23 June 2020
{{NeedsUpdate}}[http://rsnapshot.org/ '''''rnapshotrsnapshot'''''] is an excellent backup application and has been around for a long time and is extremely stable.
Why are backups important? Well, hardware failures, accidental file deletion(s), files become corrupted, etc.. Backups can help recover data where applications are being updated/upgraded. Enough reasons?
* Using a "terminal" session, login in using the "root" user ID.
* The "device name" of the drive needs to be determined.
<blockquote>Enter the following command:
{{Code|dmesg}}
</blockquote>
<blockquote>Enter the following command: dmesg The following information is displayed:{{Text|Text=<pre>[11122.304178] usb 2-4: new high-speed USB device number 5 using ehci_hcd
[11122.422152] usb 2-4: New USB device found, idVendor=0bc2, idProduct=3320
[11122.422165] usb 2-4: New USB device strings: Mfr=2, Product=3, SerialNumber=1
.
.
[11123.516813] sdb: sdb1}}</blockquotepre>
* The "device name" is "sdb1".
* The USB drive needs to be "unmounted".
<blockquote>{{Code| umount /dev/sdb1}}</blockquote>
* Format drive for ext3 filesystem and set drive label name as "usbdisk".
<blockquote>{{Code| mkfs -t ext3 -v -L usbdisk /dev/sdb1}}</blockquote>
:'''Please Note: THIS WILL ERASE ALL DATA ON /dev/sdb1, MAKE SURE THIS IS THE CORRECT USB DRIVE AND NOT ANOTHER DRIVE.'''
<blockquote>The following information is displayed:{{Text|Text=<pre>mke2fs 1.42.5 (29-Jul-2012)
fs_types for mke2fs.conf resolution: 'ext3'
Filesystem label=usbdisk
.
.
Writing superblocks and filesystem accounting information: done}}</blockquotepre>
* Whenever a drive is formatted in Linux, about 5% is reserved of the total space on the drive for the operating system to continue using the hard drive to operate, even if it gets full. This is totally unnecessary for a USB external hard drive if it stores only data and not to run an operating system.
<blockquote> Enter the following to remove the reserved space:{{Code| tune2fs -m 0 /dev/sdb1}}</blockquote><blockquote>The following information is displayed:{{Text|Text= tune2fs 1.42.5 (29-Jul-2012) Setting reserved blocks percentage to 0% (0 blocks)}}
* The external drive is now ready for use.
* In the previous section the device name found found via the "dmesg" command. The device name found was "sdb1".
* We set the set the external drive's "label". It was set to "usbdisk".
<blockquote> To find the label at anytime via the "root" user ID enter:{{Code| e2label /dev/sdb1}}</blockquote><blockquote>The following information is displayed:{{Text|Text= usbdisk}}</blockquote>
Both methods of mounting will be controlled by the server's "fstab" configuration file. The fstab (a.k.a. file systems table) file is a system configuration file containing lists of available disks and disk partitions, and indicates how they are to be initialized or otherwise integrated into a system's file system. When the "mount" command is used, the fstab file is read to determine which options should be used when mounting a specified device.
* Navigate to the "etc" directory with the "cd" command and make a backup of the current fstab file.
<blockquote>{{Code| cd /etc cp /fstab /fstab_bak}}</blockquote>
* Using a preferred file editor (i.e. vi, nano), open the fstab file.
<blockquote>{{Code|nano fstab}}</blockquote>
* Near the bottom of the and after the other fstab entries, add the following:
<blockquote>{{Text|Text= LABEL=usbdisk /media/usbdisk ext3 defaults 0 0}}</blockquote>
* Now save the fstab file and exit the editor.
* Navigate to the /media directory and create a "usbdisk" directory. This is where the external drive will be mounted, this is called a "mount point".
<blockquote>{{Code| cd /media mkdir usbdrive}}</blockquote>usbdisk
* Make sure the external drive USB cable is connected to the server and is powered up.
* Navigate to the "etc" directory with the "cd" command and make a backup of the current fstab file.
<blockquote>{{Code| cd /etc cp /fstab /fstab_bak}}</blockquote>
* Using a preferred file editor (i.e. vi, nano), open the fstab file.
<blockquote>{{Code| nano fstab}}</blockquote>
* Near the bottom of the and after the other fstab entries, add the following:
<blockquote>{{Text|Text= LABEL=usbdisk /media/usbdrive ext3 rw,noauto,users,exec,noatime 0 0}}</blockquote>
* Now save the fstab file and exit the editor.
* Navigate to the /media directory and create a "usbdisk" directory. This is where the external drive will be mounted, this is called a "mount point".
<blockquote>{{Code| cd /media mkdir usbdrive}}</blockquote>
* Make sure the external drive USB cable is connected to the server and is powered up.
* Reboot the server.
* Start a "terminal" session login as the "root" user ID.
* To manually mount the external drive issue the following command:
<blockquote>{{Code| mount -L usbdrive}}</blockquote>usbdisk
* The system reads the fstab, when it finds a line entry with the label "usbdrive", it mounts the drive the mount point, "/media/usbdisk".
* Start a "terminal" session login as the "root" user ID.
* Issue the following command to unmount the external drive:
<blockquote>{{Code| umount /media/usbdrive}}</blockquote>
* Should an error occur indicating that the drive is busy and cannot be unmounted enter the command below. Then try the unmount command again.
<blockquote>{{Code| fuser -km /media}}</blockquote>
===Installing rsnapshot===
* Open a "terminal" session and login using the "root" user ID:
<blockquote>{{Code| yum install rsnapshot}}</blockquote>
* Now create the directory structures for storing the backups:
<blockquote>{{Code| mkdir -p /media/usbdisk/.private/.snapshots chmod 0700 /media/usbdisk/.private/ chmod 0755 /media/usbdisk/.private/.snapshots/}}</blockquote>
=== Configuring rsnapshot ===
:nano This section shows how to configure the rsnapshot.conf configuration file. * Open a "terminal" session and login to the "root" user ID. * Move to the "/etc" directory.  cd /etc * Make a backup copy of the rsnapshot configuration file. Why? So that there is a reference just in case.   cp rsnapshot.confrsnapshot.conf.bkup
make * Now using a favourite editor, open the following modifications to "rnapshot.conf" file.<br/>'''Please Note:''' Items in the configuration file are separated by "tab" characters and NOT multiple spaces. nano rsnapshot.conffor blank spaces use TABS!
:* Find the "SNAPSHOT ROOT DIRECTORY" section and change "snapshot_root /media/usbdisk/" to path where the backups will be stored.private/.snapshots/
:no_create_root 1snapshot_root /media/usbdisk/.private/.snapshots/}}
:interval hourly 6* Find the "no_create_root" section and remove the "#". This will allow rsnapshot to create the "snapshot root" directory.
:interval daily 7 no_create_root 1
:* Find the "BACKUP INTERVALS" section and change the line items. What does this all mean? The "#" character at the beginning of each line means the configuration line item will not be enabled. Remove the "#" character as required. For example, when enabled the "interval weekly 4daily" line will be active and 7 days of backups will be kept.
: interval hourly 6 interval daily 7 interval weekly 4 interval monthly 12
* Find the "GLOBAL OPTIONS" section. This section defines how much information will be saved in the rsnapshot "log" file. The options are: Verbose level, 1 through 5. 1 Quiet Print fatal errors only 2 Default Print errors and warnings only 3 Verbose Show equivalent shell commands being executed 4 Extra Verbose Show extra verbose information 5 Debug mode EverythingChange the following options as required: verbose 3 loglevel 3
:backup /var/hda/files/docs/ localhost/* Find the "logfile" line and change the line item. After rsnapshot has completed backups this is where the resulting "log" file is stored. Change this line as required.
:backup logfile /var/hda/files/pictures/ localhostlog/rsnapshot}}
:backup * Find the "BACKUP POINTS /varSCRIPTS" section. Add changes as seen below. This is the section that defines the "key directories" that will be backed up. Please note the "localhost/hda", this represents the server that it being backed up. "localhost/files/movies/ localhost" is a default name given to the current server. Change this name as required, say "amahiBox/"?
: backup /var/hda/files/docs/ localhost/ backup /var/hda/files/pictures/ localhost/ backup /var/hda/files/movies/ localhost/ backup /var/hda/files/music/ localhost/ backup /var/hda/files/other_shares_you_made localhost/
:backup /var/hda/files/other_shares_you_made localhost/* Save the "rsnapshot.conf" file.
Save === Test the Configuration Changes ===* Now the changes to the rsnapshot configuration filehave to be tested. rsnapshot has a feature to test changes to make sure things have been setup correctly.
:rsnapshot configtest* Enter the following on the command-line to initiate the test.
this should return: syntax OK rsnapshot configtest}}
===Email reporting===* When the test completes the following should be displayed:  Syntax OK * If an error occurs the rsnapshot configuration file will need to be checked.
for email reporting on your backups:===Automate Backups ===Backups can be automated by creating a "cron job" that can be executed by the system at predetermined intervals.
:cp /usr/share/doc/rsnapshot*/utils/rsnapreportUsing a "terminal" session and "root" user ID a "cron job" configuration can be created to perform automated backups.pl /rootCreate a "cronjobs" text file as follows: crontab -l > cronjobs
:chmod 744 rsnapreport* Using a favourite text editor open the cronjobs file.pl
===Automate backup with cronjob=== nano cronjobs
* Add to the cronjobs file for rsnapshot:crontab -l > cronjobs
:nano cronjobs
add to this file for running 0 */4 * * * /usr/bin/rsnapshot hourly 30 23 * * * /usr/bin/rsnapshot daily 00 23 * * 1 /usr/bin/rsnapshot and a weekly email report on 30 22 1 * * /usr/bin/rsnapshot:monthly
:0 */4 * Save the cronjobs file.* * /usr/bin/rsnapshot hourly 2>&1 | /Now update the "root/rsnapreport.pl > /root/rsnapreport" user IDs "crontab" with the following:
:30 23 * * * /usr/bin/rsnapshot daily crontab cronjobs}}
:00 23 * * 1 /usr/bin/Reboot the server and rsnapshot weeklywill be operational.
===Email reporting===* To email a report of backups:30 22 1 * * /usr/bin/rsnapshot monthly
:00 22 * * 6 cp /usr/binshare/doc/rsnapshot du >> */rootutils/rsnapreport | nail –r "somereturnadress@provider.com" -s"HDA backup report" -S smtp=smtp.yourprovider.com youremail@provider.com < pl /root/ chmod 744 rsnapreport.pl'''*''' above indicates an rsnapshot version number
Save * Add the filefollowing to crontab for a weekly email report on rsnapshot:
<pre style="white-space:crontab cronjobspre-wrap; word-break: keep-all;">0 */4 * * * /usr/bin/rsnapshot hourly 2>&1 | /root/rsnapreport.pl > /root/rsnapreport00 22 * * 6 /usr/bin/rsnapshot du >> /root/rsnapreport | nail –r "somereturnadress@provider.com" -s"HDA backup report" -S smtp=smtp.yourprovider.com youremail@provider.com < /root/rsnapreport</pre>
Rsnapshot should now be operational'''Please Note:''' The above information maybe out of date due to technology changes. Please feel to update as required.
===Make your backups available on clients (READ ONLY)===
Create a //hda/backup share in the HDA webinterface
: chkconfig nfs --level 2345 on
add a read only NFS export:
: nano /etc/exports
add
: /media/usbdisk/.private/.snapshots/ 127.0.0.1(ro,no_root_squash)
Save file
Unfortunately mounting an NFS share in fstab did not work on my machine after a reboot, so I chose an alternative configuration that mounts the share later in the booting process:
: nano /etc/rc.local
Add
: mount -r -t nfs localhost:/media/usbdisk/.private/.snapshots/ /var/hda/files/backup/
save file
[[Category: Apps]]
12,424

edits