User:Ixo/Script/get-xo

From OLPC
< User:Ixo‎ | Script(Redirected from User:Ixo/Script/get-ixo)
Jump to navigation Jump to search

(These are starting notes for a new wiki page on a possible solution for backing up a XO Laptop to a server. I needed to develop a solution for my own situation, so I might as well document and share it for others. :)


Intro

Summary

  • get-xo: Get a local copy/backup of your XO Laptop /home/olpc directory.


Description

  • From server (or any other computer), backup and copy files from XO Laptop.
  • Script can ran multiple times, will only copy over files which have changed.

Benefits

  • Creates a backup of /home/olpc in case of errors or mistaken deletions.
  • Allows examination of files on different machine, with better local tools and resources.
  • run between operations on the XO, to see files created or updated.
  • one of many methods to 'backup' a laptop 'important' (Really? which ones?) files onto a central server.

As of Jan 7th, 2008, the below is theory, since currently:

  • the default XO/ssh keys are 2048 bits long (instead of typical 1024, not sure if this is a problem)
  • Can't seem to get the 'enter password' prompt to go away during ssh.
  • Still investigating options for ssh and ssh-keygen.

SETUP

Step 1. SERVER

(i.e. who's going to grab a backup copy?)

  1. Create a new unique user for just preforming the backups (i.e. laptopbu )
  2. Logon as the new user
  3. create new 'ssh security' keys for your account. (See either method #1, or #2)
  4. Copy your 'SERVER ssh public key'.
  5. Put file onto Laptop.

Step 2. XO Laptop

(i.e. what device to backup.)

  1. Using Terminal or root shell' logon as olpc.
  2. Create new file ~olpc/.ssh/authorized_keys
  3. Copy into above file, your copy of 'SERVER ssh public key' (see above),

Step 3. SERVER

(i.e. who's going to grab a backup copy?)

#!/usr/bin/bash
#### FILE: get-ixo ########
# 2008 01 12, Iain D, ixo AT myna DOT ws
## RELEASED under CC-GNU GPL 3.0 license.

$ rsync --verbose --progress --times --perms --recursive --compress --links \ 
    --backup --rsh="ssh" olpc@192.168.0.12:/home /home/OLPC-BACKUP/USERNAME


NOTES:

  • Command is one single line.
  • Must setup password for olpc account, via 'root' command of $ sudo passwd olpc .
  • 192.168.0.12 is the IP address of the OLPC XO Laptop.
  • /home/OLPC-BACKUP is local directory on server for the backup

Where 192.168.0.12 is the IP address of the laptop you are backing up.

Outstanding Questions

  • Is there an easy way of moving the ssh public key from SERVER to LAPTOP ?
    • USB Drive ?
    • Download via Webpage ?
  • Best method for figuring out unique IP address for the LAPTOP needing to be backed up?
    • Via Webpage, log to specific file for rsync to use ?
    • Type manually ?
  • Best method for uniquely identifying the LAPTOP needing to be backed up ? (use Serial Number ?)
    • Is it possible for IP address to change between connection attempts?
  • Archive how many copies of files? only one copy? or multiple ? Limited ?
    • Rsync has some of these options built in.


Background details

1. Create SERVER ssh keys with either of the following methods

 $ ssh-keygen  (pass phase can be blank, generates id_rsa and id_rsa.pub )
   (need exact steps here.. )

2. Your 'SERVER' ssh public key ( ~/.ssh/id_rsa.pub ) looks something like this.

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAyf/ux1DcURj7dyeHMPFk/zafEnuCOqJVWCb1Sy12ksEkfzoWojL1mcjXNnkfZ+P10SOlQ5kjerH7
2JBu4DqPP3NUrcuFezhST9Ixa3NU1ts1w2VKHAcAcSAq8ayBmVGzrTxq7gayT5RSvo/nvI0TXJHSSF3Jh/7hSFAKED4YOURUSE wiki@laptop.0rg

3. Your 'SERVER' ssh private key ( ~/.ssh/id_rsa ) looks something like this.

-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQDJ/+7HUNxRGPt3J4cw8WT/Np8Se4I6olVYJvVLLXaSwSR/Ohai
qMvWZyNc2eR9n4/XRI6VDmSN6sfvYkG7gOo8/c3Oty4V7OFJP0jFrc1TW2zXDZUo
cBwBxICrxrIG+UbOtPGruBrJPlFK+j+e8jRNckdJIXcmH/uFJ1HYOMssQwIBIwKB
gEVBzjW1Utn579EU3eTlDK9F7WVsLKZjivmm9QPVErX5E9PZZtiu5s0qrQnkTlb0
4NwXgVetKcpB3iYwUQ0WQa3m919JKCriMwrcA7Zqu1bS5Q48Q9v9TgydHxyKAguD
xerfe/HBMwLNJ1WpeEFYwHNZi+Y3k2Mpvy8XuDB5yRUrAkEA5S1kceYwXMF3P1ZR
Y6B/3Hy1KH5vn4YIZi5cfbHQZ2B/cK2Ak4NXERQR5sKCn1Kc7yG+fY846iLU7W2G
avSlbQJBAOGkPwU9aHxgR6jnoD2Ka5fUDbVQzIMc/z63kWEk6b2Pt43FVLEX/1bf
1I/eXbqwYBNNgIHPYVFrEYoLGb/3+m8CQHxpGUUlMDJaZU5EzRjTeJxDsszW7CNm
BI89vS5KlbR2No2gA/hOnPqkfr8ZIlZ9TeDmbrkwfftx/o+EmW1C+rcCQQCuEP1q
cTNYogtlCnRMuz0OuYbq9TANX4MTH+UtrsLxUZw6KoMph4p2N6P59K60lrCD61SB
ZXb1ql38xrwXv0wpAkEA4qsLj1QhcLSZdHuuSyLwjovqVzPB+PKJs/c+JDO0Nr6b
DYjugZ9YtVNLd5JEQHSkYI+TLGrCCFAKED4YOURUSE==
-----END RSA PRIVATE KEY-----

4. Your 'LAPTOP' authorized_keys ( ~olpc/.ssh/authorized_keys ) looks something like this.

(Note: Final configuration, this file should be the same as ssh public key)
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAyf/ux1DcURj7dyeHMPFk/zafEnuCOqJVWCb1Sy12ksEkfzoWojL1mcjXNnkfZ+P10SOlQ5kjerH7
2JBu4DqPP3NUrcuFezhST9Ixa3NU1ts1w2VKHAcAcSAq8ayBmVGzrTxq7gayT5RSvo/nvI0TXJHSSF3Jh/7hSFAKED4YOURUSE wiki@laptop.0rg

5. See 'rsync --help' or 'man rsync' for full explanation of options.

6. See 'ssh --help' or 'man ssh' for full explanation of options.