-
LINUX > INFOS PELE-MELE
savoir si le disque est un SSD
Connaître le type de disque dur sous Linux
cat /sys/block/sda/queue/rotational
si la réponse est 0 alors c’est un disque SSDsi la réponse est 1 c’est donc un disque SATASSD sur bus PCI expressun disque dur est nommé HDA pour les IDE, SDA pour les SATA, SCSI et SSD mais dans le cas où le disque dur SSD est branché sur un bus PCI Express, alors le disque prend comme nommage : NVMe.Pour trouver le nom d’un disque dur sous Linux :lsblk -o NAME
—
gestion des processus qui ne libèrent pas de l’espace disque
Vérification de l’espace disque
Ici dans mon cas sur ce serveur, il n’y a plus d’espace disque de disponible.Mais si je vérifie avec la commande ncdu :hummm, en faite d’après la commande ncdu, la partition racine n’occupe que 3.2Go de données !Identifier les processus
Pour identifier les processus en cours d’exécution, qui n’ont pas libérer les fichier seront identifiés via la commande
lsof
avec comme argument+L1
:lsof +L1
D’après le man de lsof : « +L1 » will select open files that have been unlinked.:
Les processus qui n’ont pas libérés les fichiers supprimés sont identifiés avec l’argument(deleted)
en fin de ligne.
Pour libérer de l’espace, il faut soit redémarrer le processus si c’est un démon ou le tuer.Une fois tous les processus redémarrés ou tués, on retrouve de l’espace disque sans avoir eu besoin de redémarrer notre système GNU/Linux. De toute façon, un Linux ne se redémarre jamais ;-)
—
réinitialiser le mot de passe root MySql
avec systemd
Redémarrer le service MySQL en mode
--skip-grant-tables
:systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
Plus besoin de mot de passe dans ce mode pour se connecter au serveur !
Définir un nouveau mot de passe avec la commande mysql_secure_installation:
mysql_secure_installation
Autres méthodes à l’aide d’instructions SQL :
Se connecter au serveur avec la commande
mysql
:mysql
Ensuite, plusieurs façons de faire pour changer le mot de passe :
Une première méthode :
SET PASSWORD FOR root@’localhost’=PASSWORD(‘mon_nouveau_mot-de_passe’);
ou :
UPDATE mysql.user SET password=PASSWORD(‘mon_nouveau_mot_de_passe’) WHERE User=’root’ AND Host = ‘localhost’;
FLUSH PRIVILEGES;
ou :
GRANT ALL PRIVILEGES ON *.* TO root@’localhost’ IDENTIFIED BY ‘mon_nouveau_mot_de_passe’;
Redémarrer le service en désactivant le mode
--skip-grant-tables
:systemctl unset-environment MYSQLD_OPTS
systemctl restart mariadb
source : http://www.dsfc.net/logiciel-libre/mysql-logiciel-libre/perte-mot-de-passe-root-mysql-mariadb/
Ancienne méthode : Toutes les étapes sont éxécutées en tant que root.
Etape 1
Arréter le service MySql:
service mysql stop
ou
service mysqld stop
Etape 2
Démarrer le serveur MySql sans aucun mot de passe:
mysqld_safe --skip-grant-tables &
Etape 3
Se connecter à Mysql
mysql -u root
Etape 4
Choisir la base de donnée mysql, mettre à jour le mot de passe root puis recharger les prévilèges:
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User=’root’;
flush privileges;
quit
Etape 5
Redémarrer le serveur MySql:
service mysql restart
Ou
service mysqld restart
A ce stade il est de nouveau possible de se connecter sur le serveur MySql avec le nouveau mot de passe root.
Astuce sous Ubuntu!
Sous Ubuntu, il existe un compte d’administrateur de secour: debian-sys-maint.
Le mot de passe associé à ce compte se trouve dans le fichier /etc/mysql/debian.cnf.—
tget : le wget du torrent
Un nouveau petit utilitaire vient de voir le jour, pour télécharger des fichiers torrents sous GNU/Linux en ligne de commande : tget.
tget, le wget du torrent sous GNU/Linux
tget est basé sur torrent-stream et s’inspire de peerflix. Cet outil est écrit en Node.js et publié sous licence MIT.
Installer tget :
sudo npm install -g t-get
Utliser tget :
tget fichier.torrent
—
Afficher une barre de progression pour la commande dd
La commande dd est pour moi la commande ultime pour faire des clés bootable ou toutes autres copies par block.
De base, il est possible d’avoir un affichage basique de la progression d’une copie avec dd, mais ce n’est pas très clair…
Exemple :dd if=image.iso of=/dev/sdb bs=1M status=progress && sync 685+0 enregistrements lus 685+0 enregistrements écrits 718274560 bytes (718 MB, 685 MiB) copied, 0,278259 s, 2,6 GB/s
Afficher une barre de progression graphique pour dd avec pv et dialog
Pour afficher une barre de progression pour connaître l’état d’avancement de la commande dd, deux commandes vont être combinées : pv et dialog.
La commande pv permet à travers un pipe de connaitre la progression d’avancement d’une tâche et la commande dialog permet d’afficher une boite de dialogue.
Voici la commande entièrement pour afficher une barre de progression graphique pour dd :
(pv -n image.iso | dd of=/dev/sdb bs=1M && sync) 2>&1 | dialog --gauge "dd en cours, patienter..." 10 70 0
—
pv : pour connaître la progression d’une tâche
La commande pv (Pipe Viewer) permet de visualiser l’état de progression d’une tâche à travers un pipeline, ce qui permet d’avoir une estimation du temps écoulé.
Voici les informations fournis par cette commande :
-Temps écoulé
-Pourcentage achevé (avec barre de progression)
-taux de débit actuel
-Total des données transférées
Installer pv
sudo apt install pv
Exemples
Création d’une clé bootable :
pv image.iso | dd of=/dev/sdb && sync 1,46GiO 0:00:17 [ 86MiB/s] [===========================================================================>] 100% 3062144+0 enregistrements lus 3062144+0 enregistrements écrits 1567817728 bytes (1,6 GB, 1,5 GiB) copied, 13,8749 s, 113 MB/s
Sauvegarde d’une base de données MariaDB:mysqldump mybdd | pv > mybdd.sqlCréation d’une archive :tar -czf - dossier | pv > dossier.tar.gz—ip : pour gérer son interface réseau
nb : toutes les commandes décrites dans l’article sont exécutées en tant que root et l’interface réseau choisie pour les exemples est eth0attribuer une adresse IPv4 sur une interface réseau
A savoir une adresse IP sans masque de sous réseau, cela ne sert à rien.
ip addr add 192.168.1.5/24 dev eth0
connaître son adresse IP sur toutes les interfaces réseau
ip -4 -o addr show 1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever 2: eth0 inet 192.168.1.5/24 brd 192.168.1.255 scope global eth0\ valid_lft forever preferred_lft forever
options utilisées :
-4 : pour n’afficher que les adresses IPv4
-o : le résultat sur une seule ligne
Un exemple avec l’affichage en couleur à l’aide de l’option -c, qui n’est présente que depuis la version 4 :
Supprimer une adresse IP sur une interfacé réseau
ip addr del 192.168.1.5/24 dev eth0
activer une interface réseau
ip link set eth0 up
désactiver une interface réseau
ip link set eth0 down
ajouter une passerelle par défaut (gateway)
ip route add default via 192.168.1.1
tout savoir sur la commande IP
man ip ip --help
—
changer le label d’une clé USB
Partitions de type ext2/3/4 :
sudo e2label /dev/sdbx "NOUVEAULABEL"
Partitions de type FAT32 :
sudo mlabel -i /dev/sdbx ::NOUVEAULABEL"
—
dban : pour supprimer toutes les données sur un disque dur
Effectivement, dban est un logiciel sous la forme d’une image ISO bootable, qui peut être graver sur CD ou une clé USB et doit être lancé ou démarrage de la machine. Le processus de dban pour supprimer les données est le suivant : il écrit plusieurs fois des données aléatoires sur le disque dur, en les supprimant et en les réécrivant. Cependant, cette opération de suppression peut être relativement très longue suivant le nombre de passes et la taille du disque.
Un élément important à savoir, si les disques sont dans une grappe RAID alors dban ne pourra pas garantir la suppression totales des données.dban en fonction
Télécharger la dernière image ISO :
wget -c http://sourceforge.net/projects/dban/files/dban/dban-2.3.0/dban-2.3.0_i586.iso
Graver sur un CD ou une clé USB, dans mon cas c’est sur clé USB :
dd if=dban-2.3.0_i586.iso of=/dev/sdb bs=4M && sync
Démarrer sur l’ISO, appuyer sur la touche « Entrée » pour exécuter dban en mode interactive :
Cette fenêtre affiche le(s) disque(s) découvert(s) :
Sélectionner un disque avec la touche « Espace » du clavier :
Presser la touche F10 pour lancer le processus de suppression des données :
Fin du processus de suppression de données:
Environ 30minutes, pour un disque dur virtuel d’une taille de 10Go.
Test de récupération des données avec SystemRescue
Démarrage sur SystemRescueCD :Une fois arrivé sur l’interface graphique, je lance un Terminal pour exécuter Testdisk :Après analyse, TestDisk ne trouve aucune partition à restaurer :—
détruire fichiers, répertoires, partitions ou disques dur avec shred et wipe
shred est une commande unix, qui permet d’effacer définitivement le contenu d’un fichier (ou d’une partition) sans possibilité de récupération. Pour y arriver, il y a écritures répétitives et aléatoires dans le fichier.wipe est une commande, qui permet de nettoyer une partition par un mécanisme de « frottement « .Si les paquets shred et wipe ne sont pas installés par défaut, il suffit d’utiliser les gestionnaire de paquet de la distribution en question.
Attention avec shred et wipe, il est (quasi) impossible de récupérer les données !!!
Suivant les droits d’accès au fichier/répertoire/partion/disque dur, il faudra se connecter en tant que root ou passer par la commande sudo.
Détruire un fichier :
shred -n 20 -z -u -v fichierasupp
Détruire un répertoire :
wipe -r RepAsupp
Détruire une partition :
shred -n 20 -z -u -v /dev/sdaX
wipe /dev/sdaX
Détruire une disque dur entier :
shred -n 20 -z -u -v /dev/sda
wipe /dev/sda
options de shred:
-n 20 : fichier réécrit 20 fois.
-z : réécriture avec des zéros pour dissimuler l’opération.
-v : suivre l’état d’avancement de la commande.
-u : supprime le fichier après sa réécriture.
—
Fail2Ban : load Average Cpu usage high
Si les fichiers de log deviennent anormalement gros, il se peut que le réglage de la rotation des logs soit mal paramétré (en dehors d’une attaque évidemment).
J’ai revue ma configuration de logrotate, et en particulier celui de nginx./etc/logrotate.d/nginx
##le chemin ou se trouve les logs de ngnix : /var/log/nginx/*.log { ##Copie du fichier de log et vide ce dernier pour le remplir : copytruncate ##rotation jounalière : daily ##Je garde un historique de 7 fichiers de log : rotate 7 ##Je compresse les fichiers de log : compress ##je limite la taille du fichier de log à 10Mo : size 10M ##si le log n’existe pas, ne créé pas d’erreur : missingok ##si le journal est vide, il n'y aura aucune action : notifempty ##Permet l’exécution de postrotate : sharedscripts ##Action après la rotation des logs (action qui était par défaut) : postrotate /bin/kill -USR1 `cat /var/run/nginx.pid 2>/dev/null` 2>/dev/null || true endscript }
Relance de logrotate :
logrotate -f /etc/logrotate.conf
Pour finir, la commande HTOP pour vérifier le bon fonctionnement de Fail2Ban :
—
—