tag:linuxfr.org,2005:/tags/utilitaire/publicLinuxFr.org : les contenus étiquetés avec « utilitaire »2022-09-14T14:34:49+02:00/favicon.pngtag:linuxfr.org,2005:Bookmark/51422022-09-14T14:34:49+02:002022-09-14T14:34:49+02:00Sortie de Rivalcfg v4.7.0, qui supporte deux nouvelles souris de la marque SteelSeries<a href="https://www.buymeacoffee.com/flozz/project-rivalcfg-v4-7-0-released">https://www.buymeacoffee.com/flozz/project-rivalcfg-v4-7-0-released</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/128756/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/flozz/liens/sortie-de-rivalcfg-v4-7-0-qui-supporte-deux-nouvelles-souris-de-la-marque-steelseries#comments">ouvrir dans le navigateur</a>
</p>
FLOZzhttps://linuxfr.org/nodes/128756/comments.atomtag:linuxfr.org,2005:Bookmark/50362022-08-17T13:57:01+02:002022-08-17T14:45:57+02:00Sortie de Rivalcfg, l'outil de configuration pour les souris SteelSeries, en version 4.6.0<a href="https://www.buymeacoffee.com/flozz/project-rivalcfg-v4-6-0">https://www.buymeacoffee.com/flozz/project-rivalcfg-v4-6-0</a> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/128521/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/flozz/liens/sortie-de-rivalcfg-l-outil-de-configuration-pour-les-souris-steelseries-en-version-4-6-0#comments">ouvrir dans le navigateur</a>
</p>
FLOZzhttps://linuxfr.org/nodes/128521/comments.atomtag:linuxfr.org,2005:Post/420432021-04-14T16:37:20+02:002021-04-14T20:36:07+02:00[RESOLU] Y a-t-il une alternative à "dig" / "nslookup" ?<p>Bonjour.</p>
<p>Je viens de constater, juste après avoir réinstallé ma machine avec Manjaro que les outils "dig" et "nslookup" avaient été remplacés par le paquet complet "bind"… Il faut donc que je me coltine le serveur BIND complet (O.-) et une tripotée de fichiers dont je n'ai ni que faire ni que foutre, juste pour <strong>un</strong> utilitaire :( .</p>
<p><strong>EDIT</strong>: À titre d'information, voici l'en-tête du paquet @ <a href="https://archlinux.org/packages/extra/x86_64/bind/">https://archlinux.org/packages/extra/x86_64/bind/</a><br>
<code><br>
Provides: bind-tools, dns-server, dnsutils<br>
Replaces: bind-tools, dnsutils, host<br>
Conflicts: bind-tools, dnsutils <br>
</code><br>
La plupart du temps je me sers de "<em>dig +short +identify</em>", ce qui revient grosso merdo à "<em>getent hosts</em>" — autant dire que je me suis empressé de modifier mon alias pour "dig". Mais il n'est pas rare que j'aie besoin de connaître la réponse complète que donne "dig": serveur DNS, temps de réponse et (pourquoi pas) requête et réponse complètes.</p>
<p>Y a-t-il un outil, un script, n'importe quoi qui puisse produire ce résultat [<strong>EDIT</strong>: qui ne fasse donc pas partie de <em>bind</em>]?</p>
<p>D'avance merci.</p>
<div><a href="https://linuxfr.org/forums/linux-general/posts/resolu-y-a-t-il-une-alternative-a-dig-nslookup.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/123958/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-general/posts/resolu-y-a-t-il-une-alternative-a-dig-nslookup#comments">ouvrir dans le navigateur</a>
</p>
FantastIXhttps://linuxfr.org/nodes/123958/comments.atomtag:linuxfr.org,2005:Post/416742020-12-14T14:20:23+01:002020-12-14T14:20:23+01:00Faire un clone bootable de Windows 10 depuis une clé Ubuntu live<p>Bonjour,<br>
faisons l'hypothèse que je fasse l'acquisition d'un PC portable d'occasion vendu avec Windows 10 installé sur le disque SSD interne. Et imaginons qu'après avoir utilisé le système Windows pour mettre à jour le BIOS et autres opérations de maintenance, je souhaite installer sur ce disque SSD interne un système Ubuntu LTS 20.04.</p>
<p>Je me demandais si en démarrant sur la clé live/install d'Ubuntu, je pouvais, avant d'écraser le disque interne, en faire un clone bootable (avec des utilitaires Ubuntu donc) sur un disque externe USB. Par clone bootable j'entends une copie sur disque externe à partir duquel je puisse démarrer le PC. On sait jamais, si j'ai besoin d'utiliser une appli Windows un jour.</p>
<p>À moins qu'il existe une appli Windows qui permet de faire cela depuis le système Windows source lui même ? Mes recherches mènent à deux ou trois propositions dont j'ai un peu du mal à déterminer le sérieux.</p>
<p>Sauf erreur de ma part, clonezilla ne permet pas de créer un clone bootable mais bien une image qui nécessite clonezilla pour être restaurée ultérieurement. (Ou alors je crée l'image sur un disque externe A et ensuite je la restaure sur un disque externe B ?).</p>
<p>Merci.</p>
<div><a href="https://linuxfr.org/forums/general-cherche-logiciel/posts/faire-un-clone-bootable-de-windows-10-depuis-une-cle-ubuntu-live.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/122569/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-cherche-logiciel/posts/faire-un-clone-bootable-de-windows-10-depuis-une-cle-ubuntu-live#comments">ouvrir dans le navigateur</a>
</p>
audionumahttps://linuxfr.org/nodes/122569/comments.atomtag:linuxfr.org,2005:Diary/379262018-05-09T13:15:06+02:002018-05-09T13:15:06+02:00Défragmenter une partition FAT32 sous Linux …Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Ho putain ce titre de journal, bienvenue dans les années 90 !</p>
<p>Le FAT32 reste, pour notre plus grand malheur, le seul format dont on soit à peu près sûr qu'il soit entièrement utilisable partout. J'utilise donc ce format pour stocker sur clé USB ma collection musicale afin d'en profiter en voiture.<br>
Mais ma voiture semblait bouder certains morceaux, de manière reproductible, sans que je ne comprenne le problème : on entendait une saccade 3, 4, 10 fois sur certains fichiers. TRÈS désagréable. Je supputais un problème avec certains codecs (j'ai du flac et du vorbis, qui sont rarement testés par les fabricants). Mais une idée m'est venue : et s'il s'agissait de fragmentation et que le lecteur de la voiture ne pré-chargeait pas correctement le fichier, provoquant donc des saccades ensuite à la lecture ? Je souffre déjà de problèmes similaires sur un disque dur avec des vidéos en HD ou en UHD, il faut réduire au maximum le nombre d'extent pour que la lecture ne soit pas saccadée… Se peut-il ?</p>
<h3 id="0-rappel-sur-ce-quest-la-fragmentation">0) Rappel sur ce qu'est la fragmentation</h3>
<p>La fragmentation, c'est stocker un fichier en plusieurs parties sur le disque dur au lieu d'un ensemble contigu de blocs. Elle se produit quand un disque devient trop rempli, ou quand le système de fichiers est mal ficelé et ne gère pas correctement certaines opérations.</p>
<h3 id="1-les-outils-pour-gérer-la-fragmentation-sous-linux">1) Les outils pour gérer la fragmentation sous linux</h3>
<p>C'est simple, y'a pas grand monde… Pour vérifier l'état de fragmentation, il y a <code>filefrag</code>, du paquet e2fsprogs, qui marche pour la plupart des systèmes de fichiers. Et il y a les outils spécifiques à certains systèmes de fichier, <code>btrfs filesystem defragment</code> par exemple.</p>
<p>Et c'est tout. Tristesse</p>
<h3 id="2-comment-corriger">2) Comment corriger…</h3>
<p>Ma clé USB a beaucoup de place libre. La fragmentation a du se produire lors de l'import de la collection musicale (j'avais copié jusqu'à 3 dossiers en parallèle). Donc a priori une simple copie de chaque fichier devrait être suffisante en FAT32 (il ne fait pas de copy-on-write…)<br>
Mais j'ai une centaine de fichiers à corriger, dans une grand arborescence… Donc scriptons !</p>
<pre><code class="py"><span class="ch">#!/usr/bin/env python3</span>
<span class="kn">from</span> <span class="nn">pathlib</span> <span class="kn">import</span> <span class="n">Path</span>
<span class="kn">import</span> <span class="nn">re</span>
<span class="kn">import</span> <span class="nn">shutil</span>
<span class="kn">import</span> <span class="nn">subprocess</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="c1"># /my/beautiful/path/filename: 42 extents found</span>
<span class="n">ffrag_re</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">".*: (\d+) extents? found$"</span><span class="p">)</span>
<span class="n">FRAGMENT_LIMIT</span> <span class="o">=</span> <span class="mi">5</span>
<span class="k">def</span> <span class="nf">get_fragments_count</span><span class="p">(</span><span class="n">file_path</span><span class="p">):</span>
<span class="n">f_frag</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">check_output</span><span class="p">([</span><span class="s2">"filefrag"</span><span class="p">,</span> <span class="n">file_path</span><span class="o">.</span><span class="n">as_posix</span><span class="p">()])</span>
<span class="n">m</span> <span class="o">=</span> <span class="n">ffrag_re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">f_frag</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">'utf-8'</span><span class="p">))</span>
<span class="k">assert</span><span class="p">(</span><span class="n">m</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">)</span>
<span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">))</span>
<span class="k">def</span> <span class="nf">defrag</span><span class="p">(</span><span class="n">file_path</span><span class="p">):</span>
<span class="n">temp_file</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="n">file_path</span><span class="o">.</span><span class="n">with_name</span><span class="p">(</span><span class="n">file_path</span><span class="o">.</span><span class="n">name</span> <span class="o">+</span> <span class="s1">'.new'</span><span class="p">))</span>
<span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">temp_file</span><span class="p">)</span>
<span class="n">new_frags</span> <span class="o">=</span> <span class="n">get_fragments_count</span><span class="p">(</span><span class="n">temp_file</span><span class="p">)</span>
<span class="k">if</span> <span class="n">new_frags</span> <span class="o">></span> <span class="n">FRAGMENT_LIMIT</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="s2">"New file </span><span class="si">%s</span><span class="s2"> still has too many fragments - </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="p">(</span><span class="n">temp_file</span><span class="o">.</span><span class="n">as_posix</span><span class="p">(),</span> <span class="n">new_frags</span><span class="p">))</span>
<span class="n">temp_file</span><span class="o">.</span><span class="n">unlink</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">file_path</span><span class="o">.</span><span class="n">unlink</span><span class="p">()</span>
<span class="n">temp_file</span><span class="o">.</span><span class="n">rename</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="s2">"New file has </span><span class="si">%s</span><span class="s2"> fragments"</span> <span class="o">%</span> <span class="n">new_frags</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">check_folder</span><span class="p">(</span><span class="n">folder</span><span class="p">,</span> <span class="n">recurse</span> <span class="o">=</span> <span class="bp">True</span><span class="p">):</span>
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">folder</span><span class="o">.</span><span class="n">iterdir</span><span class="p">():</span>
<span class="k">if</span> <span class="n">recurse</span> <span class="ow">and</span> <span class="n">item</span><span class="o">.</span><span class="n">is_dir</span><span class="p">():</span>
<span class="n">check_folder</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">frags</span> <span class="o">=</span> <span class="n">get_fragments_count</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
<span class="k">if</span> <span class="n">frags</span> <span class="o">></span> <span class="n">FRAGMENT_LIMIT</span><span class="p">:</span>
<span class="k">print</span><span class="p">(</span><span class="s2">"File </span><span class="si">%s</span><span class="s2">: TO DEFRAG - </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">item</span><span class="o">.</span><span class="n">as_posix</span><span class="p">(),</span> <span class="n">frags</span><span class="p">))</span>
<span class="n">defrag</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="c1">#print("File %s: OK" % item.as_posix())</span>
<span class="k">pass</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">2</span><span class="p">:</span>
<span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="n">folder</span> <span class="o">=</span> <span class="n">Path</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
<span class="n">check_folder</span><span class="p">(</span><span class="n">folder</span><span class="p">)</span></code></pre>
<p>Ce script est assez basique, je vous laisse rajouter l'aide, le decorum usuel… En gros, on le lance en donnant en paramètre le dossier à défragmenter, il va interroger filefrag pour chaque fichier de chaque dossier récursivement, et si ce fichier a plus de 5 fragments (valeur obtenue par le lancer d'un dé), alors on fait une copie du fichier et l'on écrase l'original. Cela a pour effet de forcer le noyau à créer un nouveau fichier qui ne sera pas fragmenté…</p>
<p>Exemple de sortie :</p>
<pre><code>File /media/snoopy/KINGSTON/Renaud/A la Belle de Mai/07 - Le petit chat est mort.mp3: TO DEFRAG - 108
New file has 1 fragments
File /media/snoopy/KINGSTON/Celtas Cortos - Vamos!/02 - 20 de Abril.flac: TO DEFRAG - 166
New file has 1 fragments
</code></pre>
<p>Maintenant il n'y a plus qu'à attendre et écouter, j'espère que le problème ne se produira plus, je déteste qu'on abîme ma musique.</p>
<p>Et n'hésitez pas à reprendre ce script, l'améliorer, en faire des papillotes ou des tee-shirts ou que sais-je ! :)</p><div><a href="https://linuxfr.org/users/pied/journaux/defragmenter-une-partition-fat32-sous-linux.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/114423/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/pied/journaux/defragmenter-une-partition-fat32-sous-linux#comments">ouvrir dans le navigateur</a>
</p>
Pinarafhttps://linuxfr.org/nodes/114423/comments.atomtag:linuxfr.org,2005:Post/348482015-01-08T14:43:18+01:002015-01-08T20:21:27+01:00tree: afficher une arborescence dans un terminal<p>J'ai découvert aujourd'hui le programme <a href="http://mama.indstate.edu/users/ice/tree/">tree</a>, qui permet d'afficher une arborescence dans un terminal.</p>
<p>Ça existe depuis longtemps mais je ne connaissais pas, donc j'ai pensé que je n'étais peut-être pas le seul.</p>
<p><img src="//img.linuxfr.org/img/68747470733a2f2f73637265656e73686f74732e64656269616e2e6e65742f73637265656e73686f74732f742f747265652f3833315f6c617267652e706e67/831_large.png" alt="Titre de l'image" title="Source : https://screenshots.debian.net/screenshots/t/tree/831_large.png"></p><div><a href="https://linuxfr.org/forums/astucesdivers/posts/tree-afficher-une-arborescence-dans-un-terminal.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/104416/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/astucesdivers/posts/tree-afficher-une-arborescence-dans-un-terminal#comments">ouvrir dans le navigateur</a>
</p>
jihelehttps://linuxfr.org/nodes/104416/comments.atomtag:linuxfr.org,2005:News/330192012-05-31T14:31:50+02:002012-05-31T14:31:50+02:00dfc 3.0.0 : nouvelle version majeure pour cette alternative haute en couleurs à l'utilitaire df(1)Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>Pour ceux ayant raté ma <a href="http://linuxfr.org/news/dfc-1-une-alternative-a-df-1-apportant-couleur-et-graphe">dépêche présentant <em>dfc(1)</em></a> le 1er avril dernier, sachez qu'il s'agit d'un utilitaire en ligne de commande se voulant une alternative au vénérable <em>df(1)</em>, apportant notamment de nombreuses options supplémentaires ainsi qu'un affichage coloré comportant des barres de graphe.</p>
<p>Plusieurs lecteurs de LinuxFr.org avaient fait part de leurs suggestions d'améliorations et requêtes de nouvelles fonctionnalités en commentaire de la dépêche et elles ont pour la plupart pris place dans cette nouvelle version majeure de <em>dfc(1)</em>, aux côtés d'autres améliorations.</p></div><ul><li>lien nᵒ 1 : <a title="http://projects.gw-computing.net/projects/dfc" hreflang="en" href="https://linuxfr.org/redirect/82256">Site officiel du projet</a></li><li>lien nᵒ 2 : <a title="http://projects.gw-computing.net/news/12" hreflang="en" href="https://linuxfr.org/redirect/82257">Annonce de la version 3.0.0</a></li><li>lien nᵒ 3 : <a title="http://projects.gw-computing.net/projects/dfc/wiki" hreflang="en" href="https://linuxfr.org/redirect/82258">Wiki</a></li><li>lien nᵒ 4 : <a title="http://projects.gw-computing.net/projects/dfc/wiki/FAQ" hreflang="en" href="https://linuxfr.org/redirect/82259">FAQ</a></li></ul><div><p>Au rayon des améliorations d'ordre général, on peut citer le support de l'internationalisation comportant la traduction complète de <em>dfc(1)</em> vers le français, un fichier de configuration optionnel ainsi qu'une amélioration conséquente de la fonctionnalité d'auto-ajustement.</p>
<p><em>dfc(1)</em> 3.0.0 présente également un meilleur support multi-plateforme puisque les utilisateurs de Mac OS X bénéficient maintenant également de l'option <em>-o</em> permettant d'afficher les options de montage et que l'utilitaire a été porté sous DragonFly BSD, NetBSD ainsi qu'OpenBSD. De nouvelles options font également leur apparition :</p>
<ul><li><em>-d</em> permet d'afficher la taille utilisée (et oui, cela n'existait pas avant !)</li>
<li><em>-e</em> permet l'export vers les formats CSV, TeX et HTML. Voici un exemple d'<a href="http://www.rolinh.ch/msc/dfc-3.0.0-1.html">export HTML en couleur</a> et un exemple d'<a href="http://www.rolinh.ch/msc/dfc-3.0.0-2.html">export sans couleur</a>.</li>
<li><em>-l</em> permet d'afficher uniquement les systèmes de fichiers locaux (option similaire à celle existant dans <em>df(1)</em>)</li>
<li><em>-p</em> permet de filtrer le résultat en fonction du système de fichiers. Par exemple, <em>dfc -p /dev/sd</em> limitera le résultat aux système de fichiers <em>/dev/sd*</em>, etc.</li>
<li><em>-q</em> trie le résultat en fonction du nom du système de fichiers, du type de système de fichiers ou du point de montage.</li>
</ul><p>Le fonctionnement de ces nouvelles options est évidemment documenté dans la page de manuel.</p>
<p>Cette version de <em>dfc(1)</em> a également subit une refonte du code afin de s'adapter aux nouvelles contraintes et a connu diverses optimisations et corrections de bugs. Le bug le plus notable ayant été corrigé concernait les utilisateurs de FreeBSD pour lesquels les informations affichées pouvaient être incorrectes. Finalement, j'aimerais profiter de cette dépêche pour remercier les contributeurs ayant révisé le code, fournit des patches ou maintenant des paquets <em>dfc(1)</em>.</p>
<p>A ce propos d'ailleurs, <em>dfc(1)</em> est maintenant présent dans les dépôts de Debian testing et unstable et est par conséquent également disponible dans les dépôts de la future Ubuntu 12.10. Il est aussi toujours disponible dans les dépôts de Mageia 2, Frugalware current et les ports FreeBSD. Les utilisateurs d'Archlinux peuvent toujours installer <em>dfc(1)</em> via AUR et ceux de Gentoo via l'ebuild proposée par Laurent Bachelier.</p></div><div><a href="https://linuxfr.org/news/dfc-3-0-0-nouvelle-version-majeure-pour-cette-alternative-haute-en-couleurs-a-l-utilitaire-df-1.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/94322/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/dfc-3-0-0-nouvelle-version-majeure-pour-cette-alternative-haute-en-couleurs-a-l-utilitaire-df-1#comments">ouvrir dans le navigateur</a>
</p>
RolinhNÿcoclaudexFlorent Zarahttps://linuxfr.org/nodes/94322/comments.atom