synchronisation de fichiers

Le
Stéphane CARPENTIER Avatar par défaut
Bonjour,

C'est pas vraiment un configuration, mais c'est pas un troll, ça me
semble plus en charte ici.

j'ai quelques fichiers de configuration que je n'ai pas envie de perdre
et que j'aime bien partager sur mes différents environnements. Comme je
n'ai pas des millions de fichiers, ça marche bien à la main.

J'ai un peu envie de jouer avec des VM et j'aimerais récupérer mes
fichiers simplement sur ces VM. Pour déployer sur des VM, il y aurait
d'autres fichiers à prendre en compte et j'aimerais automatiser tout ça
pour simplifier.

Ma configuration : deux ordinateurs avec un dépôt git centralisé sur
gitlab. Mon usage, je veux pouvoir modifier mes fichiers indépendamment
de l'ordinateur sur lequel je suis pour mettre à jour mon dépôt git.

J'ai regardé un peu rsync parce que je ne connais pas et j'imaginais que
c'était l'outil fait pour ça. Cependant, de ce que j'en vois, j'ai
l'impression que c'est plus prévu pour sécuriser les connexions
distantes. Mais moi, je n'ai que des synchronisations locales et la
sécurité de rsync ne semble pas m'apporter grand chose.

De ce que je vois, rsync ne fonctionne que dans un sens, il ne regarde
que la source pour synchroniser les fichiers. Ça veut dire qu'il faut
que je gère les synchronisations en dehors. Il faut que je fasse des
tests pour savoir si je dois copier ou pas avant d'utiliser rsync dans
le bon sens. Il faut aussi que je gère mes mots de passe en dehors (je
ne vais pas mettre mes mots de passe sur gitlab). La copie partielle des
fichiers est intéressant sur des gros fichiers avec une bande passante
moyenne, mais moins en local.

En gros, de ce que je vois rsync ne m'apporte donc rien de plus qu'un
cp que je scripte. Est-ce que ma conclusion est liée au fait que j'ai
juste survolé rsync et j'aurais intérêt à étudier mieux rsync ? Est-ce
qu'il y a un outil plus adapté à ce que je veux faire ? Est-ce que le
plus simple est de me faire un script qui devrait être assez facile à
écrire ?

--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Vos réponses
Trier par : date / pertinence
Marc SCHAEFER Avatar par défaut
Le #26549601
Stéphane CARPENTIER
j'ai quelques fichiers de configuration que je n'ai pas envie de perdre
et que j'aime bien partager sur mes différents environnements. Comme je
n'ai pas des millions de fichiers, ça marche bien à la main.

J'ai eu fait cela sous forme de paquet Debian, hébergé dans mon
dépôt privé. Avantage: mise à jour du paquet automatique avec
la distribution.
Dans un autre cas plus récent, j'ai fait cela avec du partage de fichier
glusterfs (avec d'autres données) en mirroir à 5 copies.
J'ai un peu envie de jouer avec des VM et j'aimerais récupérer mes
fichiers simplement sur ces VM. Pour déployer sur des VM, il y aurait
d'autres fichiers à prendre en compte et j'aimerais automatiser tout ça
pour simplifier.

Si ce sont des containers, c'est assez facile d'utiliser debbootstrap
ou Dockerfile pour faire toujours les mêmes préinstallations, voire
repartir de la même image.
Pour faire la même chose en machine réelle ou virtuelle lourde, j'aime bien FAI
(mais c'est un peu complexe, surtout si l'on veut faire y.c. l'installation
de base: le Debian preseeding ou le Red Hat kickstart pourraient être plus
appropriés pour 1 ou 2 installations automatisées).
Une autre solution est de documenter l'ajout systématique d'une clé publique
particulière, puis d'un endroit central, via SSH, lancer un script de
préconfiguration. Ansible permet même d'aller plus loin dans l'auto
configuration, dès que SSH est installé.
Ma configuration : deux ordinateurs avec un dépôt git centralisé sur
gitlab. Mon usage, je veux pouvoir modifier mes fichiers indépendamment
de l'ordinateur sur lequel je suis pour mettre à jour mon dépôt git.

C'est pas mal, cela permet de documenter l'historique des modifications.
En ce qui me concerne je préfère auto-héberger gitolite3 plutôt que
gitlab ou github dont je n'utilise de toute façon pas les fonctions
GUI.
J'ai regardé un peu rsync parce que je ne connais pas et j'imaginais que
c'était l'outil fait pour ça. Cependant, de ce que j'en vois, j'ai
l'impression que c'est plus prévu pour sécuriser les connexions
distantes. Mais moi, je n'ai que des synchronisations locales et la
sécurité de rsync ne semble pas m'apporter grand chose.

rsync ne sécurise rien: ce n'est que si rsync tourne sur SSH que
c'est sécurisé :)
L'avantage de passer par SSH: c'est la même chose que cela soit
distant ou local.
De ce que je vois, rsync ne fonctionne que dans un sens, il ne regarde
que la source pour synchroniser les fichiers. Ça veut dire qu'il faut
que je gère les synchronisations en dehors. Il faut que je fasse des

Un autre outil: unison.
Mais je pense que si l'on peut passer par git, c'est encore mieux.
jean b. Avatar par défaut
Le #26549609
bonjour,
le 21 Jun 2020 21:32:11 GMT, Stéphane CARPENTIER écrivait :
Ma configuration : deux ordinateurs avec un dépôt git centralisé sur
gitlab. Mon usage, je veux pouvoir modifier mes fichiers
indépendamment de l'ordinateur sur lequel je suis pour mettre à jour
mon dépôt git.
J'ai regardé un peu rsync […]

Je ne sais pas si ça peut aider : pour ma part, j'utilise
FreeFileSync, pour synchroniser des dossiers de plusieurs ordinateurs.
Je fonctionne à l'ancienne, via une clef USB ! J'utilise une
version gratuite qui ne fonctionne pas en réseau. Peut-être la version
avec donation le permet-elle.
L'avantage, c'est qu'il existe sur Windows, MacOS et Linux, avec une
interface identique qui fonctionne à la souris.
Bonne journée,
--
jean b.
Stéphane CARPENTIER Avatar par défaut
Le #26549656
Le 22-06-2020, Marc SCHAEFER
Stéphane CARPENTIER
j'ai quelques fichiers de configuration que je n'ai pas envie de
perdre et que j'aime bien partager sur mes différents environnements.
Comme je n'ai pas des millions de fichiers, ça marche bien à la main.

J'ai eu fait cela sous forme de paquet Debian, hébergé dans mon dépôt
privé. Avantage: mise à jour du paquet automatique avec la
distribution.

Euh, comment dire. Pour le coup, j'ai un peu honte. Merci. C'est
évidemment ce qu'il faut que fasse. Pas un paquet debian vu que je suis
sous archlinux, Mais le paquet de ma distribution répond à toutes les
questions que j'avais. Je ne sais pas comment ça s'utilise (je veux dire
pour le générer pas pour la mise à jour), mais normalement c'est fait
pour et ça ne doit pas être trop compliqué.
J'avais envisagé plein de solutions, mais elles avaient toutes des
inconvénients que je voyais pas comment résoudre en dehors du script. Je
me doutais bien que quelqu'un d'autre avait eu le besoin avant moi et en
cherchant un outil, je n'ai même pas envisagée le gestionnaire de
paquets.
La honte. Merci, ça va m'éviter de partir de zéro et de faire des
erreurs de conceptions.
J'ai un peu envie de jouer avec des VM et j'aimerais récupérer mes
fichiers simplement sur ces VM. Pour déployer sur des VM, il y aurait
d'autres fichiers à prendre en compte et j'aimerais automatiser tout ça
pour simplifier.

Si ce sont des containers, c'est assez facile d'utiliser debbootstrap
ou Dockerfile pour faire toujours les mêmes préinstallations, voire
repartir de la même image.

Je ne connais pas les containers, mais j'ai travaillé avec des gens qui
en géraient. J'avais un peu regardé kubernet et docker, mais ce que j'en
ai vu, c'est pour un truc pro en entreprise. Tu fais ton container et tu
le déploies à chaque endroit exactement pareil. Ce qui est important en
entreprise de déployer la même chose sur tous les environnements.
Sauf que moi, je ne suis pas en entreprise, j'ai Archlinux parce que
c'est une rolling distribution bleeding edge. Donc, je veux la dernière
version de tous les paquets sur mon ordinateur, et le container il
faudrait que je mette constamment à jour.
C'est là que ta solution est super, car avec un paquet, je dis quels sont
les paquets dont le mien dépend et il installe tout lui même. La
dernière version puisque je n'ai qu'à lui dire quel paquet installer et
pas la version du paquet.
Je sais, kubernet/docker, c'est impressionnant la vitesse à laquelle ça
se déploie. Sauf que l'installation, si elle est automatique, ça se fait
en tâche de fond et ça ne me gêne pas si ce n'est pas instantané.
Une autre solution est de documenter l'ajout systématique d'une clé
publique particulière, puis d'un endroit central, via SSH, lancer un
script de préconfiguration. Ansible permet même d'aller plus loin
dans l'auto configuration, dès que SSH est installé.

Mouais, je ne suis pas persuadé que ce soit mieux que ta première
solution qui me semble vraiment la chose naturelle pour ce que je veux.
Ma configuration : deux ordinateurs avec un dépôt git centralisé sur
gitlab. Mon usage, je veux pouvoir modifier mes fichiers indépendamment
de l'ordinateur sur lequel je suis pour mettre à jour mon dépôt git.

C'est pas mal, cela permet de documenter l'historique des modifications.

Oui, et puis de revenir en arrière au cas où je réalise que c'était
mieux avant. C'est vraiment confortable git, même pour travailler tout
seul. Je fais plein d'essais et quand je suis perdu parce que j'ai été
trop ambitieux, je reviens sur mes pas facilement.
En ce qui me concerne je préfère auto-héberger gitolite3 plutôt que
gitlab ou github dont je n'utilise de toute façon pas les fonctions
GUI.

L'avantage du gitlab, c'est qu'il me propose aussi le CI/CD pour
compiler mes documents un site web pour les mettre à disposition. Je
pourrais le faire chez moi, je l'ai déja fait mais c'est plus
confortable de faire ça à l'extérieur.
J'ai regardé un peu rsync parce que je ne connais pas et j'imaginais
que c'était l'outil fait pour ça. Cependant, de ce que j'en vois,
j'ai l'impression que c'est plus prévu pour sécuriser les connexions
distantes. Mais moi, je n'ai que des synchronisations locales et la
sécurité de rsync ne semble pas m'apporter grand chose.

rsync ne sécurise rien: ce n'est que si rsync tourne sur SSH que c'est
sécurisé :)

Oui je sais, mais ce que je veux dire, c'est que j'ai l'impression que
rsync est surtout prévu pour utiliser toutes les possibilités du ssh. À
la fois au niveau sécurité mais aussi au niveau de la connexion qui est
limitée au possible (copie seulement des différences en les
compressant). Ce qui est une très bonne chose pour des gros fichiers sur
le réseau. Mais l'intérêt est moindre pour des fichiers de conf sur des
répertoires.
L'avantage de passer par SSH: c'est la même chose que cela soit
distant ou local.

Oui, mais en gros, pour moi, entre mon dépôt git et mon ordinateur,
c'est du ssh (porté par git et pas par rsync), ensuite du dépôt local de
git vers mes répertoires, c'est de la copie de base.
De ce que je vois, rsync ne fonctionne que dans un sens, il ne regarde
que la source pour synchroniser les fichiers. Ça veut dire qu'il faut
que je gère les synchronisations en dehors. Il faut que je fasse des

Un autre outil: unison.

Je ne connaissais pas, ça me semble intéressant, mais pas autant que
d'utiliser mon gestionnaire de paquets.
Mais je pense que si l'on peut passer par git, c'est encore mieux.

Comme tout le monde : je gère mon paquet avec Git, ça me semble vraiment
la bonne solution.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Stéphane CARPENTIER Avatar par défaut
Le #26549657
Le 22-06-2020, jean b.
bonjour,
le 21 Jun 2020 21:32:11 GMT, Stéphane CARPENTIER écrivait :
Ma configuration : deux ordinateurs avec un dépôt git centralisé sur
gitlab. Mon usage, je veux pouvoir modifier mes fichiers
indépendamment de l'ordinateur sur lequel je suis pour mettre à jour
mon dépôt git.
J'ai regardé un peu rsync […]

Je ne sais pas si ça peut aider : pour ma part, j'utilise
FreeFileSync, pour synchroniser des dossiers de plusieurs ordinateurs.

Merci pour le conseil, mais je n'ai pas été convaincu par son
utilisation. Après, je l'ai utilisé au boulot avec les contraintes que
ça impose et ça a pu m'en donner une mauvaise image. De ce que j'en ai
vu, c'était graphique, je ne sais pas si ça se scripte, et comme ça ne
marche que dans un sens, il faut que je détermine quel est le fichier le
plus récent avant de le lancer.
Je fonctionne à l'ancienne, via une clef USB ! J'utilise une version
gratuite qui ne fonctionne pas en réseau.

À priori, je n'aurais pas eu besoin du réseau.
L'avantage, c'est qu'il existe sur Windows, MacOS et Linux, avec une

Ça, par contre, je n'ai que du Linux chez moi et la seule chose qui
m'importe est de savoir comment ils tournent chez moi (enfin presque, vu
que j'ai réussi à installer vim sur mon ordinateur du boulot, j'ai
quelques lignes liées à Windows dans mon fichier de conf mais il ne faut
pas le répéter car je n'en suis pas fier).
Mais je crois que Marc a raison : il faut que je me fasse un paquet. 9a
va faire exactement tout ce que je veux mais en me basant sur des trucs
existants et éprouvés au lieu de tout faire moi-même. Je ne comprends
pas que je n'aies pas envisagé cette solution.
--
Si vous avez du temps à perdre :
https://scarpet42.gitlab.io
Publicité
Poster une réponse
Anonyme Avatar par défaut