"Ubuntu One helps you store, sync and share"
Ubuntu One est très pratique lorsque l'on utilise plusieurs ordinateurs (Bureau Pro, Bureau Perso, Salon, Salle de bain :) ...) pour retrouver ses documents d'un ordinateur à l'autre.
Ubuntu One se charge de synchroniser nos documents sur tous nos ordinateurs.
MAIS, ubuntu One est gratuit seulement dans la limite de 2 GB, ensuite il faut payer un abonnement.
MAIS, le fait de déposer des documents perso, voir confidentiels, sur un serveur géré par une entreprise tierce en rebute peut être certains, dont moi.
MAIS, si vous souhaitez accéder à vos documents sur plusieurs ordinateurs de votre réseau domestique, Ubuntu One sera lent car limité par la bande passante de votre accès internet.
Bref, le service rendu par Ubuntu One m'intéresse mais je voudrais gérer mon propre serveur "One", d'où "myOne".
Je vous propose de mettre en oeuvre "myOne", un "Ubuntu One Like" mais rien que pour vous, ce sera certes un peu moins user friendly mais nous aurons la maitrise totale du dispositif. Dans la suite de ce tutoriel remplacez "fred" par votre nom d'utilisateur et "centralisateur" par l'ip ou le fqdn de votre serveur.
Comment ca marche :
Nous aurons besoin d'un serveur ssh (Debian ou Ubuntu par exemple), qui jouera le rôle de "centralisateur", toutes vos autres machines se réfèreront à ce centralisateur pour synchroniser leurs fichiers. Ce centralisateur peut être un serveur dédié chez un hébergeur ou un serveur chez vous visible sur le web via une redirection de port sur votre "xxxxBox".
Sur le centralisateur je créer un dossier "myOne" (n'importe quel nom convient) :
# mkdir /home/fred/myOne
Sur chacun de mes autres ordinateurs, je créer aussi un dossier "myOne" (pas forcément au même endroit, peu importe) :
# mkdir /home/fred/Bureau/myOne
Ce seront les deux dossiers qui seront synchronisés, je ne synchronise pas mon home entier : "/home/fred" car cela synchroniserait inutilement tout un tas de documents. Le fait de ne synchroniser qu'un sous dossier permet de choisir ce que l'on souhaite effectivement synchroniser, il suffira de copier dans myOne les documents que vous souhaitez retrouver sur vos autres machines.
La synchronisation sera toujours initiée du côté client, en effet le centralisateur est sencé toujours être allumé et joignable, ce n'est pas forcément le cas des ordinateurs clients.
Nous utiliserons l'excellent programme "unison" pour synchroniser nos dossiers.
Installation d'unison :
# sudo apt-get install unison
Utilisation d'unison, sur un ordinateur client :
# unison /home/fred/Bureau/myOne ssh://fred@centralisateur:port//home/fred/myOne
La première synchronisation sera plus longue car il faut qu'unison copie tous les documents déposés dans le dossier myOne de votre ordinateur sur votre centralisateur. Les synchronisations ultérieures iront beaucoup plus vite car seules les documents modifiés/ajoutés/supprimés seront synchronisés.
On pourrait se contenter de cela et synchroniser à la main nos dossiers quand on le jugerait nécessaire mais ce ne serait tout de même pas très pratique, et selon la loi de Murphy, on oublierait nécessairement de synchroniser lorsque cela aurait vraiment été utile.
Faisons donc en sorte que nos dossiers se synchronisent automatiquement.
Plusieurs "problèmes" à régler pour rendre l'automatisation possible :
- Ne plus avoir à taper de mot de passe SSH tout en conservant la sécurité d'accès :
Sur notre poste client :
On génère un couple de clef publique/privée sans passphrase :
# ssh-keygen
On copie la clef publique générée : id_rsa.pub, vers notre centralisateur
# scp .ssh/id_rsa.pub fred@centralisateur:/home/fred/.ssh/
On ajoute le contenu de id_rsa.pub dans l'authorized_keys du centralisateur pour qu'il puisse authentifier notre poste client :
# ssh fred@centralisateur "cat /home/fred/.ssh/id_rsa.pub >> /home/fred/.ssh/authorized_keys"
- Ne plus avoir à répondre aux questions et confirmations d'unison :
L'argument de commande "-batch" provoque le mutisme d'unison, il ne posera plus de question.
- Planifier l'exécution automatique périodique d'unison sans provoquer le chargements d'instances simultanées :
Lancer unison par cron risquerait de provoquer le chargement parallèle de plusieurs instances en cas de synchronisation longue, si on ne prenait pas de précaution particulière. Avec un petit script python nous allons vérifier qu'unison ne tourne plus avant de redemander une synchronisation.
#### Start Python Code ####
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from __future__ import with_statement
import time, subprocess
LogFilePath="/home/fred/myOne.log"
cmd_myOne = "/usr/bin/unison /home/fred/Bureau/myOne ssh://fred@centralisateur//home/fred/myOne -batch"
cmd_CheckIfRunning = "ps ax|grep /usr/bin/unison"
def TimeNow(): return time.strftime("%Y/%m/%d %H:%M:%S", time.localtime())
def AppendFile(TheFile,Content):
with open(TheFile,"a") as f:
f.write(Content)
CheckIfRunning = subprocess.Popen(cmd_CheckIfRunning, shell=True, stdout=subprocess.PIPE)
if cmd_myOne not in CheckIfRunning.communicate()[0]:
myOne = subprocess.Popen(cmd_myOne, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, errors = myOne.communicate()
if "Nothing to do: replicas have not changed since last sync." not in errors:
AppendFile(LogFilePath, "\n" + TimeNow() +' '+ str(myOne.returncode) +' '+ cmd_myOne + "\n" + str(output))
else:
AppendFile(LogFilePath, "\n" + TimeNow() + " Unison Process Already Running")
#### Stop Python Code ####
Enregistrez ce script sous /home/fred/scripts/myOne
Planifiez l'exécution automatique via cron toutes les 5 minutes :
# crontab -e
*/5 * * * * /usr/bin/python /home/fred/scripts/myOne
Et voilà , vous n'avez plus qu'à copier coller des documents dans le dossier myOne de vos ordinateurs, et vous les retrouverez sur tous les autres ordinateurs sur lesquels vous avez planifié la synchronisation.
Astuces :
Lancez la première synchronisation à la main pour voir les éventuels messages d'erreur.
Le fichier /home/fred/myOne.log (Variable LogFilePath) enregistre tous les transferts de fichiers.
Evitez de créer des conflits unison : Ne pas éditer en même temps deux fichiers portant le même nom sur deux clients, ils ne seront pas synchronisés en mode automatique (-batch).
Pour régler les conflits et choisir quelle version synchroniser, lancer unison à la main sans "-batch".
[ 2 Commentaires ] ( ( 6 vues ) ) | [ 0 Trackbacks ] | Lien permanent | Lien relatif
Testé et approuvé sous Jaunty
sudo apt-get install cups-pdf
sudo chmod +s /usr/lib/cups/backend/cups-pdf
cd
mkdir PDF
Et voilà , il n'y a plus qu'à virtuellement imprimer pour générer des PDF
[ Ajouter un commentaire ] | [ 0 Trackbacks ] | Lien permanent
Cher visiteur,
Vous qui atterrissez sur mon site via Google en cherchant vraisemblablement un renseignement technique d'ordre informatique, j'espère que vous l'avez trouvé, et si vous souhaitez me remercier chaleureusement d'avoir en quelque sorte participé à la résolution de votre problème, sachez que vous êtes peut être en mesure de le faire.
En effet, je suis à la recherche d'un nouvel emploi, idéalement, un poste d'administrateur réseau/système et/ou développeur web PHP et/ou scripting Python. Autour de Rennes, très bien rémunéré, avec tickets restaurant, voiture de fonction hybride, secrétaire, quatorzième mois et douze semaines de vacances. J'ai bien dit "idéalement".
Si vous avez connaissance d'un tel poste, ou à la limite d'un poste approchant vous pouvez, et je vous serai reconnaissant de, me contacter.
Pour plus de détails sur mes nombreuses compétences que la pudeur et le manque de temps m'interdisent de lister ici, vous pouvez consulter mon CV et/ou me contacter.
Cordialement
Fred
[ 1 Commentaire ] ( ( 14 vues ) ) | [ 0 Trackbacks ] | Lien permanent
Par pure sérendipité je suis tombé sur wolframalpha.com, ce moteur de recherche, cherche à comprendre le sens de votre question avant d'y répondre, il a par exemple répondu très précisément à mes questions :
what is the weight of one cubic meter of air
what is the weight of one cubic meter of helium
what is the weight of one cubic meter of hydrogen
how to convert watts in horse power
what is the distance between the earth and the moon
what is the answer to life, the universe and everything
et beaucoup moins précisément à d'autres questions plus complexes mais
ca promet, quand google aura racheté la technologie ca ira loin
[ Ajouter un commentaire ] ( ( 10 vues ) ) | [ 0 Trackbacks ] | Lien permanent
Pour monter un partage CIFS d'un serveur Windows/Samba sur un client debian/Ubuntu GNU/Linux on utilise la commande mount.cifs du paquet smbfs :
# sudo apt-get install smbfs
Pour pouvoir monter/démonter des partages CIFS sans être root on peut donner aux commandes correspondantes les droits de leur propriétaire :
# sudo chmod 4755 /sbin/mount.cifs
# sudo chmod 4755 /sbin/umount.cifs
On peut maintenant monter le partage truc du serveur machin avec l'identifiant bidule du domaine domaine ayant pour mot de passe chose sur le point de montage ici avec la commande :
# mount.cifs //machin/truc ./ici -o user=domaine/bidule,password=chose,uid=utilisateurlocal,gid=utilisateurlocal,iocharset=utf8,nobrl
et démonter ce partage avec :
# umount.cifs ./ici
Si cela est trop demandé à un utilisateur lambda qu'il ne faut pas effrayer avec des commandes à rallonge, vous pouvez utiliser mon petit script python Connect2Share.py.
L'ojectif de ce programme est de proposer à l'utilisateur une interface graphique (GTK), permettant de saisir son identifiant et mot de passe afin de lui connecter son partage. (En partant du principe que le nom de son partage correspond à son identifiant)
Vous pouvez adapter le code et les paramètres de la commande mount.cifs à vos besoins car ...
c'est libre (et gratuit) ...
ps : Une doc vraiment très bien faite, et très instructive, sur les montages CIFS : http://www.swerdna.net.au/linhowtosambacifs.html , cela permet de bien comprendre les histoires de droits locaux/distants, pourquoi openoffice fonctionne différemment etc ...
[ Ajouter un commentaire ] ( ( 10 vues ) ) | [ 0 Trackbacks ] | Lien permanent

Calendrier



