Catégorie : Ligne de commande

4 août 2015 /

Pour monter un fichier Iso:


mkdir -p /media/iso
mount -o loop cd.iso /media/iso

4 août 2015 /

Il ya une idée répandue parmi les utilisateurs de Linux qui est fausse. A savoir que nos disques n’ont jamais besoin d’être défragmenté. Cette situation découle de la performance des systèmes de fichiers utilisés par la plupart des distributions, y compris EXT2,3 et 4, JFS, XFS, ZFS, ReiserFS et BTRFS. Tous ont une façon intelligente de fonctionnement  et de techniques en ce qui concerne l’allocation des fichiers dans les disques, en minimisant le problème de la fragmentation à un tel point qu’il n’y a pratiquement aucune raison de défragmenter son disque même après de nombreuses années d’utilisation, d’installation et de désinstallation d’applications et de bibliothèques.

Les fichiers sont stockés à plusieurs endroits sur le disque, laissant d’immenses espaces entre eux, leurs permettant de grandir au fil du temps si nécessaire, contrairement aux systèmes de fichiers comme les NTFS, qui place les fichiers côte à côte.
Si le disque devient saturé et qu’un fichier a besoin de plus d’espace sans découper le fichier, Un système de fichiers Linux tentera de réécrire complètement le fichier sur un autre secteur qui a assez d’espace pour le stocker en entier. De cette façon, tout est propre, bien rangé et sur tout, en un seul morceau. Cela va générer au fil du temps des espaces vide sur le disque.

Voici donc comment faire face à ce problème et comment défragmenter son disque sous Linux:

La première chose à faire c’est d’installer un outil de défragmentation. Il y a beaucoup de défragmenteurs disponibles pour de Linux, je vais utiliser « e4defrag», il y a de grande chance qu’il soit déjà installé sur votre système. Le programme de e4defrag fait partie du paquet e2fsprogs qui devrait déjà être installé sur votre ordinateur.

Dans le cas où le programme est manquant, vous pouvez l’installer avec cette commande sur Ubuntu:

sudo apt-get install e2fsprogs

Grâce à cet outil, vous pouvez déterminer si vous avez des fichiers fragmentés et le niveau de gravité de la fragmentation.
Pour cela, ouvrez un terminal et tapez:

sudo e4defrag -c /emplacement

Ici, j’ai scanné mon /home et e4defrag a trouvé cinq fichiers fragmentés. Mon niveau de fragmentation est cependant assez faible donc une défragmentation ne fera pas beaucoup différente en termes de performance pour mon système dans ce cas de figure.

e4defrag

Si cette sortie rapportée plus de « 30 » fichiers fragmentés, une petite défragmentation serait une bonne idée.

 

Voyons maintenant comment défragmenter ses fichiers.
Dans un premier temps, je vais montrer comment défragmenter ses fichiers fragmentés un par un.

Pour ce faire, on utilise la commande ed4defrag suivit du chemin du fichier:

sudo e4defrag /chemin/fichier/fragmenté

Exemple en image:

e4defrag2

Maintenant si vous souhaitez défragmenter un disque entier, alors vous devrez d’abord démonter toutes les partitions puis d’exécuter la commande suivante:

sudo e4defrag /dev/*

Si vous souhaitez défragmenter le disque entier sans démonter les partitions:

sudo e4defrag /

Si vous avez un SSD, il est tout simplement inutile de se soucier de fichiers fragmentés car ces disques peuvent accéder à leurs cellules stockage au hasard, alors que les disques durs le font séquentiellement.
Défragmenter votre SSD ne fera qu’augmenter le nombre d’accès en lecture/écriture et ainsi réduire sa durée de vie.

3 août 2015 /

Pour supprimer tous les fichiers « .db » a partir du répertoire courant:

find . -type f -name "*db" -exec rm -f {} \;

Pour supprimer tous les fichiers « .db » à partir de la racine en demandant une confirmation:

find . -type f -name "*.db" -exec rm -i {} \;

Pour supprimer tous les repertoires se terminant par « db » à partir du répertoire courant:

find . -type d -name "*db" -exec rm -rf {} \;

3 août 2015 /

Pour pouvoir faire les commande de cet article, vérifiez la présence sur votre système des outils suivants :

  1. Pciutils
  2. Usbutils
  3. Smartmontools

Pour obtenir des informations sur sa carte mère ainsi que sur votre matériel:

dmidecode:

Pour afficher le type de processeur pour lequel est compilé le noyau :

uname -p

Pour afficher les informations du fabricant, du bios, le modèle:

cat /proc/cpuinfo

Pour afficher la charge moyenne du processeur:

cat /proc/loadavg

Pour déterminer l’activité du CPU:

top

Pour avoir un etat des processus:

ps -ef

Pour afficher la quantité de mémoire utilisée:

free -mt

Pour avoir des informations détaillées:

cat /proc/meminfo

Pour connaitre la vitesse et la température du ventilateur (paquet « lm-sensors »necessaire):

sensors-detect

Cela vous indiquera un nom pour chaque composant.

Pour obtenir des informations un composant:

modeprobe + nom du composant

Pour connaître le modèle et le nom de sa carte graphique :

lspci | grep VGA

Pour vérfier la présence de l’accélération graphique:

glxinfo | grep rendering

Calculer le nombre de fps :

glxgears

Pour obtenir des informations sur les Cartes PCI (rajouter un « v » augmente le detail des informations):

lspci -v

lspci -vv

lspci -vvv

Pour obtenir vendeur et code des peripheriques sur les Cartes PCI

lspci -n

Pour visualiser toutes les informations sur /dev/sda1:

smartctl -a /dev/sda1

ou

smartctl -t long /dev/sda1

ou

hdparm -i /dev/sda1

Pour taux d’occupation des disques:

df -h

Pour Taux d’utilisation d’un répertoire sur le disque:

du -h /home/starmate

Pour obtenir des informations sur les périphériques USB:

lsusb

Pour afficher  la version du noyau :

uname -r

2 août 2015 /

Logrotate est conçu pour faciliter l’administration des systèmes qui génèrent un grand nombre de journaux. Il automatise la permutation, la compression, la suppression, et l’envoi des journaux. Chaque journal peut être traité quotidiennement, hebdomadairement, mensuellement, ou quand il devient trop volumineux.

Il est lance automatiquement via /etc/cron.daily/logrotate.

La configuration de logrotate se fait en deux parties :

  • 1 –  les options générales (le fichier de configuration par défaut est /etc/logrotate.conf)
  • 2 –  les fichiers à archiver et les options spécifiques à leurs archivages (les fichiers particuliers se trouvent dans /etc/logrotate.d/).

1 – Voici un exemple de /etc/logrotate.conf:

# see "man logrotate" for details
# Fréquence de rotation par défaut :
weekly
# Utilise par defaut le groupe syslog, avec l'utilisateur roots
su root syslog
#nombre de semaine où sont conservé les logs ( a cause de weekly plus haut)
rotate 4
# Lors d'une rotation, un fichier de remplacement est créé avec les droits 0640 appartenant à
# root et au groupe root.
create 0640 root root
# Le fichier sur le point d'expirer est envoyé à cette adresse:
mail starmate@entropia
# Insertion de la date dans l'archivage des journaux.
dateext
# Les logs sont compréssé avant rotation :
#compress
# Inclusion des scripts propres aux logs.
include /etc/logrotate.d
# Définition de la rotation des logs de wtmp et btmp :
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0660 root utmp
rotate 1
}
# system-specific logs may be configured here

 

Voici les options les plus utilisés:

  • compress : impose la compression des anciens fichiers de log au format gzip.
  • compresscmd Permet de définir la commande à exécuter pour la compression.
  • compressext, uncompresscmd et compressoptions Permettent respectivement de définir l’extension des fichiers compressés, la commande utilisée pour décompresser les archives et les options de compressions à passer a l’outil de compression.
  • copytruncate : copie le fichier de log original, le compresse et vide ensuite le journal système d’origine. Cette notion est très importante car elle répond aux problème du type : “je logue dans le fichier que j’archive…” qui peut poser quelques problèmes à certains services…
  • create : Permet de spécifier les droits, le propriétaire et le groupe auquel un nouveau fichier de log vide devra appartenir après avoir été archivé.
  • daily, weekly, monthly et yearly : Spécifie quand un fichier doit être archivé.
  • dateext : Par défaut, les fichiers archivés sont numéroté de 1 à N, l’option dateext remplace cette numérotation par la date. Si le format de date par défaut ne vous convient pas, il peut être spécifié par l’option “dateformat“.
  • dateformat -%Y-%m-%d:  Spécifie la façon dont est écris la date sur le fichier archivé. Les valeurs par defaut sont  -%Y%m%d.
  • dateyesterday: Utilisez la date d’hier au lieu d’aujourd’hui pour créer l’extension dateext , de sorte que le fichier en rotation possède une date dans son nom qui soit la même que ses données.
  • delaycompress : Reporte la compression du journal précédent au prochain cycle de permutation. Ceci n’a un effet qu’utilisé en combinaison avec l’option compress. Elle peut être utilisée quand il n’est pas possible de demander à un programme de fermer son journal et qu’il puisse par conséquent continuer à écrire pour un moment dans le journal précédent.
  • extension log:  Vous avez un fichier journal nommé journal.log et que vous voulez le faire pivoter à journal.1.log.gz lieu de journal.log.1.gz .
  • ifempty : oblige la rotation des logs même si le fichier est vide… (ce qui simplifie les recherche parfois…).
  • include fichier_repertoire: Permets de renseigner un fichier ou répertoire contenant une configuration a prendre en compte.
  • mailfirst, maillast, mail adresse@domain : après un certain délais, les archives peuvent être automatiquement détruites. Dans ce cas, si maillast est définit, le fichier détruit est envoyé par mail a l’adresse spécifiée par la variable “mail“. Si mailfirst est définit, c’est la dernière rotation qui est expédiée.
  • maxage : définit l’age maximum des archives (en jours).
  • maxsize: demande la rotation des log si le fichier fait au maximum la taille définie par cette variable.
  • minsize : demande la rotation des log si le fichier fait au minimum la taille définie par cette variable.
  • missingok : aucune erreur n’est remontée si la rotation d’un fichier de log spécifié est absent.
  • notifempty : n’archive aucun fichier vide.
  • nocompress: Les vieux log ne sont pas compressés.
  • nocopytruncate: Ne tronque pas le journal original en place après avoir créé une copie (ceci outrepasse l’option copytruncate).
  • nocreate: Les nouveaux journaux ne sont pas créés (ceci outrepasse l’option create).
  • nodelaycompress: Ne reporte pas la compression du journal précédent au prochain cycle de permutation (ceci outrepasse l’option delaycompress).
  • nomail: N’envoie aucun journal.
  • nomissingok: Si un journal n’existe pas, produit une erreur (ceci est la valeur par défaut).
  • noolddir: Les journaux sont permutés dans le répertoire où ils résident normalement (ceci outrepasse l’option olddir).
  • size : les fichiers ne sont archivés que si leur taille dépasse la valeur définie ici.
  • olddir : précise le répertoire dans lequel placer les archives.
  • prerotate, postrotate/endscript : définissent respectivement une séquence de script à effectuer avant ou après la rotation des logs (redémarrage d’un service, etc.).
  • firstaction, lastaction/endscript : définissent des séquences de scripts à exécuter avant et après avoir archivé les logs.
  • rotate : spécifie le nombre d’archives a conserver. Passé ce nombre les archives sont soit détruite (comportement par défaut) soit envoyées par mail voir mail* ci dessus.
  • sharedscripts : permet d’executer qu’ une fois le script postrotate par rotation
  • shred: Supprime les log en utilisant shred
  • start count: C’est le chiffre à utiliser pour commencer la numérotation. Par exemple , si vous spécifiez 0 , les journaux seront créé en commençant la numérotation par 0. Si vous spécifiez 9 , les fichiers journaux seront créés avec un en commençant par 9 , en sautant 0 à 8 .
  •   tabooext [+] list: Change la liste courante des extensions taboues (voir la directive include pour les informations sur les expressions taboues). Si un + précède la liste d’extensions, la liste courante des expressions taboues est augmentée, sinon elle est remplacée. Au démarrage, la liste des extensions taboues contient .rpmorig, .rpmsave, .v et ~.

2 – Déclarer les fichiers à archiver

Voici comment on déclare un fichier de log pour le mettre dans la rotation (à mettre dans un fichier spécifique dans le répertoire /etc/logrotate.d/:

/chemin/du/fichier/nom_du_fichier_log {
options propres au fichier
}

Exemple avec dpkg:

cat /etc/logrotate.d/dpkg

/var/log/dpkg.log {
monthly #tous les mois
rotate 12 #conserve 12 fichiers
compress #compresse les fichiers
delaycompress #Reporte la compression du journal précédent sur le prochain
missingok #aucune erreur n’est remontée si la rotation d’un fichier de log spécifié est absent.
notifempty # n’archive aucun fichier vide.
create 644 root root #lors d'une rotation, un fichier est créé avec les droits 0640 appartenant à root:root.
}
/var/log/alternatives.log {
monthly #tous les mois
rotate 12 #conserve 12 fichiers
compress #compresse les fichiers
delaycompress #Reporte la compression du journal précédent sur le prochain
missingok #aucune erreur n’est remontée si la rotation d’un fichier de log spécifié est absent.
notifempty # n’archive aucun fichier vide.
create 644 root root #lors d'une rotation, un fichier est créé avec les droits 0640 appartenant à root:root.
}

Une fois la configuration terminée, on peut forcer sont exécution:

logrotate -f  /etc/logrotate.conf

en mode Debug:

logrotate -d /etc/logrotate.conf