Notion de Swappiness

Dans mon dernier article, ajouter-du-swap-gnu-linux, je vous parlez de la notion de Swappiness.

Le Swappiness est une propriété du noyau Linux qui définit la fréquence d’utilisation de l’espace d’échange par le système. La valeur de Swappiness doit être comprise entre 0 et 100. Une valeur faible fera en sorte que le noyau essaiera d’éviter l’échange lorsque cela est possible, tandis qu’une valeur élevée fera en sorte que le noyau utilisera l’espace d’échange de manière plus agressive.

Autrement dit, si je mets 0, le noyau n’utilisera pas du tout le swap. Au contraire, si je mets 100, le swap sera toujours utilisé.

Par défaut, la valeur est à 60. Si je veux voir la valeur présente sur votre machine, il suffit de taper cette commande :

Continuer la lecture

Ajouter du swap (GNU/Linux)

Lorsque nous utilisons des applications, il peut arriver que celles-ci soient énormément gourmandes en ressources. Comme je le disais déjà dans mon article Comment vide le swap (GNU/Linux) Il existe le Swap pour parer ce genre de problème.

Le swap, aussi appelé espace d’échange, permet de simuler une mémoire vive à partir d’une mémoire de masse (disque dur).
En effet, celui-ci sert alors à décharger des données de la mémoire vive dans l’espace d’échange.

Continuer la lecture

Vider le swap (GNU/Linux)

Lorsque nous utilisons des applications, il peut arriver que celles-ci soient énormément gourmandes en ressources.

Il existe le Swap pour parer ce genre de problème.

Le swap, aussi appelé espace d’échange, permet de simuler une mémoire vive à partir d’une mémoire de masse (disque dur). Celui-ci sert alors à décharger des données de la mémoire vive dans l’espace d’échange.

Malheureusement, il peut arriver que suite à l’utilisation du swap, que celui-ci ne se vide pas correctement, malgré la disponibilité de RAM. Il faut alors décharger manuellement le swap.

Dans un premier temps, vérifions l’utilisation de la RAM et du Swap

free -h

Il est aussi possible d’utiliser d’autres outils comme htop ou top en fonction de vos habitudes 🙂

Maintenant nous allons vider le swap. Pour ce faire, rien de plus simple sous Gnu/linux. Il suffit de taper la commande suivante :

swapoff -a && swapon -a

Attention, afin de décharger le swap, il faut s’assurer qu’il y est suffisamment d’espace RAM, sinon un message d’erreur apparaîtra.

Not able to execute a .sh file: /bin/bash^M: bad interpreter

Il y a quelques mois (déjà …), alors que je modifiais des scripts Linux d’installation automatique de logiciels, je me suis retrouvé avec le message suivant dans ma console.

Not able to execute a .sh file: /bin/bash^M: bad interpreter

Sur le moment je n’ai pas trop compris d’où venait le problème. Et puis je me suis rendu compte que j’avais effectué des modifications du script depuis une machine Windows et j’avais commit la nouvelle version vers mon Git.

D’où viens le problème ?

En fait, le fichier a été transféré entre des systèmes de types différents avec des conventions de nouvelle ligne différentes.
Les éditeurs de texte Windows auront un caractère de retour chariot spécial (CR + LF) à la fin des lignes pour indiquer un retour de ligne ou une nouvelle ligne, qui sera affiché de manière incorrecte sous Linux (^ M).
Souvent, c’est parce que le fichier est créé ou peut-être même édité sur un ordinateur Microsoft Windows, puis téléchargé ou transféré sur un serveur Linux. Cela se produit généralement lorsqu’un fichier est transféré à partir de MS-DOS (ou MS-Windows) sans mode ASCII ou texte.
Cela peut être difficile à détecter. En effet, certaines applications ou programmes gèrent correctement les caractères de nouvelle ligne alors que d’autres non.
Ainsi, certains services peuvent tomber en panne ou ne pas répondre correctement.

Comment résoudre le problème ?

Il existe plusieurs solutions possible 🙂

  • Le logiciel/paquet dos2unix
dos2unix monfichierAmodifier
  • sed
sed -e "s/\^M//"  monfichierAmodifier  > monfichierModifier 
  • Vim (ma solution préféré mais pas aussi rapide que dos2unix)

Après avoir ouvert le fichier avec Vim taper

:%s/^M//g

Et voilà, vous ne devriez plus avoir de soucis 🙂

Re-génération de la configuration de yunohost (mailman)

Suite à mise à jour d’une plateformes Yunohost (utilisée dans de nombreuses associations) j’ai eu un gros problème. Les configurations des envois sur les listes de diffusion gérer par Yunohost ne fonctionnaient plus.

Après une lecture des logs, je me suis aperçu que les e-mails ne s’envoyer plus à cause d’un problème de droits ….

Du coup, comme ce problème survient suite à une mise à jour, obligation de changer la configuration. Le mieux étant de simplement faire une re-génération de la config.
Néanmoins, en fonction des associations, mes configurations sont gérées de façon différente. Il est donc nécessaire de s’assurer avant toutes manipulations que je ne vais pas perdre des informations sur la modification du fichier.

Pour ce faire, je me connecte au serveur et j’utilise la commande suivante afin d’avoir un retour sur les ajouts (indiqué par un +) et les suppressions (indiqué par un -) par rapport au fichier conf de base :

yunohost service regen-conf --dry-run -d

Une fois les informations récupérées (si nécessaire), il suffit de taper la commande suivante pour re-générer le fichier de configuration :

yunohost service regen-conf 

Et voilà 😉
Dans mon cas ça me règle (en général) tous mes problèmes après une grosse mise à jour.

Vérification et amélioration des scripts shell

Il y a quelques jours je retweeter un article concernant un petit logiciel/outils nommée ShellCheck.

Ce n’est pas la première fois que j’en entendais parler, mais j’avoue que je ne l’avais pas encore testé. Ce qui est maintenant chose faite, et je dois dire que… hé ben c’est super 😀

Pour l’installer sur votre machine Gnu/Linux c’est plutôt simple. Voici comment faire sur une distribution Debian/Ubuntu :

Continuer la lecture

Script Installation automatique

Suite à mon article script d’installation automatique de teamviewer sous linux je me suis dit qu’il serait intéressant d’écrire un petit script afin de faire l’installation d’un pack de logiciels que je considère comme important.

Il ce trouve que j’installe très (très) régulièrement des machines pour des tests ou dans le cadre de mon engagement dans des GUL (groupe d’utilisateur de linux et de logiciels libre).

Voici donc le lien pour faire une auto installation des logiciels : Gitlab:Linux_AutoInstallPack.sh

[MAJ] Script d’installation automatique de Teamviewer sous linux

Il y a un mois environ, j’avais mis à disposition un Script d’installation automatique de Teamviewer sous linux que j’avais écris rapidement.

Petit article rapide pour vous informer que je viens de le mettre à jour. J’ai ajouté un test afin de savoir la version du système pour télécharger et installer la bonne version (32-64 bits).

Pour le récupérer : https://gitlab.com/christiansueur/Linux_AutoInstall_Teamviewer/blob/master/AutoInstallTM.sh

Script d’installation automatique de Teamviewer sous linux

Il y a quelques semaines, j’avais écrit un article concernant l’installation de Teamviewer sous Gnu linux.

J’avais assez rapidement écrit un script permettant de m’automatiser l’installation. Pourquoi le faire à la main si je peux le faire en automatique : D

Bon j’ai un peu fait mon bourrins (je balance un update et upgrade obligatoire mais bon …)

Si vous êtes intéressé par ce script, vous pouvais le télécharger sur mon accès gitlab public : https://gitlab.com/christiansueur/Linux_AutoInstall_Teamviewer/tree/master fichier nommé AutoInstallTM.sh

 

Accéder à l’ID Teamviewer Linux depuis Windows

J’ai eu dans la nécessite d’écrire un code script, il y a quelques jours, pour permettre à des utilisateurs d’accéder facilement à leur identifiant Teamviewer Linux depuis leur machines Windows (car depuis leur machine Linux ils ne peuvent accéder qu’a une interface limité).

Du coup, pour facilité la chose, j’ai uniquement mis en place un fichier bat sur leur bureau Windows qui permet en finalité d’ouvrir une fenêtre à l’écran avec leur ID.

Malheureusement pour faire cela, je me suis confronté à quelques soucis de droits. La solution à donc été de:

  • Créer un dossier partagé sous linux (samba) (voir mon article Samba : introduction rapide aux partage de fichier Linux/Windows)
  • Créer un script Linux qui récupère l’ID et qui le rentre dans un fichier .vbs
  • Créer un script sous windows qui monte le lecteur réseau, copie le vbs, le lance, et déconnecte le lecteur réseau.

Pourquoi faire une copie …malheureusement, avec la gestion des droits, impossible de lancer le script directement depuis un interpréteur de commande ou depuis un script (pourtant le côté graphique fonctionne parfaitement). Il ce trouve que je ne suis pas le seul à avoir ce problème et c’est la seule solution que j’ai (nous avons) trouvé.

Voici la solution mis en place …

Continuer la lecture