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
RSYNCrsync -avz /path_source user@serveur.cible.com:/path_destination
Log Rotatenano /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éesiptables -L INPUT -v -n | grep DROP
Débloquer par numéroiptables -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.comcat /var/log/mail.log | egrep -i ': to=<toto@example\.com>,' | less</toto@example\.com>
# Trouver les mails provenant de example.comcat /var/log/mail.log | egrep -i ': from=<.*@example\.com>,' | less
# Trouver les erreurs et problèmeegrep '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