Starmate Posts

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

1 août 2015 /

Voici une solution simple qui permet de limiter les écritures sur votre disque SSD afin de prolonger sa durée de vie.

Pour cela, nous allons utiliser l’outil Ramlog qui crée un disque temporaire en mémoire vive, où sont stockés et mis à jour les logs. Les logs originels sont conservés dans le répertoire /var/log.hdd jusqu’à l’arrêt de ramlog où à ce moment elles prennent le chemin inverse. Donc pas de perte de logs systèmes sauf bien sûr si votre ordinateur plante.

On va également placer le paramètre « swappiness ». Ubuntu est conçu pour mettre directement en SWAP, ce qui est destiné à la RAM à partir d’un certain taux d’occupation.
Par défaut ce paramètre est réglé à 60 sur Ubuntu. Cela signifie qu’à partir de 40% d’occupation en RAM, le système part écrire dans la SWAP. On va réduire cette valeur à 90.

On va aussi changer la destination du cache de Firefox et les options de montages des disques.

Cela limitera ainsi grandement le nombre d’accès en écriture sur la carte.

Installation de ramlog sur Ubuntu

Il faut d’abord télécharger le paquet .deb:

wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb

Maintenant que nous avons le  paquet ramlog_2.0.0_all.deb, il faut l’installer:

sudo dpkg -i ramlog_2.0.0_all.deb

On active Ramlog au démarrage:

sudo update-rc.d ramlog start 2 2 3 4 5 . stop 99 0 1 6 .

Il ne reste plus qu’a redémarré:

sudo reboot

Pour voir l’état de Ramlog il suffit d’utiliser la commande suivante :

/etc/init.d/ramlog status

En cas de problème la log de Ramlog peut être consulté:

more /var/log/ramlog

Pour désinstaller Ramlog :

sudo dpkg -P ramlog

Vous pouvez modifier la configuration de Ramlog en éditant le fichier /etc/default/ramlog.

 

Modification du Swappiness

On édite le fichier:

vi /etc/sysctl.conf

On recherche ensuite le paramètre « vm.swappiness=60 » suivant.

S’il n’est pas présent, ajoutez le et mettez la valeur à 10 pour indiquer au système d’écrire en SWAP à partir de 90% d’occupation de la RAM:

vm.swappiness=10

Il ne vous reste plus qu’a redémarrer votre système pour en profiter.

Vous pouvez aussi supprimer votre partition Swap soi votre machine à beaucoup de Ram ( > à 6 Go).

Pour cela, soit vous ne créer aucune partition swap lors de l’installation du système, soit vous commentez la ligne de montage du fichier swap dans le fichier /etc/fstab:

# swap was on /dev/sda5 during installation
#UUID=1f4d44e9-25bc-43f3-abe7-5a3d002b0d3a none            swap    sw              0       0 

Ne pas écrire sur le disque la date du dernier accès

Montez vos partitions avec l’ option  » noatime » en ouvrant le fichier /etc/fstab:

UUID=5afbf352-08d6-b368-3be6e4574b7c /               ext4    noatime,errors=remount-ro 0       1 

Mettre les fichiers temporaires ( ~ )en mémoire vive

Ajoutez la ligne suivante à la fin du fichier /etc/fstab pour mettre les fichiers temporaires en mémoire vive:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0 

 

# swap was on /dev/sda5 during installation
#UUID=1f4d44e9-25bc-43f3-abe7-5a3d002b0d3a none            swap    sw              0       0 

Déplacer le cache Firefox

Tapez about:config dans firefox et puis créez une nouvelle chaîne de caractères que vous nommerez browser.cache.disk.parent_directory et saisir comme destination /tmp/firefox. Vous pouvez également si vous avez une connexion suffisamment rapide, désactiver le cache persistant en modifiant l’option browser.cache.disk.enable avec la valeur false.

 

Activer le Trimming

Vous devez d’abord vérifier que votre SSD supporte la fonction TRIM avec cette commande:

sudo hdparm -I /dev/sda

Cela va lister tous les paramètres et fonctionnalités du SSD. Dans le paragraphe « Commands/features » une ligne doit clairement indiquer le support TRIM:

/dev/sda:

ATA device, with non-removable media
Model Number:       OCZ-VERTEX4
Serial Number:      OCZ-695030Z008038154
Firmware Revision:  1.5
Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.6, SATA Rev 3.0
Standards:
Supported: 9 8 7 6
Likely used: 9
Configuration:
Logical        max    current
cylinders    16383    0
heads        16    0
sectors/track    63    0
--
LBA    user addressable sectors:  250069680
LBA48  user addressable sectors:  250069680
Logical  Sector size:                   512 bytes
Physical Sector size:                   512 bytes
Logical Sector-0 offset:                  0 bytes
device size with M = 1024*1024:      122104 MBytes
device size with M = 1000*1000:      128035 MBytes (128 GB)
cache/buffer size  = unknown
Nominal Media Rotation Rate: Solid State Device
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16    Current = 16
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
Enabled    Supported:
*    SMART feature set
Security Mode feature set
*    Power Management feature set
*    Write cache
*    Host Protected Area feature set
*    WRITE_BUFFER command
*    READ_BUFFER command
*    NOP cmd
*    DOWNLOAD_MICROCODE
*    48-bit Address feature set
*    Mandatory FLUSH_CACHE
*    General Purpose Logging feature set
*    WRITE_{DMA|MULTIPLE}_FUA_EXT
*    64-bit World wide name
*    Write-Read-Verify feature set
*    WRITE_UNCORRECTABLE_EXT command
*    Gen1 signaling speed (1.5Gb/s)
*    Gen2 signaling speed (3.0Gb/s)
*    Gen3 signaling speed (6.0Gb/s)
*    Native Command Queueing (NCQ)
Non-Zero buffer offsets in DMA Setup FIS
*    DMA Setup Auto-Activate optimization
*    In-order data delivery
*    DOWNLOAD MICROCODE DMA command
*    WRITE BUFFER DMA command
*    READ BUFFER DMA command
       *    Data Set Management TRIM supported (limit 16 blocks)
Security:
Master password revision code = 65534
supported
not    enabled
not    locked
not    frozen
not    expired: security count
not    supported: enhanced erase
20min for SECURITY ERASE UNIT. 400min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5e83a9749d61c923
NAA        : 5
IEEE OUI    : e83a97
Unique ID    : 49d61c923
Checksum: correct 

 

Si le SSD supporte le Trimming, Il suffit d’éditer le fichier /etc/fstab et de rajouter l’option discard sur les volumes en ext4:

# / was on /dev/sda1 during installation
UUID=5afbf352-08d6-b368-3be6e4574b7c /               ext4    noatime,discard,errors=remount-ro 0       1 
31 juillet 2015 /

Afficher l’état de tous les services:

svcs -a

Afficher l’état d’un service en particulier:

svcs ssh

Rechercher un service:

svcs -a | grep ssh

Activer / désactiver / relancer / relire le fichier de conf :

svcadm enable ssh
svcadm disable ssh
svcadm restart ssh
svcadm refresh ssh

On peut tuer un service (ici Cron) avec une des commandes suivante :

pkill -9 cron
svcs –p cron

Connaitre les services en erreurs :

svcs -x

Connaitre les services en erreur et les impacts:

svcs -x -v

Connaitre les processus associés a un services:

svcs -p network/smtp:sendmail

STATE STIME FMRI
online 18:20:30 svc :/network/smtp:sendmail
18:20:30 655 sendmail
18:20:30 657 sendmail

Puis:

ps -fp 655,657

Connaitre les services qui dépende d’un autre (ici sendmail):

svcs -d network/smtp:sendmail

Connaître les services nécessaires pour lancer un service donné(ici sendmail):

svcs -D network/smtp:sendmail