Difference between revisions of "Network backup"

From FreekiWiki
Jump to navigation Jump to search
Line 1: Line 1:
 
'''You will need to be on a wired connection for this to work'''
 
'''You will need to be on a wired connection for this to work'''
  
 +
==How to  Backup (step by step)==
 +
On the old machine/drive run the following commands in the terminal
 +
All these commands will need to be run as root (via sudo)
 +
  cp /etc/passwd /etc/shadow /etc/group /home/
 +
  dpkg --get-selections > /home/dpkg.out
 +
  tar -czf /etc/ /home/etc.backup.tar.gz
 +
  rsync -avzh /home/ tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber] 2>rsync.log
  
==Backup and Restore User Data==
+
This should back up enough to create an effective clone of the old machine.
  
To backup a persons home folder(s) over the network using rsync (as root).
+
'''N.B. Use ISO (reverse) format for the date''' (e.g. 20121223 for Dec 23 2012) not American date format. ''Failing to do so may result in files being accidentally deleted''.''' Always rsync the entire home directory''' even if there is only one user otherwise files and users may not be restored correctly. Errors are logged in the file rsync.log.
  
rsync -avzh /home/ tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber] 2>rsync.out
 
  
  
'''N.B. Use ISO (reverse) format for the date''' (e.g. 20121223 for Dec 23 2012) not American date format. ''Failing to do so may result in files being accidentally deleted''.''' Always rsync the entire home directory''' even if there is only one user otherwise files and users may not be restored correctly.
+
==How to  Restore (step by step)==
 +
On the new machine/drive run the following commands in the terminal
 +
All these commands will need to be run as root (via sudo)
  
errors will be logged to file rsync.out
 
 
 
To copy it back again:
 
 
 
   sudo rsync -avzh  tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber]/ /home
 
   sudo rsync -avzh  tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber]/ /home
 +
  cp /home/passwd /home/shadow /home/group /etc/
 +
  dpkg --set-selections < /home/dpkg.out
 +
  apt-get -u dselect-upgrade
  
 +
==Reference Only==
  
N.B. The trailing slash on the source (first part) is  important in rsync. A trailing slash means copy the contents of this folder without creating the folder itself. If you are uncertain about anything you can test it using the <code>-n</code> option. This will do a dry run and nothing will actually be copied over. It is a good habit to do a sanity check first with rsync; it is an immensely powerful tool and you want to make sure it is going to do what you think it is.
+
'''The sections below are included for reference only, please consider the above procedure definitive.'''
  
Rysnc is a more efficient protocol to use than scp. It will ensure file permissions and ownerships are preserved and will compress data on the fly to make for a faster transfer. (it will also only copy the needed files so if you add files, then you can run the command again and rsync  will only copy the additional files. You can also remove files and use the --delete option and it will remove the files on the remote host).
+
=====Backup and Restore Users=====
 +
You can accomplish this by  copying over /etc/passwd /etc/shadow (the encrypted password file) and /etc/group form the old to new machine. It can be good practice to at least backup the whole /etc directory however this is more important with servers. You would also need to worry about things like /var/www in that case as well but its beyond the scope of what we do. The best practice is to keep the drive around for the users to check
  
If you don't want to copy hidden files add <code>--exclude=".*/"</code> as an option. Its a good idea to at least copy over users .mozilla files, and any .evolution  or .thunderbird folders as a minimum. It shouldn't cause too many problems copying over all hidden files.
+
====Backup and Restore Installed Packages====
 
 
==Backup and Restore Installed Packages==
 
  
 
You can also backup a list that has the users installed packages so you can reinstall them.
 
You can also backup a list that has the users installed packages so you can reinstall them.
Line 43: Line 49:
 
on the new box, to install the same set of packages as before. (You can actually do this over a network, from one box to another, using ssh but I will leave that as an exercise for the reader).
 
on the new box, to install the same set of packages as before. (You can actually do this over a network, from one box to another, using ssh but I will leave that as an exercise for the reader).
  
==Backup and Restore User's Desktop Background==
+
====Backup and Restore User Data====
 +
 
 +
To backup the home folder(s) over the network using rsync (as root).
 +
 
 +
rsync -avzh /home/ tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber] 2>rsync.out
 +
 
 +
 
 +
'''N.B. Use ISO (reverse) format for the date''' (e.g. 20121223 for Dec 23 2012) not American date format. ''Failing to do so may result in files being accidentally deleted''.''' Always rsync the entire home directory''' even if there is only one user otherwise files and users may not be restored correctly.
 +
 
 +
errors will be logged to file rsync.out
 +
 
 +
 
 +
To copy it back again:
 +
 +
  sudo rsync -avzh  tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber]/ /home
 +
 
 +
 
 +
N.B. The trailing slash on the source (first part) is  important in rsync. A trailing slash means copy the contents of this folder without creating the folder itself. If you are uncertain about anything you can test it using the <code>-n</code> option. This will do a dry run and nothing will actually be copied over. It is a good habit to do a sanity check first with rsync; it is an immensely powerful tool and you want to make sure it is going to do what you think it is.
 +
 
 +
Rysnc is a more efficient protocol to use than scp. It will ensure file permissions and ownerships are preserved and will compress data on the fly to make for a faster transfer. (it will also only copy the needed files so if you add files, then you can run the command again and rsync  will only copy the additional files. You can also remove files and use the --delete option and it will remove the files on the remote host).
 +
 
 +
If you don't want to copy hidden files add <code>--exclude=".*/"</code> as an option. Its a good idea to at least copy over users .mozilla files, and any .evolution  or .thunderbird folders as a minimum. It shouldn't cause too many problems copying over all hidden files.
 +
 
 +
 
 +
 
 +
====Backup and Restore User's Desktop Background====
  
 
You can also restore the user's desktop background (as long as you  have  the file  backed up as well. To check run the command without <code>>desktop.pict</code>).
 
You can also restore the user's desktop background (as long as you  have  the file  backed up as well. To check run the command without <code>>desktop.pict</code>).
Line 56: Line 87:
 
N.B. copying over a users home folder wholesale with all the hidden files and folders will do this anyway.
 
N.B. copying over a users home folder wholesale with all the hidden files and folders will do this anyway.
  
==Recreating User Accounts and Restoring Permissions==
+
====Recreating User Accounts and Restoring Permissions====
  
  

Revision as of 16:40, 15 April 2011

You will need to be on a wired connection for this to work

How to Backup (step by step)

On the old machine/drive run the following commands in the terminal All these commands will need to be run as root (via sudo)

 cp /etc/passwd /etc/shadow /etc/group /home/
 dpkg --get-selections > /home/dpkg.out
 tar -czf /etc/ /home/etc.backup.tar.gz
 rsync -avzh /home/ tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber] 2>rsync.log

This should back up enough to create an effective clone of the old machine.

N.B. Use ISO (reverse) format for the date (e.g. 20121223 for Dec 23 2012) not American date format. Failing to do so may result in files being accidentally deleted. Always rsync the entire home directory even if there is only one user otherwise files and users may not be restored correctly. Errors are logged in the file rsync.log.


How to Restore (step by step)

On the new machine/drive run the following commands in the terminal All these commands will need to be run as root (via sudo)

 sudo rsync -avzh  tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber]/ /home
 cp /home/passwd /home/shadow /home/group /etc/
 dpkg --set-selections < /home/dpkg.out
 apt-get -u dselect-upgrade

Reference Only

The sections below are included for reference only, please consider the above procedure definitive.

Backup and Restore Users

You can accomplish this by copying over /etc/passwd /etc/shadow (the encrypted password file) and /etc/group form the old to new machine. It can be good practice to at least backup the whole /etc directory however this is more important with servers. You would also need to worry about things like /var/www in that case as well but its beyond the scope of what we do. The best practice is to keep the drive around for the users to check

Backup and Restore Installed Packages

You can also backup a list that has the users installed packages so you can reinstall them.

 dpkg --get-selections > dpkg.out 

(don't forget to copy this file over)

Then when you have installed a new system/replace the box etc, you can do:

dpkg --set-selections < dpkg.out

then

apt-get -u dselect-upgrade

on the new box, to install the same set of packages as before. (You can actually do this over a network, from one box to another, using ssh but I will leave that as an exercise for the reader).

Backup and Restore User Data

To backup the home folder(s) over the network using rsync (as root).

rsync -avzh /home/ tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber] 2>rsync.out


N.B. Use ISO (reverse) format for the date (e.g. 20121223 for Dec 23 2012) not American date format. Failing to do so may result in files being accidentally deleted. Always rsync the entire home directory even if there is only one user otherwise files and users may not be restored correctly.

errors will be logged to file rsync.out


To copy it back again:

 sudo rsync -avzh  tsbackup@tsbackup:/var/tsbackup/[date-ticketnumber]/ /home


N.B. The trailing slash on the source (first part) is important in rsync. A trailing slash means copy the contents of this folder without creating the folder itself. If you are uncertain about anything you can test it using the -n option. This will do a dry run and nothing will actually be copied over. It is a good habit to do a sanity check first with rsync; it is an immensely powerful tool and you want to make sure it is going to do what you think it is.

Rysnc is a more efficient protocol to use than scp. It will ensure file permissions and ownerships are preserved and will compress data on the fly to make for a faster transfer. (it will also only copy the needed files so if you add files, then you can run the command again and rsync will only copy the additional files. You can also remove files and use the --delete option and it will remove the files on the remote host).

If you don't want to copy hidden files add --exclude=".*/" as an option. Its a good idea to at least copy over users .mozilla files, and any .evolution or .thunderbird folders as a minimum. It shouldn't cause too many problems copying over all hidden files.


Backup and Restore User's Desktop Background

You can also restore the user's desktop background (as long as you have the file backed up as well. To check run the command without >desktop.pict).

gconftool-2 --get /desktop/gnome/background/picture_filename >desktop.pict

copy over desktop.pict and on the new machine

gconftool-2 --type string --set  /desktop/gnome/background/picture_filename "$(cat desktop.pict)"


N.B. copying over a users home folder wholesale with all the hidden files and folders will do this anyway.

Recreating User Accounts and Restoring Permissions

If you have reinstalled and the user had accounts other then oem you will still need to recreate those user accounts:

adduser [username]

You might need to change the ownership to match that of the user if find the ownership and groups had change to a numeric value (check using ls -lh).

find /home/username/ -type f -exec chown -R username.username {} \;     

or just

chown -R username.username /home/username/

You might also need to apply proper permissions. This step should be unnecessary with rsync as it will preserve permissions.


find /home/username/ -type f -exec chmod 644 {} \;
find /home/username/ -type d -exec chmod 754 {} \;

or for move private users

find ./ -type f -exec chmod 640 {} \;
find ./ -type d -exec chmod 750 {} \;

When you are finished with a backup and sure that all the data is properly transfered remove it from tsbackup. Once you have ensured ('tested') that the machine works and the data is all there.

rm -r /var/tsbackup/[date-ticketnumber]