Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

lundi 23 janvier 2017

Monter disques et clés usb sans être administrateur avec udisksctl

Sous Linux, les médias amovibles sont généralement montés par un clic depuis l'environnement graphique, celui-ci effectue alors le montage en tant qu'utilisateur avec toutes les options nécessaires après avoir créé un point de montage.

Cette façon de faire présente les avantages suivants:

  • Il n'est pas besoin d'être administrateur, i.e. root pour effectuer le montage
  • Le point de montage est créé pour nous
  • Les options de montage sont positionnées pour nous, en particulier celles qui font que le média est en lecture/écriture pour l'utilisateur et non uniquement pour root

L'autre façon de faire étant de passer une commande mount en root avec toutes les options utiles.

Pour monter un média amovible depuis un terminal à la façon de faire de l'environnement graphique, on peut utiliser la commande udisksctl.

Il suffit pour cela de connaître le device du média ou clé USB:

user@machine:~$ udisksctl mount -b /dev/sdc1
Mounted /dev/sdc1 at /media/user/my-data.

On peut aussi utiliser l'option longue:

user@machine:~$ udisksctl mount --block-device /dev/sdc1
Mounted /dev/sdc1 at /media/user/my-data.

Et vous aurez remarqué que je ne suis pas connecté en root.

Vérifions que les options de montage sont correctes:

user@machine:~$ mount | grep sdc
/dev/sdc1 on /media/user/my-data type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

Un montage depuis un clic avec Mate n'aurait pas fait mieux.

Et pour démonter ce volume:

user@machine:~$ udisksctl unmount -b /dev/sdc1
Unmounted /dev/sdc1.

Ces commandes sont évidemment utilisables dans un script même si la manpage d'udisksctl ne le recommande pas.

vendredi 13 janvier 2017

Trier les fichiers et répertoires sous Linux par taille

Quand on doit archiver le contenu d'un répertoire ou qu'on manque de place sur un système de fichiers, la question de savoir quels fichiers ou répertoires occupent le plus d'espace se pose nécessairement.

On voit beaucoup de commandes sur Internet pour trier les fichiers et répertoires sous Linux, à base de find, ls, plus ou moins compliquées, alors que Linux fournit nativement une commande simple pour cet usage, la commande du, qui signifie "disk usage".

Par défaut, la commande du affiche la place utilisée dans chaque répertoire dans /var/log:

du /var/log
1140    /var/log/cups
32      /var/log/mysql
12      /var/log/fsck
48      /var/log/exim4
8       /var/log/dbconfig-common
104     /var/log/apt
4       /var/log/firebird
36      /var/log/lightdm
32      /var/log/tor
4       /var/log/speech-dispatcher
88      /var/log/apache2
14516   /var/log/installer/cdebconf
16724   /var/log/installer
27636   /var/log

Il s'agit de l'espace cumulé dans chaque répertoire: le chiffre affiché pour /var/log/installer tient compte de l'espace occupé par /var/log/installer/cdebconf.

Si on veut que du affiche strictement ce qui est occupé par chaque répertoire, il faut utiliser l'option -S:

du -S /var/log/installer/
14516   /var/log/installer/cdebconf
2208    /var/log/installer/

On retrouve bien que 14516 + 2208 font 16724.

Si vous n'êtes pas convaincus:

du /var/log/installer/
14516   /var/log/installer/cdebconf
16724   /var/log/installer/

Voià pour la base.

Maintenant, on peut obtenir un affiche plus sympatique avec l'option -h, --human-readable:

du -Sh /var/log/
1,2M    /var/log/cups
32K     /var/log/mysql
12K     /var/log/fsck
48K     /var/log/exim4
8,0K    /var/log/dbconfig-common
104K    /var/log/apt
4,0K    /var/log/firebird
36K     /var/log/lightdm
32K     /var/log/tor
4,0K    /var/log/speech-dispatcher
88K     /var/log/apache2
15M     /var/log/installer/cdebconf
2,2M    /var/log/installer
9,2M    /var/log/

Et si on cherche les répertoires qui occupent le plus de place, il suffit de faire appel à la commande sort:

du -Sh /var/log/ | sort -hr
15M     /var/log/installer/cdebconf
9,2M    /var/log/
2,2M    /var/log/installer
1,2M    /var/log/cups
104K    /var/log/apt
88K     /var/log/apache2
48K     /var/log/exim4
36K     /var/log/lightdm
32K     /var/log/tor
32K     /var/log/mysql
12K     /var/log/fsck
8,0K    /var/log/dbconfig-common
4,0K    /var/log/speech-dispatcher
4,0K    /var/log/firebird

Le flag -h de sort signifie --human-numeric-sort, et le flag -r signifie -reverse.

Et si en plus de l'espace occupé par les répertoires, je souhaite inclure celui des fichiers, il faut ajouter aux options de du le flag -a, --all.

Enfin, quand la commande du nous retourne trop de résultats, on peut en limiter l'affichage par un | head -n 25 par exemple.

vendredi 6 janvier 2017

Mate, les médias amovibles et le partage de connexion via USB

Un petit billet rapide pour dépanner ceux qui utilisent la connexion 4G de leur téléphone sur Linux avec Mate, suite à un retour d'expérience quelque peu déplaisant.

Cela fait 3 fois depuis deux jours que mon environnement de bureau se fige avec des démons Mate à 100% de CPU, mate-panel notamment, sans que je comprenne pourquoi.

En fait, quand le téléphone est branché sur le PC pour avoir du réseau et que la configuration de Mate lui indique de monter les médias amovibles à chaud, il arrive que le système devienne instable quand Mate décide soudainement de monter le téléphone en MTP !!!

Il faut donc dans ces cas là désactiver le montage automatique des médias amovibles.

La clé dconf est la suivante: org.mate.media-handling.automount.

Une fois cette option désactivée, plus de bureau Linux qui se fige comme un vulgaire W....

jeudi 29 décembre 2016

Sauvegardez les fichiers importants de votre répertoire HOME en une ligne

On a tous vécu une fois au moins la perte d'un ou de plusieurs fichiers importants que nous n'avions pas jugé bon de sauvegarder. Parfois aussi on croit disposer d'une sauvegarde et ce n'est pas le cas ! Il est donc nécessaire de mettre en place des sauvegardes périodiques et automatiques de tout ou partie de votre répertoire utilisateur.

Sous Linux, la commande de prédilection pour archiver des données est la commande rsync. Nombre de logiciels de sauvegarde sous Linux sont d'ailleurs basés sur rsync. Cette commande dispose comme beaucoup de commandes Unix et Linux de très nombreuses options qui peuvent en dérouter plus d'un. Heureusement, dans le cas d'usage qui est le notre, nous n'en avons besoin que de quelques unes. Mais que cherche t'on à faire exactement ?

On ne veux pas perdre notamment:

  • les fichiers de notre répertoire $HOME, les plus importants étant dans le répertoire Documents
  • certains fichiers de configuration comme .profile, .bashrc, .bash_aliases, .inputrc, .gitconfig
  • les fichiers de configuration de Sublime Text, Remarkable , Emacs ou Tor Browser

En revanche, il est inutile de conserver:

  • les fichiers du répertoire Téléchargements (ou Downloads)
  • les fichiers situés dans Musique (ou Music)
  • de nombreux répertoires commençant par un . (notamment les caches des navigateurs Internet)

Pour répondre à ce besoin, le mode archivage de la commande rsync remplit parfaitement son rôle, c'est à dire qu'il va mettre à jour notre répertoire de sauvegarde avec les fichiers ayant été modifiés depuis la dernière sauvegarde.

Dans ce mode, les options suivantes seront positionnées pour nous:

  • -r, --recursive visite récursive des répertoires
  • -l, --links copie les liens symboliques comme liens symboliques
  • -p, --perms préserve les permissions
  • -o, --owner préserve le propriétaire (root uniquement)
  • -g, --group préserve le groupe
  • -D, --devices préserve les périphériques (root uniquement)
  • -t, --times préserve les dates

Concrètement, pour archiver les données du répertoire /home/user dans le répertoire d'archivage /media/backup, on utilisera un script similaire à celui-ci:

cat /etc/cron.daily/backup-home 
#!/bin/sh

rsync \
    --exclude '.cache' \
    --exclude '.dbus' \
    --exclude '.icons' \
    --exclude '.local' \
    --exclude '.themes' \
    --exclude 'Musique' \
    --exclude 'Téléchargements' \
    --exclude 'Vidéos' \
    --exclude 'VirtualBox VMs' \
    --verbose \
    --archive \
    --log-file=/var/log/backup-home.log \
    /home/user /media/backup

C'est à dire qu'on archive tout ce qui se trouve dans $HOME à l'exclusion d'un certain nombre de répertoires. Par exemple, je n'archive pas les machines virtuelles VirtualBox parce que cela prend beaucoup de place et personnellement ça ne m'est pas utile.

On pourrait simplifier la syntaxe utilisée pour les répertoires commençant par un point, mais le fait de préciser un à un chacun de ces répertoires me permet d'archiver mes dépôts git qui se trouvent dans Documents. De plus utiliser --exclude '.*' ne me permettra pas d'archiver par exemple .profile, .bashrc, ... ni le répertoire .mozilla qui contient le profile de Firefox avec les marques pages.

Les exclusions peuvent s'écrire plus simplement grâce à l'option --exclude-from et l'utilisation d'un fichier.

Voilà pour la sauvegarde. Pour ce qui est du coté périodique de celle-ci, j'ai utilisé anacron avec une sauvegarde quotidienne. C'est très simple, il suffit de créer ce fichier backup-home et de le placer dans le bon répertoire.

Chacun choisira la périodicité qui lui convient. On peut même faire une sauvegarde deux fois par semaine en ajoutant un code conditionnel de sortie en début du script /etc/cron.daily/backup-home.

dimanche 6 mars 2016

Free et connexion Wi-FI: Attention au canal

Sur un PC portable sous Linux j'avais souvent des déconnexions en Wi-Fi à tel point que parfois il devenait impossible de faire quoi que ce soit.

J'ai d'abord cherché sur Internet à partir de l'erreur indiquée dans /var/log/syslog et suis tombé sur des bugs éventuels du noyau Linux. Mais, j'utilise Debian Wheezy sur cette machine et je n'ai pas vraiment envie de m'amuser à installer d'autres noyaux.

Je suis donc allé voir dans l’interface de gestion de Free.

On précise deux choses sur le Wi-Fi:

  • Le canal utilisé,
  • Si la Freebox doit déterminer un canal moins utilisé au démarrage

C'est ce deuxième paramètre qu'il faut activer pour éviter que votre connexion entre en collision avec les autres réseaux Wi-Fi de votre immeuble mais aussi de celui d'à coté !

Il est donc intéressant d'éteindre votre Freebox chaque fois que c'est possible, comme cela vous ne restez pas éternellement sur le même canal. ça m'étonnerait que la box change de canal une fois allumée.

Vous m'avouerez qu'une fois que le canal est choisi de façon automatique, je ne vois pas à quoi sert de spécifier un canal "en dur". Peut-être dans le cas où la procédure automatique échoue.

- page 1 de 2