Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/09/2014, à 13:19

xunil2003

Logiciel pour mettre à jour son dossier /home/user ça existe ?

Bonjour,

J'ai plusieurs pc, pc bureau, pc personnel domicile, pc portable, etc....
J'ai besoin de mettre à jour mon dossier /home sur chacun de mes postes quand j'en utilise un.
Pour cela j'utilise une clé usb.

Le but est de copier dans un répertoire de la clé les fichiers puis de les recopier dans le /home/user du pc.
Je voudrais savoir s'il existe un logiciel qui fait cela.
Qui permet par la suite de copier uniquement les fichiers modifiés.

Y a t'il une solution ?

Merci.


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#2 Le 29/09/2014, à 13:25

jplemoine

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Je ne suis pas sûr que ça puisse se faire car dans ton /home, il y a des fichiers "systèmes" cachés.
Je pense qu'il faut que tu mettes les fichiers communs dans un répertoire et que tu synchronises ce répertoire avec la clé (ou un répertoire de la clé).
rsync peut peut-être faire cette solution.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#3 Le 29/09/2014, à 13:30

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Salut,

Partager ton "home" complet entre plusieurs ordinateur est une mauvaise idée en raison des fichiers cachés (configuration, caches, etc). Par contre, tu peux synchoniser tes documents sur plusieurs ordinateurs sans problème, oui.


Pour cela, je peux te proposer le logiciel Unison : c'est un logiciel de synchronisation bidirectionnel qui détecte les conflits (fichiers modifiés à deux endroits en même temps) et qui te demande quoi faire. Et s'il n'y a pas de conflit, il transfère la version la plus récente en écrasant la moins récente, quel que soit le "côté" où le fichier a été modifié.
Du coup tu lances une synchro en arrivant sur le PC puis en repartant du PC. Et si jamais tu as oublié une synchro à un moment, ce n'est pas très grave car il saura rétablir la situation la fois d'après.


Sinon, en automatisé, tu peux utiliser un service "cloud" comme Dropbox (bien connu) ou Seafile (installable sur un serveur à toi).

Hors ligne

#4 Le 29/09/2014, à 18:38

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Bonsoir,

J'ai essayé avec Unison mais il m"affiche un probléme de permission avec la clé usb :

Lua
Failed to set permissions of file /media/laurent/CORSAIR/Partage/.unison.Lua.bfc7941252d44f5a8fd2817810b87620.unison.tmp to rwxrwxr-x: the permissions was set to rwxr-xr-x instead. The filesystem probably does not support all permission bits. If this is a FAT filesystem, you should set the "fat" option to true. Otherwise, you should probably set the "perms" option to 0o1757 (or to 0 if you don't need to synchronize permissions).

Fichier /home/laurent/.unison/unison.log

UNISON 2.40.102 started propagating changes at 18:47:39.76 on 29 Sep 2014
[BGN] Copying Lua from /home/laurent to /media/laurent/CORSAIR/Partage
Failed: Failed to set permissions of file /media/laurent/CORSAIR/Partage/.unison.Lua.bfc7941252d44f5a8fd2817810b87620.unison.tmp to rwxrwxr-x: the permissions was set to rwxr-xr-x instead. The filesystem probably does not support all permission bits. If this is a FAT filesystem, you should set the "fat" option to true. Otherwise, you should probably set the "perms" option to 0o1757 (or to 0 if you don't need to synchronize permissions).
[BGN] Copying bash from /home/laurent to /media/laurent/CORSAIR/Partage
Failed: Failed to set permissions of file /media/laurent/CORSAIR/Partage/.unison.bash.bfc7941252d44f5a8fd2817810b87620.unison.tmp to rwxrwxr-x: the permissions was set to rwxr-xr-x instead. The filesystem probably does not support all permission bits. If this is a FAT filesystem, you should set the "fat" option to true. Otherwise, you should probably set the "perms" option to 0o1757 (or to 0 if you don't need to synchronize permissions).
[BGN] Copying c++ from /home/laurent to /media/laurent/CORSAIR/Partage
Failed: Failed to set permissions of file /media/laurent/CORSAIR/Partage/.unison.c++.bfc7941252d44f5a8fd2817810b87620.unison.tmp to rwxrwxr-x: the permissions was set to rwxr-xr-x instead. The filesystem probably does not support all permission bits. If this is a FAT filesystem, you should set the "fat" option to true. Otherwise, you should probably set the "perms" option to 0o1757 (or to 0 if you don't need to synchronize permissions).
[BGN] Copying python from /home/laurent to /media/laurent/CORSAIR/Partage
Failed: Failed to set permissions of file /media/laurent/CORSAIR/Partage/.unison.python.bfc7941252d44f5a8fd2817810b87620.unison.tmp to rwxrwxr-x: the permissions was set to rwxr-xr-x instead. The filesystem probably does not support all permission bits. If this is a FAT filesystem, you should set the "fat" option to true. Otherwise, you should probably set the "perms" option to 0o1757 (or to 0 if you don't need to synchronize permissions).
UNISON 2.40.102 finished propagating changes at 18:47:39.78 on 29 Sep 201

J'ai aussi regardé la documentation d'ubuntu sur Unison :
http://doc.ubuntu-fr.org/unison

Comment puis-je faire ?

Merci.

Dernière modification par xunil2003 (Le 29/09/2014, à 18:57)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#5 Le 29/09/2014, à 19:06

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

RE,

Au pardon je n'avais pas vu
Il faut rajouter dans le fichier /home/laurent/.unison/default.pff

#zap les permissions
perms = 0

Merci.


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#6 Le 29/09/2014, à 20:10

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

If this is a FAT filesystem, you should set the "fat" option to true.

À la limite, tu peux directement mettre "fat = true" (ou "fat = 1" ou "fat = yes", je crois que les trois fonctionnent)...

Ça inclut "perms" et aussi d'autres trucs...

Dernière modification par tiramiseb (Le 29/09/2014, à 20:10)

Hors ligne

#7 Le 30/09/2014, à 10:21

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Bonjour,

Mais il n'est pas fiable comme logiciel.

Dans le dossier python, j'ai 202 fichiers sur mon disque  :

laurent@PC-Bureau-laurent:~$ ls -l /home/laurent/python | wc -l
202
laurent@PC-Bureau-laurent:~$

Une fois que j'ai dit a unison de faire la synchronisation des fichiers sur la clé usb, j'ai 200 fichiers :

laurent@PC-Bureau-laurent:~$ ls -l /media/laurent/CORSAIR/Partage/python | wc -l
200
laurent@PC-Bureau-laurent:~$ 

Il y a un problème ?
J'ai le même problème avec d'autre dossiers ?
Esce que cela vient du fichier de configuration de unison ?

Fichier de configuration de unison : default.pfr

# Unison preferences

#j'indique uniquement le répertoire parent
root=/home/laurent/

#le chemin du périphérique (à condition que ce soit toujours le même)
root=/media/laurent/CORSAIR/Partage/

#Puis les sous-répertoires
path=bash
path=c
path=c++
path=Configuration
path=Documents/Mes documents
path=Lua
path=python

#zap les permissions
perms = 0

#synchro des dates
times=true
#force=newer

# Options du journal
log = true
logfile = /home/laurent/.unison/unison.log

Merci.

Dernière modification par xunil2003 (Le 30/09/2014, à 10:22)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#8 Le 30/09/2014, à 10:27

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Mais il n'est pas fiable comme logiciel.

Il est parfaitement fiable, je l'utilise et ai utilisé dans différents contextes, personnels et professionnels.


Il faut voir pourquoi dans ton cas il y a cette différence de 2 fichiers...


Ta configuration me semble correcte.
Utilises-tu Unison en ligne de commande ou alors l'interface Unison-GTK ?
(cette dernière est plus facile à utiliser)
Unison ne t'a pas indiqué de conflit sur certains fichiers ?
C'est la toute première synchronisation ?

------

Que donne la commande suivante ?

diff /home/laurent/python /media/laurent/CORSAIR/Partage/python

Hors ligne

#9 Le 30/09/2014, à 10:28

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Petit commentaire en passant :

#force=newer

Évite d'activer ça : on ne sait jamais, si tu as modifié un fichier le lundi sur un PC et le mardi sur un autre PC et que la modif la plus importante est celle du lundi, tu la perdrais...

Hors ligne

#10 Le 30/09/2014, à 12:41

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Re,

J'utilise le mode graphique (unison-gtk).
Unison ne ma pas indiqué de conflit sur les fichiers.
Oui c'était bien ma première synchronisation ?

Voilà le résultat de diff /home/laurent/python /media/laurent/CORSAIR/Partage/python :

<     def E5_on(self):
---
>     def cu5_on(self):
1739c618
<     def E5_off(self):
---
>     def cu5_off(self):
1743c622
<     def E5_bright(self):
---
>     def cu5_bright(self):
1747c626
<     def E5_dim(self):
---
>     def cu5_dim(self):
1751c630
<     def E6_on(self):
---
>     def cu6_on(self):
1755c634
<     def E6_off(self):
---
>     def cu6_off(self):
1759c638
<     def E6_bright(self):
---
>     def cu6_bright(self):
1763c642
<     def E6_dim(self):
---
>     def cu6_dim(self):
1768c647
<     def E7_on(self):
---
>     def cu7_on(self):
1772c651
<     def E7_off(self):
---
>     def cu7_off(self):
1776c655
<     def E7_bright(self):
---
>     def cu7_bright(self):
1780c659
<     def E7_dim(self):
---
>     def cu7_dim(self):
1784c663
<     def E8_on(self):
---
>     def cu8_on(self):
1788c667
<     def E8_off(self):
---
>     def cu8_off(self):
1792c671
<     def E8_bright(self):
---
>     def cu8_bright(self):
1796c675
<     def E8_dim(self):
---
>     def cu8_dim(self):
1800c679
<     def E9_on(self):
---
>     def cu9_on(self):
1804c683
<     def E9_off(self):
---
>     def cu9_off(self):
1808c687
<     def E9_bright(self):
---
>     def cu9_bright(self):
1812c691
<     def E9_dim(self):
---
>     def cu9_dim(self):
1816c695
<     def E10_on(self):
---
>     def cu10_on(self):
1820c699
<     def E10_off(self):
---
>     def cu10_off(self):
1824c703
<     def E10_bright(self):
---
>     def cu10_bright(self):
1828c707
<     def E10_dim(self):
---
>     def cu10_dim(self):
1832c711
<     def E11_on(self):
---
>     def cu11_on(self):
1836c715
<     def E11_off(self):
---
>     def cu11_off(self):
1840c719
<     def E11_bright(self):
---
>     def cu11_bright(self):
1844c723
<     def E11_dim(self):
---
>     def cu11_dim(self):
1848c727
<     def E12_on(self):
---
>     def cu12_on(self):
1852c731
<     def E12_off(self):
---
>     def cu12_off(self):
1856c735
<     def E12_bright(self):
---
>     def cu12_bright(self):
1860c739
<     def E12_dim(self):
---
>     def cu12_dim(self):
1864c743
<     def E13_on(self):
---
>     def cu13_on(self):
1868c747
<     def E13_off(self):
---
>     def cu13_off(self):
1872c751
<     def E13_bright(self):
---
>     def cu13_bright(self):
1876c755
<     def E13_dim(self):
---
>     def cu13_dim(self):
1880c759
<     def E14_on(self):
---
>     def cu14_on(self):
1884c763
<     def E14_off(self):
---
>     def cu14_off(self):
1888c767
<     def E14_bright(self):
---
>     def cu14_bright(self):
1892c771
<     def E14_dim(self):
---
>     def cu14_dim(self):
1896c775
<     def E15_on(self):
---
>     def cu15_on(self):
1900c779
<     def E15_off(self):
---
>     def cu15_off(self):
1904c783
<     def E15_bright(self):
---
>     def cu15_bright(self):
1908c787
<     def E15_dim(self):
---
>     def cu15_dim(self):
1912c791
<     def E16_on(self):
---
>     def cu16_on(self):
1916c795
<     def E16_off(self):
---
>     def cu16_off(self):
1920c799
<     def E16_bright(self):
---
>     def cu16_bright(self):
1924c803
<     def E16_dim(self):
---
>     def cu16_dim(self):
diff /home/laurent/python/x10.py~ /media/laurent/CORSAIR/Partage/python/x10.py~
1,117c1,39
< #! /usr/bin/python
< #-*-coding: utf-8 -*-
< from PyQt4.QtGui import *
< from PyQt4.QtCore import *
< 
< import os,sys
< 
< def main(args):
<     a=QApplication(args)
<     fenetre = QWidget()
<     
<     tex1 = Label(filewin, text='\n Telecommande Freebox V5', fg='black')
<     tex1.pack()
<     
<     #bouton1 = QPushButton("R")
<     bouton2 = QPushButton("Y")
<     bouton3 = QPushButton(qApp.trUtf8("A"))
<     bouton4 = QPushButton(qApp.trUtf8("X"))
<     bouton5 = QPushButton(qApp.trUtf8("Select"))
<     bouton6 = QPushButton(qApp.trUtf8("On_Off"))
<     bouton7 = QPushButton(qApp.trUtf8("Liste"))
<     bouton8 = QPushButton(qApp.trUtf8("TV"))
<     bouton9 = QPushButton(qApp.trUtf8("1"))
<     bouton10 = QPushButton(qApp.trUtf8("2"))
<     bouton11 = QPushButton(qApp.trUtf8("3"))
<     bouton12 = QPushButton(qApp.trUtf8("Info/Guide"))
<     bouton13 = QPushButton(qApp.trUtf8("4"))
<     bouton14 = QPushButton(qApp.trUtf8("5"))
<     bouton15 = QPushButton(qApp.trUtf8("6"))
<     bouton16 = QPushButton(qApp.trUtf8("?/?"))
<     bouton17 = QPushButton(qApp.trUtf8("7"))
<     bouton18 = QPushButton(qApp.trUtf8("8"))
<     bouton19 = QPushButton(qApp.trUtf8("9"))
<     bouton20 = QPushButton(qApp.trUtf8("?/Options"))
<     bouton21 = QPushButton(qApp.trUtf8("<-"))
<     bouton22 = QPushButton(qApp.trUtf8("0"))
<     bouton23 = QPushButton(qApp.trUtf8("?"))
<     bouton24 = QPushButton(qApp.trUtf8("<-"))
<     bouton25 = QPushButton(qApp.trUtf8("+"))
<     bouton26 = QPushButton(qApp.trUtf8("fleche haut"))
<     bouton27 = QPushButton(qApp.trUtf8("+"))
<     bouton28 = QPushButton(qApp.trUtf8("fleche gauche"))
<     bouton29 = QPushButton(qApp.trUtf8("OK"))
<     bouton30 = QPushButton(qApp.trUtf8("fleche droite"))
<     bouton31 = QPushButton(qApp.trUtf8("-"))
<     bouton32 = QPushButton(qApp.trUtf8("fleche bas"))
<     bouton33 = QPushButton(qApp.trUtf8("-"))
<     bouton34 = QPushButton(qApp.trUtf8("Mute"))
<     bouton35 = QPushButton(qApp.trUtf8("Free"))
<     bouton36 = QPushButton(qApp.trUtf8("Rec"))
<     bouton37 = QPushButton(qApp.trUtf8("<<"))
<     bouton38 = QPushButton(qApp.trUtf8(">>"))
<     bouton39 = QPushButton(qApp.trUtf8("Play/Pause"))
<     bouton40 = QPushButton(qApp.trUtf8("Stop"))
<     bouton41 = QPushButton(qApp.trUtf8("|<<"))
<     bouton42 = QPushButton(qApp.trUtf8("|>>"))
<     bouton43 = QPushButton(qApp.trUtf8("Start"))
<     bouton44 = QPushButton(qApp.trUtf8("D haut"))
<     bouton45 = QPushButton(qApp.trUtf8("D gauche"))
<     bouton46 = QPushButton(qApp.trUtf8("D droite"))
<     bouton47 = QPushButton(qApp.trUtf8("D bas"))
< 
<     monLayout = QGridLayout()
<     monLayout.addWidget(text1,0,0)
<     monLayout.addWidget(bouton2,1,1)
<     monLayout.addWidget(bouton3,1,3)
<     monLayout.addWidget(bouton4,2,2)
<     monLayout.addWidget(bouton5,3,0)
<     monLayout.addWidget(bouton6,4,0)
<     monLayout.addWidget(bouton7,4,2)
<     monLayout.addWidget(bouton8,4,4)
<     monLayout.addWidget(bouton9,5,0)
<     monLayout.addWidget(bouton10,5,1)
<     monLayout.addWidget(bouton11,5,2)
<     monLayout.addWidget(bouton12,5,3)
<     monLayout.addWidget(bouton13,6,0)
<     monLayout.addWidget(bouton14,6,1)
<     monLayout.addWidget(bouton15,6,2)
<     monLayout.addWidget(bouton16,6,3)
<     monLayout.addWidget(bouton17,7,0)
<     monLayout.addWidget(bouton18,7,1)
<     monLayout.addWidget(bouton19,7,2)
<     monLayout.addWidget(bouton20,7,3)
<     monLayout.addWidget(bouton21,8,0)
<     monLayout.addWidget(bouton22,8,1)
<     monLayout.addWidget(bouton23,8,2)
<     monLayout.addWidget(bouton24,8,3)
<     monLayout.addWidget(bouton25,9,0)
<     monLayout.addWidget(bouton26,9,2)
<     monLayout.addWidget(bouton27,9,4)
<     monLayout.addWidget(bouton28,10,1)
<     monLayout.addWidget(bouton29,10,2)
<     monLayout.addWidget(bouton30,10,3)
<     monLayout.addWidget(bouton31,11,0)
<     monLayout.addWidget(bouton32,11,2)
<     monLayout.addWidget(bouton33,11,4)
<     monLayout.addWidget(bouton34,12,0)
<     monLayout.addWidget(bouton35,12,2)
<     monLayout.addWidget(bouton36,12,4)
<     monLayout.addWidget(bouton37,13,0)
<     monLayout.addWidget(bouton38,13,4)
<     monLayout.addWidget(bouton39,14,1)
<     monLayout.addWidget(bouton40,14,3)
<     monLayout.addWidget(bouton41,15,0)
<     monLayout.addWidget(bouton42,15,4)
<     monLayout.addWidget(bouton43,16,0)
<     monLayout.addWidget(bouton44,17,2)
<     monLayout.addWidget(bouton45,18,1)
<     monLayout.addWidget(bouton46,18,3)
<     monLayout.addWidget(bouton47,19,2)
<     
<     fenetre.setLayout(monLayout)
< 
< 
<     fenetre.show()
<     r=a.exec_()
<     return r
---
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
>  
> from os import system
> from Tkinter import *
> from tkMessageBox import *
>  
> #----------- CONFIGURATION ----------
>  
> # mieux vaut récupérer ceci à partir d'un fichier EXTERNE :
> mdp = "svr"
> login = "serveur"
> hote = "192.168.0.1"
>  
>  
> def not_done():
>  
>     #showerror('Not implemented', 'Not yet available')
>     showerror('Pas mis en œuvre', 'Pas encore disponible')
>  
> # end def
>  
>  
> class Application (Tk):
>  
>     def __init__(self):
>  
>         # superclass inits
>         Tk.__init__(self)
>  
>         # topmenu inits
>         self.init_menu()
>  
>         # widget inits
>         self.init_widget()
>  
>     # end def
>  
>  
119,120c41,744
< if __name__=="__main__":
<     main(sys.argv) 
---
>  
>  
>     # end def 
>  
>  
>     def init_widget (self):
>       #------------------------------ Ligne 0 ------------------------------
>         Label(self, text="Détail").grid(row=0,column=0)
>         Label(self, text="CMU").grid(row=0,column=1)
>         Label(self, text="On").grid(row=0,column=2)
>         Label(self, text="Off").grid(row=0,column=3)
>         Label(self, text="Bright").grid(row=0,column=4)
>         Label(self, text="Dim").grid(row=0,column=5)
>         #self.texte0_1 = Label(self, text = " Ligne 0 ") 
>         #self.texte0_1.grid(row = 0, column = 1, sticky = W)
>         
>         
>         #------------------------------ PANIC : Ligne 1 ------------------------------
>         self.texte1_1 = Label(self, text = " Touche panique ") 
>         self.texte1_1.grid(row = 1, column = 0, sticky = W)
> 
>         self.bt_panic = Button(self, text="On", command=self.panic_on)
>         self.bt_panic.grid(row=1,column=2)
>         
>         
>         #------------------------------ Ligne 2 ------------------------------
>         Label(self, text="").grid(row=2)
>         
>  
>         #------------------------------ Ligne 3 ------------------------------
>         self.texte3_1 = Label(self, text = " test1 ")
>         self.texte3_1.grid(row = 3, column = 0, sticky = W)
>  
>         self.texte3_2 = Label(self, text = " E1 ")
>         self.texte3_2.grid(row = 3, column = 1, sticky = W)
>  
>         #self.text2 = Text(self, width = 3, height = 1 )
>         #self.text2.grid( row = 1,column=2 )
>         #self.text2.insert( INSERT, "E1" )
>  
>         self.bt1_on = Button(self, text="Allumer", command=self.cu1_on)
>         self.bt1_on.grid(row=3,column=2)
>  
>         self.bt1_off = Button(self, text="Eteindre", command=self.cu1_off)
>         self.bt1_off.grid(row=3,column=3)
>  
>         self.bt1_bright = Button(self, text="Bright", command=self.cu1_bright)
>         self.bt1_bright.grid(row=3,column=4)
>  
>         self.bt1_dim = Button(self, text="Dim", command=self.cu1_dim)
>         self.bt1_dim.grid(row=3,column=5)
>  
>         #------------------------------ Ligne 4 ------------------------------
>  
>         self.texte4_1 = Label(self, text = " Test ")
>         self.texte4_1.grid(row = 4, column = 0, sticky = W)
>  
>         self.texte4_2 = Label(self, text = " E2 ")
>         self.texte4_2.grid(row = 4, column = 1, sticky = W)
>  
>         self.bt2_on = Button(self, text="Marche", command=self.cu2_on)
>         self.bt2_on.grid(row=4,column=2)
>  
>         self.bt2_off = Button(self, text="Arrêt", command=self.cu2_off)
>         self.bt2_off.grid(row=4,column=3)
>  
>         self.bt2_bright = Button(self, text="Bright", command=self.cu2_bright)
>         self.bt2_bright.grid(row=4,column=4)
>  
>         self.bt2_dim = Button(self, text="Dim", command=self.cu2_dim)
>         self.bt2_dim.grid(row=4,column=5)
>         
>         #------------------------------ Ligne 5 ------------------------------
> 
>         self.texte5_1 = Label(self, text = " Lumière ?? ") 
>         self.texte5_1.grid(row = 5, column = 0, sticky = W)
>         
>         self.texte5_2 = Label(self, text = " A3 ") 
>         self.texte5_2.grid(row = 5, column = 1, sticky = W)
>         
>         self.bt3_on = Button(self, text="On", command=self.cu3_on)
>         self.bt3_on.grid(row=5,column=2)
> 
>         self.bt3_off = Button(self, text="Off", command=self.cu3_off)
>         self.bt3_off.grid(row=5,column=3)
> 
>         self.bt3_bright = Button(self, text="Bright", command=self.cu3_bright)
>         self.bt3_bright.grid(row=5,column=4)
> 
>         self.bt3_dim = Button(self, text="Dim", command=self.cu3_dim)
>         self.bt3_dim.grid(row=5,column=5)        
>         
>         #------------------------------ Ligne 6 ------------------------------
>         
>         self.texte6_1 = Label(self, text = " ?????????????? ") 
>         self.texte6_1.grid(row = 6, column = 0, sticky = W)
>         
>         self.texte6_2 = Label(self, text = " A4 ") 
>         self.texte6_2.grid(row = 6, column = 1, sticky = W)
>         
>         self.bt4_on = Button(self, text="On", command=self.cu4_on)
>         self.bt4_on.grid(row=6,column=2)
> 
>         self.bt4_off = Button(self, text="Off", command=self.cu4_off)
>         self.bt4_off.grid(row=6,column=3)
> 
>         self.bt4_bright = Button(self, text="Bright", command=self.cu4_bright)
>         self.bt4_bright.grid(row=6,column=4)
> 
>         self.bt4_dim = Button(self, text="Dim", command=self.cu4_dim)
>         self.bt4_dim.grid(row=6,column=5)        
>         
>         #------------------------------ Ligne 7 ------------------------------
>         
>         self.texte7_1 = Label(self, text = " ?????????????? ") 
>         self.texte7_1.grid(row = 7, column = 0, sticky = W)
>         
>         self.texte7_2 = Label(self, text = " A5 ") 
>         self.texte7_2.grid(row = 7, column = 1, sticky = W)
>         
>         self.bt5_on = Button(self, text="On", command=self.cu5_on)
>         self.bt5_on.grid(row=7,column=2)
> 
>         self.bt5_off = Button(self, text="Off", command=self.cu5_off)
>         self.bt5_off.grid(row=7,column=3)
> 
>         self.bt5_bright = Button(self, text="Bright", command=self.cu5_bright)
>         self.bt5_bright.grid(row=7,column=4)
> 
>         self.bt5_dim = Button(self, text="Dim", command=self.cu5_dim)
>         self.bt5_dim.grid(row=7,column=5)         
>         
>         #------------------------------ Ligne 8 ------------------------------
>         
>         self.texte8_1 = Label(self, text = " ?????????????? ") 
>         self.texte8_1.grid(row = 8, column = 0, sticky = W)
>         
>         self.texte8_2 = Label(self, text = " A6 ") 
>         self.texte8_2.grid(row = 8, column = 1, sticky = W)
>         
>         self.bt6_on = Button(self, text="On", command=self.cu6_on)
>         self.bt6_on.grid(row=8,column=2)
> 
>         self.bt6_off = Button(self, text="Off", command=self.cu6_off)
>         self.bt6_off.grid(row=8,column=3)
> 
>         self.bt6_bright = Button(self, text="Bright", command=self.cu6_bright)
>         self.bt6_bright.grid(row=8,column=4)
> 
>         self.bt6_dim = Button(self, text="Dim", command=self.cu6_dim)
>         self.bt6_dim.grid(row=8,column=5)         
>         
>         #------------------------------ Ligne 9 ------------------------------
>         
>         self.texte9_1 = Label(self, text = " ?????????????? ") 
>         self.texte9_1.grid(row = 9, column = 0, sticky = W)
>         
>         self.texte9_2 = Label(self, text = " A7 ") 
>         self.texte9_2.grid(row = 9, column = 1, sticky = W)
>         
>         self.bt7_on = Button(self, text="On", command=self.cu7_on)
>         self.bt7_on.grid(row=9,column=2)
> 
>         self.bt7_off = Button(self, text="Off", command=self.cu7_off)
>         self.bt7_off.grid(row=9,column=3)
> 
>         self.bt7_bright = Button(self, text="Bright", command=self.cu7_bright)
>         self.bt7_bright.grid(row=9,column=4)
> 
>         self.bt7_dim = Button(self, text="Dim", command=self.cu7_dim)
>         self.bt7_dim.grid(row=9,column=5)
>         
>         #------------------------------ Ligne 10 ------------------------------
>         
>         self.texte10_1 = Label(self, text = " ?????????????? ") 
>         self.texte10_1.grid(row = 10, column = 0, sticky = W)
>         
>         self.texte10_2 = Label(self, text = " A8 ") 
>         self.texte10_2.grid(row = 10, column = 1, sticky = W)
>         
>         self.bt8_on = Button(self, text="On", command=self.cu8_on)
>         self.bt8_on.grid(row=10,column=2)
> 
>         self.bt8_off = Button(self, text="Off", command=self.cu8_off)
>         self.bt8_off.grid(row=10,column=3)
> 
>         self.bt8_bright = Button(self, text="Bright", command=self.cu8_bright)
>         self.bt8_bright.grid(row=10,column=4)
> 
>         self.bt8_dim = Button(self, text="Dim", command=self.cu8_dim)
>         self.bt8_dim.grid(row=10,column=5)        
>         
>         #------------------------------ Ligne 11 ------------------------------
>         
>         self.texte11_1 = Label(self, text = " ?????????????? ") 
>         self.texte11_1.grid(row = 11, column = 0, sticky = W)
>         
>         self.texte11_2 = Label(self, text = " A9 ") 
>         self.texte11_2.grid(row = 11, column = 1, sticky = W)
>         
>         self.bt9_on = Button(self, text="On", command=self.cu9_on)
>         self.bt9_on.grid(row=11,column=2)
> 
>         self.bt9_off = Button(self, text="Off", command=self.cu9_off)
>         self.bt9_off.grid(row=11,column=3)
> 
>         self.bt9_bright = Button(self, text="Bright", command=self.cu9_bright)
>         self.bt9_bright.grid(row=11,column=4)
> 
>         self.bt9_dim = Button(self, text="Dim", command=self.cu9_dim)
>         self.bt9_dim.grid(row=11,column=5)          
>         
>         #------------------------------ Ligne 12 ------------------------------
>         
>         self.texte12_1 = Label(self, text = " ?????????????? ") 
>         self.texte12_1.grid(row = 12, column = 0, sticky = W)
>         
>         self.texte12_2 = Label(self, text = " A10 ") 
>         self.texte12_2.grid(row = 12, column = 1, sticky = W)
>         
>         self.bt10_on = Button(self, text="On", command=self.cu10_on)
>         self.bt10_on.grid(row=12,column=2)
> 
>         self.bt10_off = Button(self, text="Off", command=self.cu10_off)
>         self.bt10_off.grid(row=12,column=3)
> 
>         self.bt10_bright = Button(self, text="Bright", command=self.cu10_bright)
>         self.bt10_bright.grid(row=12,column=4)
> 
>         self.bt10_dim = Button(self, text="Dim", command=self.cu10_dim)
>         self.bt10_dim.grid(row=12,column=5) 
>         
>         #------------------------------ Ligne 13 ------------------------------
>         
>         self.texte13_1 = Label(self, text = " ?????????????? ") 
>         self.texte13_1.grid(row = 13, column = 0, sticky = W)
>         
>         self.texte13_2 = Label(self, text = " A11 ") 
>         self.texte13_2.grid(row = 13, column = 1, sticky = W)
>         
>         self.bt11_on = Button(self, text="On", command=self.cu11_on)
>         self.bt11_on.grid(row=13,column=2)
> 
>         self.bt11_off = Button(self, text="Off", command=self.cu11_off)
>         self.bt11_off.grid(row=13,column=3)
> 
>         self.bt11_bright = Button(self, text="Bright", command=self.cu11_bright)
>         self.bt11_bright.grid(row=13,column=4)
> 
>         self.bt11_dim = Button(self, text="Dim", command=self.cu11_dim)
>         self.bt11_dim.grid(row=13,column=5)         
>         
>         #------------------------------ Ligne 14 ------------------------------
>         
>         self.texte14_1 = Label(self, text = " ?????????????? ") 
>         self.texte14_1.grid(row = 14, column = 0, sticky = W)
>         
>         self.texte14_2 = Label(self, text = " A12 ") 
>         self.texte14_2.grid(row = 14, column = 1, sticky = W)
>         
>         self.bt12_on = Button(self, text="On", command=self.cu12_on)
>         self.bt12_on.grid(row=14,column=2)
> 
>         self.bt12_off = Button(self, text="Off", command=self.cu12_off)
>         self.bt12_off.grid(row=14,column=3)
> 
>         self.bt12_bright = Button(self, text="Bright", command=self.cu12_bright)
>         self.bt12_bright.grid(row=14,column=4)
> 
>         self.bt12_dim = Button(self, text="Dim", command=self.cu12_dim)
>         self.bt12_dim.grid(row=14,column=5)        
>         
>         #------------------------------ Ligne 15 ------------------------------
>         
>         self.texte15_1 = Label(self, text = " ?????????????? ") 
>         self.texte15_1.grid(row = 15, column = 0, sticky = W)
>         
>         self.texte15_2 = Label(self, text = " A13 ") 
>         self.texte15_2.grid(row = 15, column = 1, sticky = W)
>         
>         self.bt13_on = Button(self, text="On", command=self.cu13_on)
>         self.bt13_on.grid(row=15,column=2)
> 
>         self.bt13_off = Button(self, text="Off", command=self.cu13_off)
>         self.bt13_off.grid(row=15,column=3)
> 
>         self.bt13_bright = Button(self, text="Bright", command=self.cu13_bright)
>         self.bt13_bright.grid(row=15,column=4)
> 
>         self.bt13_dim = Button(self, text="Dim", command=self.cu13_dim)
>         self.bt13_dim.grid(row=15,column=5) 
>         
>         #------------------------------ Ligne 16 ------------------------------
>         
>         self.texte16_1 = Label(self, text = " ?????????????? ") 
>         self.texte16_1.grid(row = 16, column = 0, sticky = W)
>         
>         self.texte16_2 = Label(self, text = " A14 ") 
>         self.texte16_2.grid(row = 16, column = 1, sticky = W)
>         
>         self.bt14_on = Button(self, text="On", command=self.cu14_on)
>         self.bt14_on.grid(row=16,column=2)
> 
>         self.bt14_off = Button(self, text="Off", command=self.cu14_off)
>         self.bt14_off.grid(row=16,column=3)
> 
>         self.bt14_bright = Button(self, text="Bright", command=self.cu14_bright)
>         self.bt14_bright.grid(row=16,column=4)
> 
>         self.bt14_dim = Button(self, text="Dim", command=self.cu14_dim)
>         self.bt14_dim.grid(row=16,column=5)         
>         
>         #------------------------------ Ligne 17 ------------------------------
>         
>         self.texte17_1 = Label(self, text = " ?????????????? ") 
>         self.texte17_1.grid(row = 17, column = 0, sticky = W)
>         
>         self.texte17_2 = Label(self, text = " A15 ") 
>         self.texte17_2.grid(row = 17, column = 1, sticky = W)
>         
>         self.bt15_on = Button(self, text="On", command=self.cu15_on)
>         self.bt15_on.grid(row=17,column=2)
> 
>         self.bt15_off = Button(self, text="Off", command=self.cu15_off)
>         self.bt15_off.grid(row=17,column=3)
> 
>         self.bt15_bright = Button(self, text="Bright", command=self.cu15_bright)
>         self.bt15_bright.grid(row=17,column=4)
> 
>         self.bt15_dim = Button(self, text="Dim", command=self.cu15_dim)
>         self.bt15_dim.grid(row=17,column=5)        
>         
>         #------------------------------ Ligne 18 ------------------------------
>         
>         self.texte18_1 = Label(self, text = " ?????????????? ") 
>         self.texte18_1.grid(row = 18, column = 0, sticky = W)
>         
>         self.texte18_2 = Label(self, text = " A16 ") 
>         self.texte18_2.grid(row = 18, column = 1, sticky = W)
>         
>         self.bt16_on = Button(self, text="On", command=self.cu16_on)
>         self.bt16_on.grid(row=18,column=2)
> 
>         self.bt16_off = Button(self, text="Off", command=self.cu16_off)
>         self.bt16_off.grid(row=18,column=3)
> 
>         self.bt16_bright = Button(self, text="Bright", command=self.cu16_bright)
>         self.bt16_bright.grid(row=18,column=4)
> 
>         self.bt16_dim = Button(self, text="Dim", command=self.cu16_dim)
>         self.bt16_dim.grid(row=18,column=5) 
>         
>         #------------------------------ Ligne 19 ------------------------------
>         
>         Label(self, text="").grid(row=19)
> 
>         #------------------------------ Ligne 20 ------------------------------
>         
>         self.texte20_1 = Label(self, text = " Toutes les Lumières ") 
>         self.texte20_1.grid(row = 20, column = 0, sticky = W)
>         
>         self.texte20_2 = Label(self, text = " E ") 
>         self.texte20_2.grid(row = 20, column = 1, sticky = W)
>         
>         #self.texte18_2 = Label(self, text = " ALL ") 
>         #self.texte18_2.grid(row = 18, column = 1, sticky = W)
>         
>         #self.bt0_on = Button(self, text="On", command=self.cu1_on)
>         #self.bt0_on.grid(row=0,column=1)
> 
>         #self.bt0_off = Button(self, text="Off", command=self.cu1_off)
>         #self.bt0_off.grid(row=17,column=2)
> 
>         self.bt18_all_on = Button(self, text="All On", command=self.all_on)
>         self.bt18_all_on.grid(row=20,column=3)
> 
>         self.bt18_all_off = Button(self, text="All Off", command=self.all_off)
>         self.bt18_all_off.grid(row=20,column=4)
>         
>         #------------------------------ Ligne 21 ------------------------------
>         
>         self.texte21_1 = Label(self, text = " Tout les appareils ") 
>         self.texte21_1.grid(row = 21, column = 0, sticky = W)
>         
>         self.texte21_2 = Label(self, text = " E ") 
>         self.texte21_2.grid(row = 21, column = 1, sticky = W)
>         
>         #self.texte19_2 = Label(self, text = " ALL ") 
>         #self.texte19_2.grid(row = 19, column = 1, sticky = W)
>         
>         #self.bt0_on = Button(self, text="On", command=self.cu1_on)
>         #self.bt0_on.grid(row=0,column=1)
> 
>         #self.bt0_off = Button(self, text="Off", command=self.cu1_off)
>         #self.bt0_off.grid(row=17,column=2)
> 
>         self.bt19_all_units_on = Button(self, text="All On", command=self.all_units_on)
>         self.bt19_all_units_on.grid(row=21,column=3)
> 
>         self.bt19_all_units_off = Button(self, text="All Off", command=self.all_units_off)
>         self.bt19_all_units_off.grid(row=21,column=4)        
> 
>  
>     # end def
>  
>     # Fonction quand un bouton est pressé
>     # Envoi un ordre x10 sur le serveur
>     def panic_on(self):
>         print "Touche panic"
>         system('echo "x10 panic" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>  
>     def cu1_on(self):
>         print "Code Unité 1 on"
>         system('echo "x10 e1 on" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>  
>     def cu1_off(self):
>         print "Code Unité 1 off"
>         system('echo "x10 e1 off" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>  
>     def cu1_bright(self):
>         print "Code Unité 1 bright"
>         system('echo "x10 e1 bright" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>         #"nc -c "echo pl $donne" localhost 1099
>  
>     def cu1_dim(self):
>         print "Code Unité 1 dim"
>         system('echo "x10 e1 dim" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>  
>     def cu2_on(self):
>         print "Code Unité 2 on"
>         system('echo "x10 e1 on" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>         #system("medit")
>  
>     def cu2_off(self):
>         print "Code Unité 2 off"
>         system('echo "x10 e1 off" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>  
>     def cu2_bright(self):
>         print "Code Unité 2 bright"
>         system('echo "x10 e1 bright" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>         #"nc -c "echo pl $donne" localhost 1099
>  
>     def cu2_dim(self):
>         print "bed 2 dim"
>         system('echo "x10 e1 dim" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>         
>     def cu2_dim(self):
>         print "bed 2 dim"
>         system('echo "x10 e2 dim" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')       
>         
>     def cu3_on(self):
>         print "Code Unité 3 on"
>         system('echo "x10 e3 on" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
>        
>     def cu3_off(self):
>         print "Code Unité 3 off"
>         system('echo "x10 e3 off" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
> 
>     def cu3_bright(self):
>         print "Code Unité 3 bright"
>         system('echo "x10 e3 bright" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')
> 
>     def cu3_dim(self):
>         print "Code Unité 3 dim"
>         system('echo "x10 e3 dim" | sshpass -p '+mdp+' ssh '+login+'@192.168.0.1')        
>                 
>     def cu4_on(self):
>         print "Code Unité 4 on"
>         system("echo 'x10 e4 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu4_off(self):
>         print "Code Unité 4 off"
>         system("echo 'x10 e4 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu4_bright(self):
>         print "Code Unité 4 bright"
>         system("echo 'x10 e4 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu4_dim(self):
>         print "Code Unité 4 dim"
>         system("echo 'x10 e4 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")          
>         
>     def cu5_on(self):
>         print "Code Unité 5 on"
>         system("echo 'x10 e5 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu5_off(self):
>         print "Code Unité 5 off"
>         system("echo 'x10 e5 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu5_bright(self):
>         print "Code Unité 5 bright"
>         system("echo 'x10 e5 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu5_dim(self):
>         print "Code Unité 5 dim"
>         system("echo 'x10 e5 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")         
>         
>     def cu6_on(self):
>         print "Code Unité 6 on"
>         system("echo 'x10 e6 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu6_off(self):
>         print "Code Unité 6 off"
>         system("echo 'x10 e6 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu6_bright(self):
>         print "Code Unité 6 bright"
>         system("echo 'x10 e6 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu6_dim(self):
>         print "Code Unité 6 dim"
>         system("echo 'x10 e6 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")          
>         
>         
>     def cu7_on(self):
>         print "Code Unité 7 on"
>         system("echo 'x10 e7 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu7_off(self):
>         print "Code Unité 7 off"
>         system("echo 'x10 e7 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu7_bright(self):
>         print "Code Unité 7 bright"
>         system("echo 'x10 e7 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu7_dim(self):
>         print "Code Unité 7 dim"
>         system("echo 'x10 e7 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")         
>         
>     def cu8_on(self):
>         print "Code Unité 8 on"
>         system("echo 'x10 e8 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu8_off(self):
>         print "Code Unité 8 off"
>         system("echo 'x10 e8 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu8_bright(self):
>         print "Code Unité 8 bright"
>         system("echo 'x10 e8 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu8_dim(self):
>         print "Code Unité 8 dim"
>         system("echo 'x10 e8 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")         
>         
>     def cu9_on(self):
>         print "Code Unité 9 on"
>         system("echo 'x10 e9 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu9_off(self):
>         print "Code Unité 9 off"
>         system("echo 'x10 e9 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu9_bright(self):
>         print "Code Unité 9 bright"
>         system("echo 'x10 e9 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu9_dim(self):
>         print "Code Unité 9 dim"
>         system("echo 'x10 e9 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1") 
>         
>     def cu10_on(self):
>         print "Code Unité 10 on"
>         system("echo 'x10 e10 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu10_off(self):
>         print "Code Unité 10 off"
>         system("echo 'x10 e10 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu10_bright(self):
>         print "Code Unité 10 bright"
>         system("echo 'x10 e10 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu10_dim(self):
>         print "Code Unité 10 dim"
>         system("echo 'x10 e10 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1") 
>         
>     def cu11_on(self):
>         print "Code Unité 11 on"
>         system("echo 'x10 e11 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu11_off(self):
>         print "Code Unité 11 off"
>         system("echo 'x10 e11 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu11_bright(self):
>         print "Code Unité 11 bright"
>         system("echo 'x10 e11 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu11_dim(self):
>         print "Code Unité 11 dim"
>         system("echo 'x10 e11 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")         
>         
>     def cu12_on(self):
>         print "Code Unité 12 on"
>         system("echo 'x10 e12 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu12_off(self):
>         print "Code Unité 12 off"
>         system("echo 'x10 e12 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu12_bright(self):
>         print "Code Unité 12 bright"
>         system("echo 'x10 e12 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu12_dim(self):
>         print "Code Unité 12 dim"
>         system("echo 'x10 e12 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1") 
>         
>     def cu13_on(self):
>         print "Code Unité 13 on"
>         system("echo 'x10 e13 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu13_off(self):
>         print "Code Unité 13 off"
>         system("echo 'x10 e13 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu13_bright(self):
>         print "Code Unité 13 bright"
>         system("echo 'x10 e13 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu13_dim(self):
>         print "Code Unité 13 dim"
>         system("echo 'x10 e13 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")         
>         
>     def cu14_on(self):
>         print "Code Unité 14 on"
>         system("echo 'x10 e14 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu14_off(self):
>         print "Code Unité 14 off"
>         system("echo 'x10 e14 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu14_bright(self):
>         print "Code Unité 14 bright"
>         system("echo 'x10 e14 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu14_dim(self):
>         print "Code Unité 14 dim"
>         system("echo 'x10 e14 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")         
>                 
>     def cu15_on(self):
>         print "Code Unité 15 on"
>         system("echo 'x10 e15 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu15_off(self):
>         print "Code Unité 15 off"
>         system("echo 'x10 e15 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu15_bright(self):
>         print "Code Unité 15 bright"
>         system("echo 'x10 e15 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu15_dim(self):
>         print "Code Unité 15 dim"
>         system("echo 'x10 e15 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")           
>         
>     def cu16_on(self):
>         print "Code Unité 16 on"
>         system("echo 'x10 e16 on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>        
>     def cu16_off(self):
>         print "Code Unité 16 off"
>         system("echo 'x10 e16 off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu16_bright(self):
>         print "Code Unité 16 bright"
>         system("echo 'x10 e16 bright' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
>     def cu16_dim(self):
>         print "Code Unité 16 dim"
>         system("echo 'x10 e16 dim' | sshpass -p 'svr' ssh serveur@192.168.0.1")           
>         
>     def all_on(self):
>         print "All on"
>         system("echo 'x10 e all_lights_on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
> 
>     def all_off(self):
>         print "All off"
>         system("echo 'x10 e all_lights_off' | sshpass -p 'svr' ssh serveur@192.168.0.1")  
>         #system("echo 'rf a14 off' | nc -q1 localhost 1099");
> 
>     def all_units_on(self):
>         print "all units on"
>         system("echo 'x10 all_units_on' | sshpass -p 'svr' ssh serveur@192.168.0.1")
> 
> 
>     def all_units_off(self):
>         print "all units off"
>         system("echo 'x10 all_units_off' | sshpass -p 'svr' ssh serveur@192.168.0.1")
>  
> # end class Application
>  
>  
>  
> if __name__ == "__main__":
>  
>     Application().mainloop()
>  
> # end if
\ Pas de fin de ligne à la fin du fichier
Seulement dans /home/laurent/python: X10.py
Seulement dans /home/laurent/python: X10.py~
laurent@PC-Bureau-laurent:~$

J'ai fait un essai :
Sur la clé usb,jj'ai créé le dossier Partage2.
Il n'y a uncun fichier ou dossier dans celui-ci.
Puis j'ai fait la synchronisation.
Ensuite j'ai vérifié, c'est pareil ????

laurent@PC-Bureau-laurent:~$ ls -l /home/laurent/python | wc -l ; ls -l /media/laurent/CORSAIR/Partage2/python | wc -l
202
200
laurent@PC-Bureau-laurent:~$ 

Les fichiers :

laurent@PC-Bureau-laurent:~$ diff -q /home/laurent/python /media/laurent/CORSAIR/Partage/python
Les sous-répertoires /home/laurent/python/Cours et /media/laurent/CORSAIR/Partage/python/Cours sont identiques
Les sous-répertoires /home/laurent/python/home et /media/laurent/CORSAIR/Partage/python/home sont identiques
Les sous-répertoires /home/laurent/python/(home).kcalorie et /media/laurent/CORSAIR/Partage/python/(home).kcalorie sont identiques
Les sous-répertoires /home/laurent/python/kbash et /media/laurent/CORSAIR/Partage/python/kbash sont identiques
Les fichiers /home/laurent/python/x10.py et /media/laurent/CORSAIR/Partage/python/x10.py sont différents
Les fichiers /home/laurent/python/x10.py~ et /media/laurent/CORSAIR/Partage/python/x10.py~ sont différents
Seulement dans /home/laurent/python: X10.py
Seulement dans /home/laurent/python: X10.py~
laurent@PC-Bureau-laurent:~$ 

Comme peut-il être différent je n'ai rien modifié ?

Je suis quand même pas dingue !

Capture de la 1er synchronisation dans /media/laurent/CORSAIR/Partage2/
1412073450.png

Et quand je ferme unison et le réouvre j'ai ceci :
1412074042.png
j'ai rien modifié depuis ?

Ce n'est pas normal tout ça
Avez-vous effectué un test comme moi ?

Ma version de unison est :
Version 2.40.102

Merci.

Dernière modification par xunil2003 (Le 30/09/2014, à 12:57)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#11 Le 30/09/2014, à 14:38

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Seulement dans /home/laurent/python: X10.py
Seulement dans /home/laurent/python: X10.py~

Donc le problème est lié à ces fichiers. Peut-être un problème de droit.

Que donne la commande suivante ?

ls -lh /home/laurent/python/X10*

Comme peut-il être différent je n'ai rien modifié ?

Euh déjà je vois des fichiers "x10..." et d'autres "X10...".
Alors, majuscule ou minuscule ?

Quel est le FS sur la clé USB ? C'est de la FAT ?
En #6 je t'ai conseillé de mettre "fat = true" au lieu de "perms = 0".
Ça induit par exemple "ignorecase = true" (car FAT ne différencie pas les majuscules des minuscules) ou encore "links = false" (car FAT ne supporte pas les liens symboliques, NTFS non plus d'ailleurs).
Le problème est peut-être lié à ça, auquel cas je t'ai déjà donné la solution à ton problème hier.


En fait, en relisant tous tes trucs, il me semble que ce qu'il se passe c'est la chose suivante :
- tu as des fichiers "x10.py", "x10.py~", "X10.py" et "X10.py~" dans ce répertoire
- le système de fichiers côté clé USB ne supporte pas la casse (donc a priori ce serait FAT), donc quand ça synchronise tu perds l'une des deux occurrences
- ensuite, pour transférer dans l'autre semble, il trouve des modifications dans l'un des deux car ce qu'il voit sur la clé USB c'est l'autre

Ma réponse est donc : n'utilise pas des noms de fichiers dont la seule différence est la casse des caractères.

Avez-vous effectué un test comme moi ?

Je n'ai pas accès à tes fichiers, je ne peux pas faire un test "comme toi".
J'ai de mon côté utilisé Unison dans plein de cas différents et encore aujourd'hui j'utilise Unison pour certains besoins.
Donc ce que je peux te dire c'est qu'il est parfaitement fiable (quand il est bien configuré, avec des systèmes de fichiers limités comme FAT ou NTFS).

Hors ligne

#12 Le 30/09/2014, à 16:11

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Re,

Voila le retour de la  commande :

laurent@PC-Bureau-laurent:~$ ls -lh /home/laurent/python/X10*
-rw-rw-r-- 1 laurent laurent 32K juin   8 09:04 /home/laurent/python/X10.py
-rw-rw-r-- 1 laurent laurent 28K juin   8 09:04 /home/laurent/python/X10.py~
laurent@PC-Bureau-laurent:~$
Tiramiseb a écrit :

Quel est le FS sur la clé USB ? C'est de la FAT ?

La clé usb est en FAT32.

laurent@PC-Bureau-laurent:~$ sudo fdisk -l /dev/sdd

Disk /dev/sdd: 31.0 GB, 31009800192 bytes
86 têtes, 22 secteurs/piste, 32011 cylindres, total 60566016 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0xea5ebf48

Périphérique Amorçage  Début         Fin      Blocs    Id. Système
/dev/sdd1            8064    60566015    30278976    c  W95 FAT32 (LBA)
laurent@PC-Bureau-laurent:~$ 

J'ai effectué un nouvel essai :
J'ai supprimé le dossier /media/laurent/CORSAIR/Partage/2 puis je l'ai recréé, il n'y a aucun dossier ou fichier à l'intérieur.
Ensuite j'ai remplacé  "perms = 0" par "fat = true". dans le fichier de configuration "/home/laurent/.unison/default.pfr"
Quand je démarre Unison, j'ai ceci qui s'affiche maintenant.
1412085533.png
Maintenant Il veut tout effacer, dans /home/laurent/ et lles flèches vertes son dans l'autre sense <--- ?

Question : ne serait-il  pas plus simple de mettre la clé usb au format Linux : Ext4 ?

Merci.

Dernière modification par xunil2003 (Le 30/09/2014, à 16:17)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#13 Le 30/09/2014, à 16:13

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Voila le retour de la  commande :

laurent@PC-Bureau-laurent:~$ ls -lh /home/laurent/python/X10*
-rw-rw-r-- 1 laurent laurent 32K juin   8 09:04 /home/laurent/python/X10.py
-rw-rw-r-- 1 laurent laurent 28K juin   8 09:04 /home/laurent/python/X10.py~

Ok, donc ce n'est pas un problème de droit...

Et la suivante ?

ls -lh /home/laurent/python/*10.py*

J'ai supprimé le dossier /media/laurent/CORSAIR/Partage/2 puis je l'ai recréé, il n'y  a aucun dossier ou fichier à l'intérieur.
[...]
Maintenant Il veut tout effacer

Ben oui : tu as tout effacé côté clé USB, il veut reproduire ton action et tout effacer côté PC. C'est cohérent, non ?

Si tu ne souhaites pas cette action, alors à toi de lui dire de faire aller les choses dans l'autre sens...

Dernière modification par tiramiseb (Le 30/09/2014, à 16:14)

Hors ligne

#14 Le 30/09/2014, à 16:23

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Re,

Voila la suite :

laurent@PC-Bureau-laurent:~$ ls -lh /home/laurent/python/*10.py*
-rw-rw-r-- 1 laurent laurent  78K juin   5 13:04 /home/laurent/python/x10.py
-rw-r--r-- 1 laurent laurent 4,4K juin   2 22:20 /home/laurent/python/x10.py~
-rw-rw-r-- 1 laurent laurent  32K juin   8 09:04 /home/laurent/python/X10.py
-rw-rw-r-- 1 laurent laurent  28K juin   8 09:04 /home/laurent/python/X10.py~
-rw-rw-r-- 1 laurent laurent 104K juin   9 23:55 /home/laurent/python/x10.pyc
laurent@PC-Bureau-laurent:~$ 

Donc vous voulez dire que la première fois il vaut mieux copier les fichiers dans un répertoire de la clé USB et après de synchroniser les fichiers avec Unison.

Merci.

Dernière modification par xunil2003 (Le 30/09/2014, à 16:27)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#15 Le 30/09/2014, à 16:27

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Donc vous voulez dire que la première fois il vaut mieux copier les fichiers manuellement dans un répertoire de la clé USB et après de synchroniser les fichiers avec Unison.

Non, pas du tout. La première synchronisation marche très bien.
Ce que je dis, c'est qu'il ne faut pas avoir des noms de fichiers dont la seule différence est la casse d'un caractère. Surtout lorsque l'un des répertoires est en FAT. Car la FAT ne respecte pas la casse des caractères. Un système de fichiers en FAT ne peut pas contenir un fichier "X10.py" en même temps qu'un fichier "'x10.py". C'est l'un ou l'autre.
Le "problème" de fichier manquant vient de là.
La solution est de renommer l'un de ces fichiers pour qu'il n'y ait plus ce conflit.


Comment es-tu parvenu à la conclusion qu' « il vaut mieux copier les fichiers manuellement » ?
(J'ai l'impression qu'il y a encore une incompréhension de ta part)

Hors ligne

#16 Le 30/09/2014, à 17:24

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Re,

Tiramiseb a écrit :

Comment es-tu parvenu à la conclusion qu' « il vaut mieux copier les fichiers manuellement » ?
(J'ai l'impression qu'il y a encore une incompréhension de ta part)

Ok dans ce cas ne serait-il pas plus simple de mettre la clé usb au format Linux : Ext4 ?

J'ai synchronser les fichiers dans l'autre sens
la fléche verte --->

Mais je ne comprends pas pourquoi j'ai une différence dans le nombre de fichiers

laurent@PC-Bureau-laurent:~$ ls -l /home/laurent/python | wc -l ; ls -l /media/laurent/CORSAIR/Partage2/python | wc -l
202
198
laurent@PC-Bureau-laurent:~$ 

Les fichiers suivants ne sont pas dans le répertoire Partage2 de la clé usb

x10.py
X10.py
x10.py~
X10.py~

Sinon diff dit que le reste est ok.

laurent@PC-Bureau-laurent:~$ diff -q /home/laurent/python /media/laurent/CORSAIR/Partage2/python
Les sous-répertoires /home/laurent/python/Cours et /media/laurent/CORSAIR/Partage2/python/Cours sont identiques
Les sous-répertoires /home/laurent/python/home et /media/laurent/CORSAIR/Partage2/python/home sont identiques
Les sous-répertoires /home/laurent/python/(home).kcalorie et /media/laurent/CORSAIR/Partage2/python/(home).kcalorie sont identiques
Les sous-répertoires /home/laurent/python/kbash et /media/laurent/CORSAIR/Partage2/python/kbash sont identiques
Seulement dans /home/laurent/python: x10.py
Seulement dans /home/laurent/python: x10.py~
Seulement dans /home/laurent/python: X10.py
Seulement dans /home/laurent/python: X10.py~
laurent@PC-Bureau-laurent:~$ 

Si FAT32 ne sait pas reconnaitre une majuscule a une minuscule, ça craint ?
J'ai plein de fichier comme cela car linux c'est faire la différence mais pas sur la clé usb en FAT32 ?

Merci.

Dernière modification par xunil2003 (Le 30/09/2014, à 17:31)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#17 Le 30/09/2014, à 17:27

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Ok dans ce cas ne serait-il pas plus simple de mettre la clé usb au format Linux : Ext4 ?

Oui, carrément, si tous les PC concernés sont sous Linux.

Maisje ne comprend pas pourquoi j'ai une difference dans le nombre de fichiers

Je te l'ai dit : tu as des fichiers nommés de la même manière avec juste la majuscule qui change. "X10.py" et "x10.py" dans le même répertoire, c'est accepté en ext4 mais pas en FAT : dans ce cas, seul un des deux fichiers subsiste.

Pourquoi maintenant les deux exemplaires ne sont pls sur la FAT, je ne sais pas. Pour tes premières tentatives, il y en avait bien au moins un des deux.

-----

Si c'est uniquement pour des machines sous Linux, mets la clé en ext4, c'est encore la meilleure solution.

Et dans le répertoire .unison, supprime les fichiers portant des noms bizarres plein de chiffres et de lettres : ce sont ces fichiers qui contiennent la mémorisation de l'état précédent de la synchronisation ; après suppression de ces fichiers, il fera une nouvelle synchro comme si c'était la première fois.

Hors ligne

#18 Le 30/09/2014, à 22:54

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Re,

Oui tous mes postes sont sur Linux, j'ai quitté le monde microsoft depuis 2004.
Je ne peut pas formater ma clé usb au format Ext4 de Linux pour l'instant. (Trop de fichiers volumineux sur la clé)

Dans le fichier de configuration : ~/.unison/default.prf
J'ai remplacé "perms = 0" par "fat = true"

Puiis j'ai renommé les fichiers :
X10.py en x10-2.py
X10.py~ en x10-2.py~

Ensuite j'ai effacé les fichiers portant des noms bizarres plein de chiffres et de lettres dans le dossier ~/.unison/.
Puis j'ai fait la synchronisation, tout c'est bien passé.
Je l'ai fermé et redémarrer il ne m'a rien signalé, Go est grisé.
Tout est ok.

Vérification :

laurent@PC-Bureau-laurent:~$ echo $(ls -l /home/laurent/python | wc -l) Fichiers dans /home/laurent/python ; echo $(ls -l /media/laurent/CORSAIR/Partage2/python | wc -l) Fichiers dans /media/laurent/CORSAIR/Partage2/python
202 Fichiers dans /home/laurent/python
202 Fichiers dans /media/laurent/CORSAIR/Partage2/python
laurent@PC-Bureau-laurent:~$ 

J'ai besoin dautres renseignements :
J'envisagé d'acheter un disque dur externe ethernet wifi.
Voir ici : http://www.medion.com/fr/shop/disques-d … 220a1.html
Je met en marche/arrêt le disque dur à distance via la domotique et l'utilise avec unison en wifi / ethernet afin que mes données soit toujours synchronisé sur mes pc et sur android (Car sur les tablettes pas de clé usb)
C'est possible ?

Esce que Unison fontionne sur d'autres version plus ancienne de linux (Xubuntu 12.04), du moins la synchro, car certain de mes postes son sur d'ancienne version ?

Merci.

Dernière modification par xunil2003 (Le 30/09/2014, à 23:24)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#19 Le 01/10/2014, à 08:59

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Je ne peut pas formater ma clé usb au format Ext4 de Linux pour l'instant. (Trop de fichiers volumineux sur la clé)

Et tu ne peux pas mettre temporairement ces fichiers sur un disque dur interne, le temps de formater ?

Tout est ok.

Ben tu vois, quand je te dis que ça marce bien wink

J'envisagé d'acheter un disque dur externe ethernet wifi.

Disque dur wifi. C'qu'ils vont pas inventer. Techniquement, c'est un mini-NAS.
Il n'y a pas marqué quel est le système de fichiers utilisé, cela dit vu qu'ils parlent de support Windows c'est probablement CIFS, donc pas de souci avec Linux.
Ou alors il y a un pilote spécial avec un protocole spécial, auquel cas ça ne fonctionnerait pas avec Linux...

Pour la façon d'utiliser que tu évoques, oui c'est possible, par contre il ne faut pas oublier de démonter le disque dur côté PC avant de l'éteindre.

Esce que Unison fontionne sur d'autres version plus ancienne de linux

Oui, Unison existe depuis de longues années.

Réponse détaillée :
Avec l'usage que tu en fais, tu auras en fait une synchro Unison par PC, indépendamment des autres. Donc aucun souci, tu utilises Unison sur toutes les machines, avec des versions différentes.
Il existe aussi la possibilité de synchroniser différents PC par le réseau, au travers d'une connexion SSH, auquel cas il faudrait la même version d'Unison sur les machines, et là ça risquerait de poser + de problèmes.

Xubuntu 12.04

De toute manière le support de Xubuntu 12.04 se termine en avril 2015, il faut penser à mettre à niveau smile

Hors ligne

#20 Le 01/10/2014, à 17:53

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Re,

Tiramiseb a écrit :

Et tu ne peux pas mettre temporairement ces fichiers sur un disque dur interne, le temps de formater

J'ai plus de place sur le disque dur.

Tiramiseb a écrit :

Ben tu vois, quand je te dis que ça marce bien wink

Oui il faut juste le comprendre.

Tiramiseb a écrit :

Pour la façon d'utiliser que tu évoques, oui c'est possible, par contre il ne faut pas oublier de démonter le disque dur côté PC avant de l'éteindre.

Oui pour un disque sata, mais en réseau, je passe par Samba il me semble, inutile de le monter et de le démonter ?
Puis un petit script python pour le mettre en marche ou à l'arrêt à distance avec la domotique (Z-wave) et le tour est joué.


J'ai installé Unison sur le pc portable avec un script bash que j'ai fait à l'arrache, car j'ai plusieurs postes.

#!/bin/bash
echo "
+-----------------------------------------+
| Installation et configuration de Unison |
+-----------------------------------------+
|   Créer le : 01/10/2014                 |
| Modifer le : 01/10/2014                 |
+-----------------------------------------+
bash /home/laurent/bash/dernier/unison.sh
"

echo "Installation du paquet unison : Mode console"
echo "--------------------------------------------"
sudo apt-get install unison
echo
echo "Installation du paquet unison-gtk : Mode graphique"
echo "----------------------------------------------"
sudo apt-get install unison-gtk

echo
echo "Création du répertoire de Unison : ~/.unison"
echo "--------------------------------------------"
mkdir -v ~/.unison

echo
echo "Création du fichier de configuration : default.prf"
echo "--------------------------------------------------"
echo "#Unison preferences" > ~/.unison/default.prf
echo "" >> ~/.unison/default.prf
echo "#J'indique uniquement le répertoire parent (Destination)" >> ~/.unison/default.prf
echo "root=/home/$USER/" >> ~/.unison/default.prf
echo "" >> ~/.unison/default.prf
echo "#Le chemin du périphérique (Source : à condition que ce soit toujours le même)" >> ~/.unison/default.prf
echo "root=/media/laurent/CORSAIR/Partage/" >> ~/.unison/default.prf
echo "" >> ~/.unison/default.prf
echo "path=bash" >> ~/.unison/default.prf
echo "path=c" >> ~/.unison/default.prf
echo "path=c++" >> ~/.unison/default.prf
echo "path=Configuration" >> ~/.unison/default.prf
echo "path=Lua" >> ~/.unison/default.prf
echo "path=python" >> ~/.unison/default.prf
echo "" >> ~/.unison/default.prf
echo "#zap les permissions" >> ~/.unison/default.prf
echo "#perms = 0" >> ~/.unison/default.prf
echo "fat = true" >> ~/.unison/default.prf
echo "" >> ~/.unison/default.prf
echo "#Synchro des dates" >> ~/.unison/default.prf
echo "times=true" >> ~/.unison/default.prf
echo "#force=newer" >> ~/.unison/default.prf
echo "" >> ~/.unison/default.prf
echo "#Options du journal" >> ~/.unison/default.prf
echo "log = true" >> ~/.unison/default.prf
echo "logfile = /home/$USER/.unison/unison.log" >> ~/.unison/default.prf
echo "Ok"
echo
echo "L'installation et la configuration de Unison et terminé"
echo
exit 0

Fichier de configuration Unison sur le portable

laurent@nathalie-AKOYA-E1318T:/usr/local$ cat -n  ~/.unison/default.prf
     1  #Unison preferences
     2
     3  #J'indique uniquement le répertoire parent
     4  root=/home/laurent/
     5
     6  #Le chemin du périphérique (à condition que ce soit toujours le même)
     7  root=/media/laurent/CORSAIR/Partage/
     8
     9  path=bash
    10  path=c
    11  path=c++
    12  path=Configuration
    13  path=Lua
    14  path=python
    15
    16  #zap les permissions
    17  #perms = 0
    18  fat = true
    19
    20  #Synchro des dates
    21  times=true
    22  #force=newer
    23
    24  #Options du journal
    25  log = true
    26  logfile = /home/laurent/.unison/unison.log
laurent@nathalie-AKOYA-E1318T:/usr/local$ 

Quand j'ai démarrer unison, j'ai ceci qui c'est affiché, avec plein de point d'interrogation?
1412173891.png

Pourquoi les fichiers ont des points d'interrogation ?
J'ai  beaucoup de fichiers avec un point d'interrogation ?
Je pense que c'est à moi à lui dire quoi faire ?
Si je clique sur "Go" et qu'il y a les points d'interrogation sur les fichiers,  ignore-t-il ses fichiers là ?

Les symboles si je ne me trompe pas  :

<--- (Flèche verte gauche) Signifie copier vers le dossier /home/user.
---> (Flèche verte droite) Signifie copier vers la clé usb.
?     (Point d'interrogation rouge) Signifie ne sait pas quoi faire ?
X     (Croix rouge) Signifie impssible à copier (voir droit/permission du fichier)

Dans le répertoire "/media/laurent/CORSAIR/Partage/" et "/media/laurent/CORSAIR/Partage2/" c'est ce qu'hier Unison a copié ?

Merci.

Dernière modification par xunil2003 (Le 01/10/2014, à 18:07)


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#21 Le 01/10/2014, à 18:15

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Oui pour un disque sata, mais en réseau, je passe par Samba il me semble, inutile de le monter et de le démonter ?

Avec NFS par exemple, si on essaie d'accéder à un partage indisponible on part dans un timeout super long, genre 5 minutes à attendre que ça retourne une erreur...

Pour CIFS (« Samba ») je n'ai pas de certitude, en effet ça pourrait ne pas poser trop de problème.

Pourquoi les fichiers ont des points d'interrogation ?

Parce qu'ils existent déjà des deux côtés, avec des dates de modifications différentes : il ne sait pas quoi faire alors il te demande.

Je pense que c'est à moi à lui dire quoi faire ?

Exactement : avec la flèche gauche ou droite tu lui dis lequel est à conserver.

Si je clique sur "Go" et qu'il y a les points d'interrogation sur les fichiers,  ignore-t-il ses fichiers là ?

Exactement.

Les symboles si je ne me trompe pas  :

Tu ne te trompes pas.

Dans le répertoire "/media/laurent/CORSAIR/Partage/" et "/media/laurent/CORSAIR/Partage2/" c'est ce qu'hier Unison a copié ?

Je ne comprends pas la question.
C'est toi qui as fait les manips, je n'ai pas suivi en détails ce que tu as fait ; c'est toi qui peut dire en détails comment tu as fait.

Hors ligne

#22 Le 01/10/2014, à 19:50

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Re,

Logiquement ce sont les fichiers avec le plus d'octets.
Je n'ai pas trouvé comment comparer les fichiers avec les octets dans un répertoire ?

Merci.


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#23 Le 01/10/2014, à 20:18

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Si j'étais toi, je ne configurerais pas ce genre de chose automatiquement.

Car si tu as fait deux modifications différentes sur deux PC différents, c'est alors la modification la plus petite qui sera perdue.

Laisse-le te poser la question, réponds-lui manuellement, pour les premières synchros ça va faire ce genre de choses mais à l'usage ça deviendra rare.

Hors ligne

#24 Le 01/10/2014, à 20:41

xunil2003

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Re,

Comment faites vous pour pouvoir lui répondre manuellement ?
Faut-il retirer la ligne

times=true

Merci.


- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 /  Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE

Hors ligne

#25 Le 01/10/2014, à 20:48

tiramiseb

Re : Logiciel pour mettre à jour son dossier /home/user ça existe ?

Comment faites vous pour pouvoir lui répondre manuellement ?

Je te l'ai dit, tu utilises la touche flèche gauche ou flèche droite de ton clavier pour lui dire dans quel sens synchroniser. Il passera automatiquement à la ligne suivante.

Faut-il retirer la ligne

times=true

Je ne sais pas, je n'ai jamais utilisé cette directive...

Hors ligne