Linux

Apprendre a utiliser VIM Réglage

Par défaut Vim va créer un fichier d’undo et de backup, pour ne pas avoir ces deux fichiers ‘ finissant par ~ et un.~ : caractère tilde) qui risquent de polluer votre répertoire, il vous faut éditer la fichier de configuration _vimrc situé dans le répertoire d’installation de Vim. Pour Windows allez à Programme Files.

Vim configuration de base

Mettez y ces quelques lignes et sauvez, c’est fait !

set nobackup
set nowritebackup
set noundofile

VIM afficher les numéro de lignes:

En mode navigation, tapez « : » puis set number ou set nu

Pour enlever les numéros de ligne :

set nonumber ou set nonu

Pour avoir les numéros de ligne systématiquement, il faut éditer le fichier .vimrc

Ajoutez la ligne set number

VIM éditer deux fichiers dans une même fenêtre de terminal

vi -o fichier1 fichier2
debian

Linux Connaitre le traffic généré sur son serveur simplement avec ifconfig

Pour connaitre le trafic depuis l’allumage du serveur, la commande la plus simple est ifconfig.

eth0      Link encap:Ethernet  HWaddr 00:1C:C0:54:59:45
          inet adr:91.121.146.220  Bcast:91.121.146.255  Masque:255.255.255.0
          adr inet6: 2001:41d0:1:c3dc::/64 Scope:Global
          adr inet6: fe80::21c:c0ff:fe54:5945/64 Scope:Lien
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:964123597 errors:0 dropped:0 overruns:0 frame:0
          TX packets:966298554 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:673545704250 (627.2 GiB)  TX bytes:851695780429 (793.2 GiB)

donnera le trafic entrant et sortant pour l’interface eth0.

Si vous voulez des statistiques plus avancées comme du temps réel et des information plus détaillée, il faut installer un outil dont voici une liste via ce lien:

18 Commands to Monitor Network Bandwidth on Linux server

linux logo

Linux Cron Comment exécuter des tâches automatiquement régulièrement

Sur les systèmes Linux, via Crontab, vous pouvez exécuter des script shell, script php, des sauvegardes Mysql à intervalle régulier. Par exemple, on peut régulièrement vider un répertoire temporaire tous les jours à minuit, ceci se fait avec une tâche CRON. Un fichier contient les tâches CRON, via une syntaxe particulière, on définit la fréquence d’exécution, qui peut aller de la seconde à l’année.

Comprendre le système d’ordonnancement des tâches CRON

Comment est abbrévié le terme CRON? A l’origine : Chrono table -> crontab -> CRON voilà, c’est un mécanisme dans le monde UNIX et Linux, pour exécuter des tâches automatiquement. Bien sûr il faut laisser le serveur allumé pour que cette tâche puisse se faire.

* * * * * /usr/bin/php7.1/php /path/to/computation.php; /usr/bin/php7.1/php /path/to/sendmail.php

les 5 étoiles permettent de définir les fréquences d’exécution, leur usage est assez technique. Voici quelques exemples :

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  user command to be executed

# exemples

5 * * * * /path/to/script/script.sh >> exec.log
0 5 * * 1 /path/to/script/script.sh >> exec.log # tous les lundi à 5 heures du matin
5 * * * 1 /path/to/script/script.sh >> exec.log

source : https://www.linuxtricks.fr/wiki/cron-et-crontab-le-planificateur-de-taches

Voici un outil en ligne qui vous permet de traduire du langage humain vers le langage CRON.

Syntaxe CRON

Voici la syntaxe typique d’une tâche CRON, les 5 premiers emplacement sont à pour coder le moment et la fréquence,

Comment avoir la liste des CRON actifs sur Linux?

Il y a deux endroits à regarder, tout d’abord le fichier de job CRON global qui est dans /etc/crontab

Ensuite il y a les CRON par utilisateur, dans chaque fichier au nom de l’utilisateur dans le répertoire :

/var/spool/cron

Par exemple les CRON de l’utilisateur root aura pour chemin :

/var/spool/cron/root

pour en voir le contenu faites :

cat /var/spool/cron/root

Crontab pour accéder au cron de l’utilisateur courant

Chaque utilisateur a donc son répertoire cron, il existe une commande pour accéder rapidement au cron de l’utilisateur:

$crontab -e

Ainsi si vous êtes en root, vous verrez le cron de l’utilisateur root, sous l’utilisateur user1, vous verrez le cron de l’utilisateur user1 ainsi de suite.

https://unix.stackexchange.com/questions/7053/how-can-get-a-list-of-all-scheduled-cron-jobs-on-my-machine
linux logo

Linux AWK pour les débutants

Awk permet de traiter des fichiers texte, c’est presque un langage de programmation tellement il est puissant et permet de faire des chose incroyables en ligne de commande et encore plus dans un script shell.

Quand a-t-on besoin de Awk?

Quand vous avez des fichier de type texte, et qui sont une suite de lignes de même format, typiquement un fichier CSV, que vous devez faire un traitement sur ce fichier afin d’afficher les informations sur un autre format.

Par exemple soit un fichier CSV, qu’on doit transformer en requête SQL afin de faire un import de ce fichier SQL dans une base de données, vous me direz il est possible d’importer un fichier CSV dans PhpMyadmin par exemple, je vous dirai oui mais si vous deviez faire une transformation quelconque?

Soit le fichier texte suivant :

gold     1    1986  USA                 American Eagle
gold     1    1908  Austria-Hungary     Franz Josef 100 Korona
silver  10    1981  USA                 ingot
gold     1    1984  Switzerland         ingot
gold     1    1979  RSA                 Krugerrand
gold     0.5  1981  RSA                 Krugerrand
gold     0.1  1986  PRC                 Panda
silver   1    1986  USA                 Liberty dollar
gold     0.25 1986  USA                 Liberty 5-dollar piece
silver   0.5  1986  USA                 Liberty 50-cent piece
silver   1    1987  USA                 Constitution dollar
gold     0.25 1987  USA                 Constitution 5-dollar piece
gold     1    1988  Canada              Maple Leaf

A première vue ce fichier est de type à séparation par tabulation, car les champs commencent à des positions bien définies, nous allons faire des traitement avec Awk sur ce fichier puis, nous allons transformer en requête SQL chaque ligne.

Commandes basiques de awk

$ awk '/gold' test.txt

ce qui est équivalent à

$ grep gold coins.txt

Si vous ne connaissez pas la commande grep, cette dernière cherche une chaine de caractère dans un fichier ou des fichiers. On fait une recherche de la chaine et on l’affiche. Donc jusqu’ici rien d’extraordinaire, car grep peut le faire. Voyons voir, et si on n’affichait que quelques colonnes, comme la première et  la troisième?

awk '{print $1,$3}' text.txt
gold 1986
gold 1908
gold 1984
gold 1979
gold 1981
gold 1986
gold 1986
gold 1987
gold 1988

On n’est pas obligé d’afficher dans l’ordre, il importe peu, ce qui commence par un signe $, c’est une capture de champ,

awk '{print $3,$2}' test.txt

Le pattern général de awk est:
awk search pattern { program actions } fichier

Par défaut si vous mettez une virgule entre les captures de champs, il y a un espace qui les sépare. Mais comment fiat-on si on a plusieurs espaces?

awk -F";" '{print $1 "    " $3}' test.txt

Création d’une requête SQL avec Awk

Nous allons maintenant faire quelque chose de plus intéressant, transformer ce fichier en une requête SQL. Nous allons donc carrément mettre du SQL dans la commande Awk:

awk -F'\t' '{ print "INSERT INTO prospects (prenom,nom,civilite,email,service,random_id) VALUES (" $3","$2","$4","$1","$5","$6 ")" }' test> import.sql
debian

Linux et la mémoire virtuelle (swap et paged)

Comprendre la mémoire virtuelle sous Linux

Chaque machine (serveur ou  non) dispose d’une quantité limité de mémoire vive. et lorsque trop de process tournent, la RAM peut se révéler insuffisante. L’astuce tès ancienne qui remonte au début de l’histoire des PC est d’utiliser le disque dur (une partie de disque dur) pour émuler la mémoire vive.

On pourrait aussi augmenter la mémoire vive, mais c’est cher. Le disque dur coûte beaucoup moins cher.

Donc on a la situation suivante : utiliser la mémoire du disque dur pour compléter la mémoire RAM.

Le problème avec le disque dur c’est qu’il est quasiment mille fois plus lent que la mémoire vive, mais ça c’est un autre débat.

 

Connaitre l’utilisation de la mémoire virtuelle sur Linux

Tout d’abord une commande très simple pour connaitre la mémoire de votre machine sous Linux :

$ free
[root@ns357817 ~]# free
             total       used       free     shared    buffers     cached
Mem:       2031712    1923280     108432        440      70156    1042944
-/+ buffers/cache:     810180    1221532
Swap:      1046520    1046520          0

Nous avons quelques colonnes nous donnant des informations très utiles, première colonne  la mémoire totale, la seconde la mémoire totale utilisée, la colonne « free » est la mémoire qui résulte de la différence des deux colonnes précédente.

La mémoire « shared » est la mémoire partagée par plusieurs processus en même

Différence entre swap et page memory

Bien que swap et page soient utilisés de façon interchangeable, pour les puristes, il y a paging de mémoire quand seulement une partie d’un process est écrit dans la mémoire virtuelle, il y a swapping de mémoire quand l’intégralité du process est écrit dans la mémoire virtuelle.

Quand les pages sont écrites sur le disque, on parle de page-out, quand les pages reviennent en mémoire vive on parle de page-in.

 

Fonctionnement de la mémoire virtuelle

Lorsqu’un programme démarre, elle passe du disque sur la émoire RAM, c’est le fonctionnement normal. Le page-in est normal donc, de même le page-out s’il se produit de temps en temps aussi est normal, par contre s’il y a beaucoup de page-out (écriture sur le disque), c’est peut-être un signe de trouble, le système va passer beaucoup de temps à écrire sur le disque, ça va ralentir le système, on appelle cela la thrashing. Le page-out n’est donc pas un problème en soi, c’est plutôt son activité intense qui est problématique.

Les outils pour connaitre l’activité de la mémoire virtuelle

Il y a un outil commun, vmstat, qui comme son nom l’indique produit des statistiques d’utilisation de mémoire virtuelle.

debian

Debian 8 Jessie, comment se logger en tant que root

Si vous avez récemment acquis un serveur dédié et fait l’installation d’un Linux Debian 8, vous aurez la désagréable surprise de constater qu’il est impossible de se logger en tant qu’utilisateur root.

En effet pour des raisons sans doute de sécurité, l’accès root a été désactivé par défaut.

C’est surtout énervant quand vous voulez utiliser WINSCP pour accéder à votre dédié, il est quasiment impossible de changer d’utilisateur en vous connectant, personnellement je n’ai pas réussi.

Il est bien plus facile de réactiver la possibilité de se connecter en root.

Voici la manipulation :

Comme on est en ssh, il faut éditer le fichier /etc/ssh/sshd_config

 

$vi /etc/ssh/sshd_config
changer 
PermitRootLogin without-password
en
PermitRootLogin yes

Maintenant il faut redémarrer le ssh

/etc/init.d/ssh restart

 

https://linuxconfig.org/enable-ssh-root-login-on-debian-linux-server

Retour en haut