Bonjour !<div><br></div><div>Je me suis mis en tête de réaliser un script pour automatiser la sauvegarde des données essentielles des utilisateurs sur le réseau de mon entreprise. Le contexte, c&#39;est que dans deux semaines je vais installer un nouveau serveur et je veux éviter de récupérer l&#39;intégralité des homes des utilisateurs, pour éviter d&#39;importer des trucs qui ne servent à rien ou qui pourrait foutre le bordel. </div>

<div><br></div><div>Je veux que ce soit les utilisateurs qui lancent chacun le script, qui va créer un fichier zip qu&#39;ils vont manuellement copier sur une clef USB. Quand le nouveau serveur sera en route, ils vont ouvrir leur nouvelle session (avec sans doute un identifiant différent de l&#39;actuel) et lancer un autre script (qui sera avec mon zip sur leur clef), qui va tout remettre où ça doit.</div>

<div><br></div><div>Comme je ne suis pas un monstre niveau expérience dans les scripts, j&#39;ai passé pas mal d&#39;heures à faire un truc qui fonctionne. Et ça fonctionne ! Ca copie tout ce que je veux sauvegarder dans un répertoire temporaire, puis ça fait un zip avec le tout et ensuite ça efface les données temporaires et ça génère le script pour l&#39;import.</div>

<div><br></div><div>Mais comme je suis perfectionniste, j&#39;ai voulu modifier mon script pour qu&#39;il donne un feedback un peu plus parlant aux utilisateurs. Je voudrais mettre pour chaque groupe de copie de fichiers, puis pour la génération du zip, une sorte de &quot;progress bar&quot;, en fait, avec juste des petits &quot;.&quot; qui s&#39;alignent côte à côte, pour que l&#39;utilisateur se rende compte que mon script est bien en train de travailler, qu&#39;il n&#39;a pas planté. Ma foi, si ça copie un fichier de 4GB, ben y aura quand même qu&#39;un petit point, mais c&#39;est mieux que rien. Donc l&#39;idée s&#39;était de récupérer la sortie &quot;verbeuse&quot; de la commande &quot;cp&quot;, et transformer chaque ligne de ladite sortie en un petit point. En faisant :</div>

<div><br></div><div>cp -Rv $HOME/Documents /Users/Shared/temp/ | sed s/^.*$/./</div><div><br></div><div>Ca fonctionne à peu près, sauf que ça me met un retour à la ligne après chaque &quot;.&quot; alors que les voudrais côte à côte.</div>

<div><br></div><div>En faisant :</div><div><br></div><div>cp -Rv $HOME/Documents /Users/Shared/temp/ | sed s/^.*$/./ | tr -d &#39;\n&#39;</div><div><br></div><div>Ca me donne le résultat désiré, mais d&#39;un bloc ! Ca fait toutes les copies, et à la fin j&#39;ai plein de petits points qui apparaissent d&#39;un seul coup.</div>

<div><br></div><div>Alors, après des heures de recherches sur le net, je me dis qu&#39;il y a bien un gourou sur cette liste qui va me pondre une solution en deux coups de cuiller à pot.... </div><div><br></div><div>Dites-moi si vous voulez voir tout mon script.</div>

<div><br></div><div>Ah, et c&#39;est loin d&#39;être un détail : ce script doit tourner sous OSX !!! </div><div><br></div><div>Merci mille fois !</div><div> </div><div>Christophe Pochon<br><a href="http://www.christophe-pochon.com">http://www.christophe-pochon.com</a><br>

<br>
</div>