P3 A new story begins

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

mardi 12 juillet 2011

To Bom or not To Bom

Qu'y a t-il de plus pénible que de s'apercevoir que son script shell tout fraichement déployé sur un serveur ne fonctionne pas correctement à cause de problème d'encodage ...

Avec une erreur du style ou autre

-bash: ./ttoto.sh : /bin/bash^M : mauvais interpréteur: Aucun fichier ou dossier de ce type

2 problèmes peuvent survenir, l'encodage des retours à la ligne et l'en tête BOM.

Il faut noter que certaines versions d'UNIX sont compatible avec les retours lignes CR+LF et avec BOM , dans ce cas veuillez vérifier que votre fichier est bien exécutable.....

Pour le premier, il suffit de convertir les retours ligne au format UNIX,

Pour rappel :

  1. Windows : <CR><LF>
  2. Unix : <LF>
  3. Mac : <CR>

CR => Carriage return \r en UTF-8 => 0D LF => Line Feed \n , en UTF-8 => 0A

Dans Notepad++ on peut facilement visualiser les retours ligne en activant l'option Affichage>Symboles spéciaux>Afficher tous les caractères

bom_1.png

On peut aussi facilement convertir les retours ligne en version UNIX

bom_2.png

Par défaut Eclipse utilise les retours lignes spécifiés dans Windows>Preferences>General>Workspace>New text file line delimiter avec l'encodage spécifié Windows>Preferences>General>Workspace>Text file encoding. Si toutefois votre script ne fonctionne pas et vous dit qu'il y a un problème avec le shebang #! (/bin/bash) alors vous devez avoir un problème de BOM (Byte Order Mask)

Ouvrez votre fichier avec un éditeur héxadécimal:

bom_4.png

Pour un fichier UTF-8 on s'apercoit qu'il y a la séquence EF BB BF qui est mal interprété par le shell bash

Dans Notepad++ réencoder le fichier SANS BOM.

bom_3.png

et maintenant votre script fonctionnera correctement.

On peut aussi noter que le plugin maven-assembly-plugin propose un attribut fort utile pour mettre à jour les saut de ligne à la volée :

  1. Element : lineEnding
  2. 1.0.0+
  3. Sets the line-endings of the files in this fileSet. Valid values:
  4. - "keep" - Preserve all line endings
  5. - "unix" - Use Unix-style line endings
  6. - "lf" - Use a single line-feed line endings
  7. - "dos" - Use DOS-style line endings
  8. - "crlf" - Use Carraige-return, line-feed line endings

vendredi 17 juin 2011

Byobu

Nouveauté de la version 11.04 d'Ubuntu, Byobu est utilisé par défaut

Il permet de révolutionner votre shell préféré et surtotu de vous faire gagner un maximum de temps ! Vous pouvez avoir plusieurs onglets ouvert (ouverture avec F2) et les parcourir avec les touches F3 et F4

Byobu_1

En appuyant du F9 on peut configurer byobu :

Byobu_2

Je préfère afficher d'autres informations car je connais parfaitement l'ip de ma machine et je sais pertinemment qu'elle tourne sous Ubuntu 11.04 (je vous parle même pas de mon login), Le nom de la machine peut être intéressant quand on administre plusieurs machines simultanément, personnellement je préfère changer de couleur de fond d'écran (avec des couleurs pastels pour éviter que le fond rouge de la prod me rende épileptique).

A noter si vous ouvrez une session SSH depuis Windows avec Putty il vous faudra chancger un paramétrage (Xterm R6) pour débloquer les touches F1-F4

Byobu_3

Byobu vous propose 3 écrans par défaut:

  1. le gestionnaire des tâches
  2. Un concentré de fichier log
  3. l'état de vos disques dur (en image)

Byobu_5

Vous pouvez également créer vos propres fenêtres avec la commande de votre choix, par exemple un watch sur un fichier de log bien précis pour un serveur de production

Byobu_5

jeudi 3 février 2011

Liens utiles pour accéler le démarrage d'Ubuntu

Profilage de grub:

http://aroundtheweb.info/2010/09/how-to-speed-up-ubuntu-10-10-maverick-meerkat-boot-time-with-profiling/

Désactivation des services non utilisés :

http://www.extremetech.com/article2/0,2845,2114124,00.asp

jeudi 23 décembre 2010

Fixer la vitesse du processeur par défaut sous Ubuntu (linux)

Pour fixer la vitesse par défaut de votre processeur voici la manipulation à faire (testé avec Ubuntu 10.10) :

  1. sudo apt-get install sysfsutils
  2. sudo nano /etc/sysfs.conf

Ajouter ceci

  1. devices/system/cpu/cpu0/cpufreq/scaling_governor = userspace
  2. devices/system/cpu/cpu0/cpufreq/scaling_setspeed = 2000000
  3. devices/system/cpu/cpu1/cpufreq/scaling_governor = userspace
  4. devices/system/cpu/cpu1/cpufreq/scaling_setspeed = 2000000

Pour ma part j'ai mis 2000000 pour avoir mes 2 cœurs qui tournent à 2.0Ghz au lieu de 2.9 Ghz, pour garantir le maximum de réactivité à mon pc cinédom sous xbmc/ubuntu tout en economisant quelques Watt et donc quelques degrés. Le tout est refroidi par un ventilateur slim de 12cm de Scythe surmontant un dissipateur NT07 Pro de Silverstone, et avec un SSD OCZ fonctionnement silencieux garanti.

Puis n'oubliez pas de désactiver le gouverneur par défaut qui dans mon cas me bascule les 2 cœurs à 1 Ghz

  1. sudo update-rc.d ondemand disable

Puis un petit sudo reboot et c'est dans la poche

Vous pouvez mettre un autre gouverneur et d'autres valeurs selon vos besoins

voici les différents paramètres :

  1. cpuinfo_cur_freq: la fréquence actuelle de votre proc
  2. cpuinfo_max_freq:la fréquence maximum
  3. cpuinfo_min_freq: la fréquence minimum
  4. scaling_available_frequencies: les fréquences disponibles
  5. scaling_available_governors: les gouverneurs disponibles
  6. scaling_cur_freq
  7. scaling_driver: le pilote du processeur utilisé
  8. scaling_governor: le gouverneur en action
  9. scaling_max_freq
  10. scaling_min_freq

vendredi 8 janvier 2010

Dns

Memento pour les dns par défaut d'ubuntu (config réseau)

Nice find.

nsswitch.conf specifies which name service to use for a particular machine: NIS, NIS+, DNS, or local files etc

The list you see specifies in which order it should use the various resources.

Code:

  1. hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

files: Network Database Local Files hosts /etc/inet/hosts netmasks /etc/inet/netmasks ethers /etc/ethers bootparams /etc/bootparams protocols /etc/inet/protocols services /etc/inet/services networks /etc/inet/networks

mdns4: multicast DNS service discovery. It allows programs to publish and discover services and hosts running on a local network with no specific configuration. For example you can plug into a network and instantly find printers to print to, files to look at and people to talk to. mdns4_minimal is obviously a minimal subset of mdns4

dns: your normal DNS service

NOTFOUND=return: means that the search for an entry should stop if the search in the previous entry turned up nothing. Note that if the search failed due to some other reason (like no NIS server responding) then the search continues with the next entry.

From the bit of reading I've done it is suggested that mdns only be called after dns if dns fails. I dont see how mdns is going to benefit you if you only have one pc on the LAN. Then again i'm not clued up on mdns at all so i might be sprouting nonsense.

Ive changed mine to reflect as: hosts: files dns mdns4_minimal NOTFOUND=return mdns4

I'll see if this improves anything.