Synchroniser un dossier sur deux machines?

Bonjour à tous,
Auriez vous connaissance d’un logiciel, ou d’un technique, qui pourrait me permettre de synchroniser un dossier (et ses sous dossiers) d’un laptop (XP 32bits)avec une machine fixe (Vista 64bits).
L’idée serait d’avoir un dossier nommé qui serait mis à jour avec mes derniers fichiers de travail dans les deux sens. (Avant de partir avec mon laptop, je l’allume, il récupère la dernière version des fichiers, je rentre, je l’allume mon fixe récupère les fichiers et je continue à bosser confortablement sur le fixe).
Enfin je pense que vous voyez l’idée.
Les deux machines sont connectées à une neuf box en wi-fi, ce qui me laisse la possibilité de les connecté directement en ethernet.

En vous remerciant :slight_smile:

Sujet déjà abordé dans d’autres thread, je te conseille d’essayer le service web mesh.com.

SyncBack :slight_smile:
Synchronisation incrémentielle possibilité FTP email etc…

Dropbox.
Mais ça passe par le net (et limité à 2Go pour une utilisation gratuite).

PathSync et éventuellement un disque dur portable.

Merci de vos réponse je vais jeter un oeil à tout ça :slight_smile:

heuu juste pour info pourquoi vous avez proposé des solution online ? (mesh.com dropbox etc…)
c’est quand même plus simple et plus rapide en local …

Rapidement: YSync et Unison (mais je te laisse chercher, faut que je nettoie la cuisine avant que madame ne rentre :slight_smile: ).

[quote=“AcidBen, post:7, topic: 49770”]heuu juste pour info pourquoi vous avez proposé des solution online ? (mesh.com dropbox etc…)
c’est quand même plus simple et plus rapide en local …[/quote]
Bin c’était pas précisé, il fera son choix.

Et avec une synchro online, ca peut éviter le coup du “oups j’ai oublié de récupérer les fichiers avant de partir”; à condition d’avoir une connexion au net sous la main.

oui, je n’ai pas précisé, mais en local, ca m’arrange (c’est qu’avec ma petite ligne ADSL 512, c’est pas toujours évident).
Le risque d’oubli est faible, car si j’embarque mon laptop, c’est que j’ai un travail en groupe ou que j’ai clairement décidé de bosser à l’école (oui, étudiant :)),ou encore si j’ai un rendu (là, j’embarque pour une dernière retouche si l’impression de mes planches sort crade).
J’ai récupéré syncback, je vais essayer demain.

Encore merci pour toutes vos informations.

Dropbox est excellent. Dans la prochaine version les PCs sur un réseau local se transfèreront directement les fichiers sans passer par les serveurs DropBox si on le souhaite. De plus ils gèrent le “versioning”, ce qui permet de charger une ancienne version de fichier, ou encore de restaurer un fichier supprimé (jusqu’à 30 jours dans la version gratuite, durée illimitée pour la version payante).

Me revoilà! J’ai pu tester syncback, qui est resté bloqué un certain temps sur “Synchronisation en cours” sans avancer.
J’ai donc décidé de tester avec Pathsync, en trois clics c’était réglé, c’est sobre et efficace.

Je vais surveiller quand même l’évolution de Dropbox.

Je vous remercie encore de votre aide.

Je sais que c’est fini, mais ya robocopy aussi.

J’utilise Unison entre 2 Ubuntu, sur un portable et un fixe. J’en suis très content. Le site annonce qu’Unison fonctionne avec d’autres OS.

Edit : je viens de voir que rolyat en a déjà parlé. Tant pis, au moins moi j’ai mis un lien.

La première version beta prenant en charge cette fonctionnalité vient de sortir.
Par encore testé, mais ça va pas tarder.

Petit retour d’expérience sur Mesh que je viens de désinstaller: trop pénible quand quelqu’un a effacé des fichiers par mégarde, ou voulu déplacer son dossier synchro et que ça supprime tout chez tout le monde. On a beau restaurer les données (vive les backups paranos), mesh s’amuse à tout re-supprimer dans la foulée. Mesh poubelle, on va regarder vos diverses propositions

Je suis personellement resté sur Pathsync (Dropbox convaincant, mais il faut une connexion qui suit).
Je n’ai pas ce soucis, au contraire, quand je supprime un dossier sur une machine, il va plutôt le restaurer à partir de l’autre machine à la synchronisation suivante.

Microsoft SyncToy 2.1

Voilà, pourquoi faire simple … :smiley:
Si ça intéresse des gens j’ai mis en pièces jointes un script vb pour synchroniser plusieurs dossiers en une fois.

[code]Option Explicit

'============================================================================

Const C_TIMEPOLL = 1000 '1 second
Const C_TIMEOUT = 2400000 '40 minutes

Const C_BACKUPAPP = « robocopy.exe »
Const C_BACKUPAPP_PARAM = « /MIR /XO /Z /R:2 /W:3 /NP /FP /NDL »

Const C_SHUTDOWN = 1
Const C_SLEEP = 2
Const C_SHUTDOWN_CMD = « shutdown /f /s /t 0 » 'shtudown
Const C_SLEEP_CMD = « rundll32 powrprof.dll,SetSuspendState » 'sleep
'============================================================================

Main

Sub Main()
Dim shutdownAfterExec, cmdAfterBackup
Dim backupSrcList, backupDestList, logDir
Dim index

Dim usageText
usageText = « Usage: cscript backup.vbs /s source /d destination /l log /u shutdown /e command » & vbCrLf & vbCrLf & _
" * source :: Source directory or comma-separated list" & vbCrLf & vbTab & _
« (drive:\path or \server\share\path or drive:\path,drive:\path). » & vbCrLf & vbCrLf & _
" * destination :: Destination directory or comma-separated list" & vbCrLf & vbTab & _
« (drive:\path or \server\share\path or drive:\path,drive:\path). » & vbCrLf & vbCrLf & _
" * log :: Backup log directory" & vbCrLf & vbTab & _
« (drive:\path or \server\share\path). » & vbCrLf & vbCrLf & _
" * shutdown :: Shutdown (1) or Sleep (2) after execution." & vbCrLf & vbCrLf & _
" * command :: command line to executed after backup."
If WScript.Arguments.Count = 0 Then
WScript.Echo usageText
Exit Sub
End If

index = 0
Dim oneArg
For Each oneArg In WScript.Arguments
Select Case oneArg
Case « /s »: backupSrcList = WScript.Arguments(index + 1)
Case « /d »: backupDestList = WScript.Arguments(index + 1)
Case « /l »: logDir = WScript.Arguments(index + 1)
Case « /u »: shutdownAfterExec = CInt(WScript.Arguments(index + 1))
Case « /e »: cmdAfterBackup = WScript.Arguments(index + 1)
End Select
index = index + 1
Next

if len(backupSrcList) = 0 or len(backupDestList) = 0 or len(logDir) = 0 then
WScript.Echo usageText
Exit Sub
end if

if len(shutdownAfterExec) = 0 then shutdownAfterExec = 0

backupSrcList = Split(backupSrcList, « , »)
backupDestList = Split(backupDestList, « , »)
If UBound(backupSrcList) <> UBound(backupDestList) Then
WScript.Echo « Number of source directories differs from Number of destination directories. Exiting … »
Exit Sub
End If

index = 0
While index <= UBound(backupSrcList)
backupOneDir backupSrcList(index), backupDestList(index), logDir
index = index + 1
Wend

Dim objShell: Set objShell = CreateObject(« WScript.Shell »)

If Len(cmdAfterBackup) > 0 Then objShell.Run cmdAfterBackup

Dim shutdownCmd: shutdownCmd = «  »
Select Case shutdownAfterExec
Case C_SHUTDOWN: shutdownCmd = C_SHUTDOWN_CMD
Case C_SLEEP: shutdownCmd = C_SLEEP_CMD
End Select

If Len(shutdownCmd) > 0 Then objShell.Run shutdownCmd
End Sub

'============================================================================

Sub backupOneDir(srcDir, destDir, logDir)
Dim fso: Set fso = CreateObject(« Scripting.FileSystemObject »)
If Not fso.FolderExists(destDir) Then fso.CreateFolder destDir
If Not fso.FolderExists(logDir) Then fso.CreateFolder logDir
Set fso = Nothing

Dim logfile, cmdLine, pID
logfile = logDir & "" & « bkp_ » & dirNameForLog(srcDir) & « _ » & dateToNumber(Date) & « .log »

'robocopy
cmdLine = C_BACKUPAPP & " " & srcDir & " " & destDir & " /LOG:" & logfile & " " & C_BACKUPAPP_PARAM

pID = LaunchProcess(cmdLine, Null)
waitForProcessEnd «  », pID, C_TIMEPOLL, C_TIMEOUT
End Sub

'============================================================================

’ other functions
'============================================================================

Function dateToNumber(d)
dateToNumber = Year(d) & Right(« 0 » & Month(d), 2) & Right(« 0 » & Day(d), 2)
End Function

'============================================================================

Function dirNameForLog(directory)
Dim n: n = directory
n = Replace(n, « : », «  »)
n = Replace(n, "", « _ »)
dirNameForLog = n
End Function

'============================================================================

Function LaunchProcess(program, path)
Dim processID
Dim WMImgmts: Set WMImgmts = GetObject(« WINMGMTS:{impersonationLevel=impersonate,(Security)}!\.\ROOT\CIMV2:Win32_Process »)
WMImgmts.Create program, path, Null, processID
Set WMImgmts = Nothing
LaunchProcess = processID
End Function

'============================================================================

Sub KillProcessID(processID)
Dim WMImgmts: Set WMImgmts = GetObject(« WINMGMTS:{impersonationLevel=impersonate,(Security)}!\.\ROOT\CIMV2 »)
Dim procList: Set procList = WMImgmts.execquery(« SELECT * FROM Win32_Process WHERE processid= » & processID)
Dim oneProc
For Each oneProc In procList
oneProc.Terminate
Next
Set procList = Nothing
Set WMImgmts = Nothing
End Sub

'============================================================================

Sub waitForProcessEnd(processName, processID, timepoll, timeout)
Dim query
If Len(processName) > 0 Then
query = « SELECT * FROM win32_process WHERE name=' » & processName & « ' »
ElseIf Len(processID) > 0 Then
query = « SELECT * FROM Win32_Process WHERE processid= » & processID
Else
Err.Raise 1, « waitForProcessEnd », « process name and process ID are missing »
End If

Dim totalTime: totalTime = 0
Dim WMImgmts, procList
Set WMImgmts = GetObject(« WINMGMTS:{impersonationLevel=impersonate,(Security)}!\.\ROOT\CIMV2 »)
Set procList = WMImgmts.execquery(query)
Do While procList.Count >= 1
WScript.sleep timepoll
totalTime = totalTime + timepoll

If totalTime >= timeout Then
  Dim oneProc
  For Each oneProc In procList
	oneProc.Terminate
  Next
End If

Set procList = WMImgmts.execquery(query)

Loop
Set procList = Nothing
Set WMImgmts = Nothing
End Sub[/code]]

Après pas mal de tergiversation sur le comment du triple archivage de mes photos (HDD Fixe + 2 Externes dont un qui n’est connecté que le temps de l’archivage), je me suis fixé sur SyncToy dont parlait PereCil, qui n’est pas le software parfait que j’avais en tête mais qui does the job proprement et assez rapidement.