User:Ixo/Script/get-xo

From OLPC

Jump to: navigation, 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. :)

Contents


[edit] 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.

[edit] SETUP

[edit] 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.

[edit] 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),

[edit] 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.

[edit] 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.


[edit] 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.

Personal tools
  • Log in / create account
  • Login with OpenID
About OLPC
About the XO
Projects
OLPC wiki
Toolbox
In other languages