Linux – commandes utiles

linux_icon

Voici une liste de commandes utiles

Savoir la version exacte :
lsb_release -ds
uname -a

Rendre un service autobootable(le démarrer automatiquement)
update-rc.d mysql enable
systemctl enable mysql.service

Tri / taille

– Tri par taille décroissante :
du -sh --time * | sort -hr
– Connaitre le nombre de fichiers :
find ./ -type f | wc -l
– Connaitre le nombre de dossiers :
find ./ -type d | wc -l
– tri par date de modification :
ls -ltr
– Connaître la taille d’un répertoire et de ses sous-répertoires (au choix)
du -h --max-depth=1 /toto/
du -sh /chemin/du/repertoire

– 10 plus gros fichiers d’un dossier :
du -a /path_folder | sort -nr | head -n 10
– connaitre le nombre de fichiers et répertoires que contient un répertoire :
ls -1A | wc -l
– lister les gros fichiers d’un répertoire et de ses sous-répertoires :
find /répertoire/ -type f -size +1024k -exec ls -lh {} \;
– suppression longue : (au choix)
ls *.toto | xargs rm
find . -type f -name \*.toto | xargs rm
find . -name "*.toto" -exec rm {} \;

– suppression de fichier ayant plus de 15 jours :
find . -mtime +15 -exec rm -vf {} \;
– Afficher les informations détaillées des fichiers y compris ceux cachés, avec des tailles lisibles le tout ordonné du plus grand au plus petit :
ls -lsha | less

Grep
Trouver une chaine de caractère récursivement, sans tenir compte de la casse, en excluant certains dossiers :
grep -Ri --exclude-dir={test,truc} chaine_à_trouver /path/

Bind

Vérifier la configuration :
named-checkconf -z

RSYNC
rsync -avz /path_source user@serveur.cible.com:/path_destination

Log Rotate
nano /etc/logrotate.d/tomcat
logrotate -f /etc/logrotate.conf
cat /var/lib/logrotate/status

IPtables

Pour bloquer une adresse IP seule :
iptables -I INPUT -s IP_ADRESS -j DROP
Pour bloquer une plage d’adresses :
iptables -I INPUT -s SUBNET/MASK -j DROP
Pour bannir une adresse d’un service en particulier (Apache par exemple) :
iptables -I INPUT -s IP_ADRESS -p tcp --dport 80,443 -j DROP
Lister les IP bloquées
iptables -L INPUT -v -n | grep DROP
Débloquer par numéro
iptables -D INPUT numero-de-la-regle

Bonus : liste des adresses IP par pays, régions… :
https://www.countryipblocks.net/country_selection.php

Fail2Ban

Débloquer une IP :
fail2ban-client set ssh unbanip 123.132.200.254

Fail2Ban < v0.8.8:
fail2ban-client get YOURJAILNAMEHERE actionunban IPADDRESSHERE
Fail2Ban > v0.8.8:
fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE
Sinon :
iptables -L -n --line-numbers
puis :
iptables -D fail2ban-ssh-ddos numéroligne

Postfix

Qshape can check the mail queue as below:
qshape hold
qshape active
qshape defer
qshape deferred
qshape -s (source) -p (parent domain) -n (nb de top domain)

postfix flush
postqueue -p

Supprimer tous les messages en file d’attente :
postsuper -d ALL

Mettre un message en attente (hold) :
postsuper -h 3F580420732

Mettre un message dans la file d’attente principale (active) :
postsuper -H 3F580420732

Consulter le contenu d’un message présent dans la file d’attente :
postcat -q 9142C420BC3

# Trouver les mails a destination toto@example.com
cat /var/log/mail.log | egrep -i ': to=<toto@example\.com>,' | less</toto@example\.com>

# Trouver les mails provenant de example.com
cat /var/log/mail.log | egrep -i ': from=<.*@example\.com>,' | less

# Trouver les erreurs et problème
egrep 'qmgr.*(panic|fatal|error|warning):' /var/log/mail.log

En cas d’instances multiples :
postmulti -i nom_instance -x commande
Exemple : postmulti -i postfix-19 -x qshape deferred

SQL

– Création d’une base « visites_db » et d’un user « visitor » ayant les droits complet sur cette base :

CREATE DATABASE visites_db;
CONNECT visites_db;
CREATE USER visitor [IDENTIFIED BY PASSWORD 'password_du_user_visitor'];
GRANT ALL PRIVILEGES ON visites_db TO 'visitor'@'localhost' IDENTIFIED BY 'password_du_user_visitor' WITH GRANT OPTION;

– Création d’une table « connectes_siteweb1 » :

CREATE TABLE connectes_siteweb1 (ip varchar(15), timestamp int);
GRANT ALL PRIVILEGES ON connectes_siteweb1 TO visitor;

– Procédure reset Pass Root SQL :

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
/etc/init.d/mysql stop
/etc/init.d/mysql start

Réplication Master->Slave

Sur le master :

FLUSH PRIVILEGES;

FLUSH TABLES WITH READ LOCK;

SHOW MASTER STATUS;

Noter la position

Pendant ce temps sur le slave :

STOP slave;

CHANGE MASTER TO MASTER_HOST='ip ou fqdn du serveur master', MASTER_USER='replication_user', MASTER_PASSWORD='motdepasse_du_replication_user', MASTER_LOG_POS=123456;

START slave;

Il faut recopier la position du master et l’indiquer sur le slave via MASTER_LOG_POS

Ensuite, retourner sur le master et dévérouiller :

UNLOCK TABLES;

Observium Agent xinetd install

  • Sur le serveur Observium : Ajout du host via SNMP sur l’interface
  • Sur le serveur à monitorer : apt install xinetd
  • mkdir -p /usr/lib/observium_agent/scripts-available/
  • mkdir -p /usr/lib/observium_agent/scripts-enabled/
  • Sur le serveur Observium :
  • scp /opt/observium/scripts/observium_agent_xinetd user@your_server:/etc/xinetd.d/observium_agent_xinetd
  • scp /opt/observium/scripts/observium_agent user@your_server:/usr/bin/observium_agent
  • scp /opt/observium/scripts/agent-local/* user@your_server:/usr/lib/observium_agent/scripts-available
  • Sur le serveur à monitorer :
  • ln -s /usr/lib/observium_agent/scripts-available/* /usr/lib/observium_agent/scripts-enabled
  • nano /etc/xinetd.d/observium_agent_xinetd = changer l’IP localhost par celle du serveur Observium
  • service xinetd restart

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.