| Description | Commande |
|---|---|
| Vérifier la syntaxe |
apache2ctl -t
|
| Lister les vhosts actifs |
apache2ctl -S
|
| Voir module compilé |
apache2ctl -l
|
| Reload de la configuration |
apache2ctl -k graceful
|
| Lister les IP effectuant le plus de HIT par heure ℹ️ Adapter la date et l'heure en fonction de l'incident bien entendu |
grep '19/Feb/2018:10:' access.log | awk '{print $1}' | sort -n | uniq -c | sort -g | tail -n 10
|
| Lister les IP effectuant le plus de HIT |
cat access.log | awk '{print $1}' | sort -n | uniq -c | sort -g | tail -n 10
|
| Filtrer access log sur un code HTTP et afficher la requête |
awk '($9 ~ /500/)' access.log | awk '{print $9,$7}'
|
| Obtenir un server-status d'apache ℹ️ Pensez à faire un netstat -lntp | grep apache (si apache écoute sur le port 8080) |
http_proxy=""; lynx http://localhost/server-status
http_proxy=""; lynx 127.0.0.1:8080/server-status
|
| Lister les modules Actifs ℹ️ a2query -m si Apache n'est pas running |
apache2ctl -t -D DUMP_MODULES
apache2ctl -M
a2query -m
|
| Afficher mémoire consommée |
ps aux | grep apache | grep -v logger | grep -v pts | awk '{ tot += $6; procs += 1; print $2,$6,$11 } END { print "TOTAL: ",tot,"/",procs,"=",tot/procs }'
|
| Afficher la mémoire consommée avec la moyenne par worker |
ps -ylC apache2 --sort:rss | awk '{sum+=$8; ++n} END {print "Tot="sum"("n")";print "Avg="sum"/"n"="sum/n/1024"MB"}'
|
| Description | Commande |
|---|---|
| Lister les containers |
docker ps -a
|
| Supprimer un container via son ID |
docker rm <id>
|
| Liste les images utilisées par les containers |
docker images -a
|
| Supprime une image via son ID |
docker rmi <id de l'image>
|
| Rentrer dans une image |
docker run -ti image:tag /bin/bash
|
| Rentrer dans le conteneur <id> en cours d'éxecution |
docker exec -ti <id> /bin/bash
|
| Remove all unused containers, networks, images (both dangling and unreferenced) |
docker system prune
|
| Supprimer tous les conteneurs, images, réseau ET volumes non utilisés ℹ️ À utiliser avec précaution ! |
docker system prune --volumes
|
| Construire un conteneur |
docker build -t nom_du_conteneur .
|
| Créer une nouvelle image à partir des changements d’un conteneur |
docker commit
|
| Copier des fichiers ou des dossiers depuis le PATH d’un conteneur vers le HOSTDIR ou vers STDOUT |
docker cp
|
| Créer un nouveau conteneur |
docker create
|
| Inspecter les changements sur le système de fichiers d’un conteneur |
docker diff
|
| Créer une image de système de fichiers vide et y importer le contenu d’une archive |
docker import
|
| Afficher l’ensemble des informations système |
docker info
|
| Tuer un conteneur en cours d’exécution en utilisant SIGKILL ou un signal spécifié |
docker kill
|
| Liste les ports d’un conteneur, ou rechercher les ports “public” NATé vers un PRIVATE_PORT |
docker port
|
| Récupérer une image ou un repository à partir du Docker HUB |
docker pull
|
| Publier une image ou un repository vers le Docker HUB |
docker push
|
| Renommer un conteneur Docker |
docker rename
|
| Redémarrer un conteneur en cours d’exécution |
docker restart
|
| Enregistrer une image dans une archive tar |
docker save
|
| Rechercher des images sur le Docker Hub |
docker search
|
| Lancer/Arreter un ou plusieurs conteneurs arrêtés |
docker start/stop
|
| Afficher l’utilisation des ressources d’un ou plusieurs conteneurs sous la forme d’un flux |
docker stats
|
| Afficher les processus en cours d’exécution d’un conteneur |
docker top
|
| Afficher les informations de version Docker |
docker version
|
| Réactiver tous les processus dans un conteneur |
docker unpause
|
| Stopper TOUS les conteneurs en cours d'exécution |
docker stop $(docker ps -a -q )
|
| Supprimer TOUS les conteneurs |
docker rm $(docker ps -a -q )
|
| Description | Commande |
|---|---|
| Status en une ligne |
curl 'localhost:9200/_cat/health?v'
|
| Status |
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
|
| Cluster status |
http_proxy='' curl -XGET 'http://localhost:9200/_cluster/health?pretty=true&detailed=true'
|
| Etat de chaque nœud du cluster |
curl -XGET 'http://localhost:9200/_cat/nodes?v'
|
| Lister les UID de chaque noeud du cluster |
curl -XGET 'http://localhost:9200/_cat/nodes?v&full_id=true&h=id'
|
| Recovery status |
curl -XGET 'localhost:9200/_cat/recovery?v'
|
| Lister les shards |
curl 'localhost:9200/_cat/shards' 2>&1
|
| Fermer un indice |
curl -XPOST 'http://localhost:9200/INDICE/_close'
|
| Ouvrir un indice |
curl -XPOST 'http://localhost:9200/openvoice/_open'
|
| Lister les repositories des snapshots |
curl -s 0:9200/_snapshot?pretty
|
| Supprimer un repository |
curl -s -XDELETE localhost:9200/_snapshot/[nom repository]?pretty
|
| Lister les snapshots |
curl -XGET 'http://localhost:9200/_snapshot/REPO/_all/?pretty=true'
|
| Lister les tâches en cours |
curl -XGET 'http://localhost:9200/_cluster/pending_tasks?pretty'
|
| Consulter la configuration d'un index |
http_proxy= curl 'http://localhost:9200/<index_name>/_settings?pretty=true'
|
| Lister les "unassigned_shards" |
curl -XGET 'http://localhost:9200/_cat/shards?v' | grep -c STARTED
|
| Lister les indices |
curl 'localhost:9200/_cat/indices?v'
|
| Vérifier le mapping (typage des données) |
http_proxy= curl -s 'http://localhost:9200/<index_name>/_mapping?pretty=true' | less
|
| Voir la version |
curl -s -XGET 'localhost:9200' | grep number
|
| Voir la taille de tous les index |
curl -XGET "http://localhost:9200/_cat/shards?v" | awk -F " " '{print $1, $6}' | sort
|
| Explain de pourquoi le premier shard n'est pas assigné |
curl -XGET 'localhost:9200/_cluster/allocation/explain?pretty'
|
| Retry l'allocation des shards manuellement ℹ️ Après le index.allocation.max_retries |
curl -XPOST 'http://localhost:9200/_cluster/reroute?retry_failed'
|
| Pour changer le nombre de replica a chaud (Ex:passage a 0) |
curl -XPUT http://localhost:9200/_settings -d '{"index": {"number_of_replicas": 0}}'
|
| Snapshot ES Tutorial |
https://qbox.io/blog/elasticsearch-data-snapshots-restore-tutorial
|
| Vider la JVM ℹ️ À exécuter après avoir coupé le trafic |
curl -XPOST "http://localhost:9200/_all/_cache/clear"
|
| Description | Commande |
|---|---|
| Classer les processus en cours par ordre croissant de consommation de mémoire |
ps -ylC <nom_process-fpm> --sort:rss
|
| Afficher la consommation mémoire moyenne d'un processus |
ps --no-headers -o "rss,cmd" -C <nom_process-fpm> | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'
|
| Description | Commande |
|---|---|
| Tester connexion à un dépôt |
git ls-remote <user>@<host>:<repository>.git
|
| Annuler dernier commit |
git reset --soft HEAD
|
| Annuler le dernier commit push |
git revert <id>
|
| Voir l'historique de la branche, en joli |
git log --graph --oneline --decorate --color
|
| Voir l'historique de toutes les branches, avec coloration |
git log --graph --oneline --decorate --color --all
|
| Squash plusieurs commit ℹ️ Squash first and pick rest |
git rebase -i <last_stable_branch>
git push origin <branch> -f
|
| Description | Commande |
|---|---|
| Afficher status |
gitlab-ctl status
|
| Démarrer service |
exec /opt/gitlab/embedded/bin/runsvdir-start &
|
| Redémarrer un composant |
gitlab-ctl restart <service>
|
| Redemarrer gitlab |
gitlab-ctl restart
|
| Description | Commande |
|---|---|
| Affichier les logs |
journalctl
|
| Voir les logs de manière dynamique (tail -f) |
journalctl -f
|
| Filtrer par service |
journalctl -u crond
|
| Filtrer par PID |
journalctl _PID=<PID>
|
| Filtrer par exécutable |
journalctl /path/to/bin
|
| Choisir le niveau de log affiché |
journalctl -p err
|
| Les log depuis le 20 novembre 2017 à 21h |
journalctl --since "2017-11-20 21:00:00"
|
| Les log depuis les 10 dernières minutes |
journalctl --since "10 minutes ago"
|
| Les log avant le 20 novembre 2017 à 21h |
journalctl --until "2017-11-20 21:00:00"
|
| Exemple de combinaison temporelle & filtrage ℹ️ Tous les logs entre le 21 à 18h et le 22 à 9h avec niveau 'info' pour crond |
journalctl --since "2017-11-21 18:00:00" --until "2017-11-22 9:00:00" -p info -u crond
|
| Purger les logs (older 1 day) |
journalctl --vacuum-time=1d
|
| Purger les logs (keep last 500Mo) |
journalctl --vacuum-size=500M
|
| Description | Commande |
|---|---|
| Afficher les nodes |
kubectl get node -o wide
|
| Afficher les informations d'un node |
kubectl describe nodes <your_node>
|
| Afficher l'espace disque consommé par un pod |
kubectl -n <NAMESPACE> exec <POD> -- df -h
|
| Afficher les namespace |
kubectl get namespaces -o wide
|
| Afficher les pods |
kubectl get pods --all-namespaces -o wide
|
| Afficher les pods en état Crash |
kubectl get pods --all-namespaces -o wide |grep -v Running |grep -i Crash
|
| Afficher les pods applicatifs actifs ayant déjà redémarrés |
kubectl -nproduction get pods | awk '{ if ($4 > 0) {print $0} }'
|
| Afficher les persistentvolume |
kubectl get persistentvolumes -o wide
|
| Afficher les persistentvolumesclaims |
kubectl get persistentvolumeclaims --all-namespaces -o wide
|
| Supprimer un pod |
kubectl delete pod $podname -n $namespace
|
| Affichier les cycles de vie des pods de manière dynamique |
kubectl get pods -n logging -o wide -w
|
| Afficher uniquement les derniers évènements d'un pod |
kubectl get event -n <your_namespace> --field-selector involvedObject.name=<your_pod>
|
| Afficher les logs d'un pod |
kubectl logs -n <your_namespace> <your_pod>
|
| Afficher uniquement les derniers évènements des pod n'étant pas en status Running (boucle) |
for i in $(kubectl get pods -n <your_namespace> | grep <your_pod> | grep -v Running | awk '{print $1}'); do kubectl get event -n <your_namespace> --field-selector involvedObject.name=$i; done;
|
| Trier les pods par le nombre de redémarrages |
kubectl get pods -n <your_namespace> | grep <your_pod> | sort -gr -k 4
|
| Accéder au terminal d'un pod |
kubectl exec -it <your_pod> -n <your_namespace> -- /bin/bash
|
| Exécuter une commande dans un pod |
kubectl exec -it <your_pod> -n <your_namespace> -- /bin/bash -c "<votre_commande>"
|
| Afficher les informations sur les ReplicaSet configurés |
kubectl get rs
|
| Afficher les vhosts associés |
kubectl get ingress -A
|
| Description | Commande |
|---|---|
| Afficher les collections |
echo 'show collections' | mongo brandministry_fr --quiet
|
| Faire un dump de toutes les collections |
for i in $(echo 'show collections' | mongo <database> --quiet) ; do mongodump --db <database> --collection $i --out - | gzip > <nom_de_fichier>.$i.gz; done
|
| Faire un export |
mongoexport --db <base> --collection <nom_collection> --out <nom_fichier>.json
|
| Faire un export (au format JSON Array) |
mongoexport --db <base> --collection <nom_collection> --jsonArray --out <nom_fichier>.json
|
| Obtenir des informations sur la réplication (dans la console mongo) |
db.runCommand("ismaster")
|
| Importer un fichier JSON dans la base |
mongoimport --db <base de donnée> --collection <collection> --file /chemin/fichier.json --jsonArray
|
| Afficher le statut du ReplicaSet |
rs.status()
|
| Afficher l'état de la replication (côté slave) |
rs.printSlaveReplicationInfo()
|
| Afficher l'état de la replication (côté master) |
rs.printReplicationInfo()
|
| Afficher la configuration de la replication (master/slave/arbiter) |
db.isMaster()
|
| Voir les bases |
show dbs;
|
| Description | Commande |
|---|---|
| Générer un dump et gzipper en même temps |
mysqldump -uroot -p --databases <database> | gzip > <database>.sql.gz
|
| Importer un dump gzip |
gzip -dc <file>.sql.gz | mysql -u root -p <databases>
|
| Killer les requêtes "selects" |
for i in `mysql -e"show full processlist"|grep SELECT|awk '{print $1}'` ; do mysql -e"kill $i" ; done
|
| Créer une base de données (depuis mysql) |
create database <nom base>;
|
| Créer un user associé à une bdd avec les droits "all privileges" |
grant all privileges on `DATABASE`.* to 'USER'@'%' identified by 'PASSWD';
|
| Tester la connexion à une bdd |
mysql -u <login> -p <database>
|
| Lister les requêtes en cours |
show processlist;
show full processlist;
|
| Lister les requêtes en cours et exclure les NULL |
mysql -e 'SELECT * FROM information_schema.PROCESSLIST WHERE ID <> CONNECTION_ID() AND INFO IS NOT NULL \G'
|
| Vérifier si MySQL DUMP est en execution |
mysql -e "select COUNT(1) mysqldumpThreads from information_schema.processlist where info like 'SELECT /*\!40001 SQL_NO_CACHE */%';"
|
| Lister les transactions en cours |
show engine innodb status;
|
| Killer une transaction |
kill query <ID>;
|
| Visualise la commande suivante en partant du début |
pager less;
|
| Lister utilisateurs mysql |
select user,host from mysql.user;
|
| Rechecher une base |
SHOW databases LIKE '%<database>%';
|
| Afficher la timezone |
SELECT @@global.time_zone, @@session.time_zone
|
| Executer mysqltuner depuis le front vers un RDS |
perl mysqltuner --host <hostname> --forcemem <size - Amount of RAM installed in megabytes >
|
| Afficher toutes les requêtes mysql envoyées |
tcpdump -i eth<numéro> -s 0 -l -w - dst port <port> | strings
|
| Modifier le "max_connections" |
set global max_connections = 1000; show variables like "max_connections";
|
| Purger les bin logs jusqu'au bin log actuel |
mysql -e "PURGE BINARY LOGS TO '$(mysql -e "show master status\G" | grep File | awk -F": " {'print $2'})'"
|
| Passer une erreur de réplication |
STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
|
| Afficher les droits des utilisateurs pour une base de donnée précise |
SELECT * FROM mysql.db WHERE Db = '<database>'\G;
|
| Retirer les droits d'un utilisateur pour une base de donnée précise |
REVOKE ALL PRIVILEGES ON `<database>`.* FROM '<user>'@'%';
|
| Afficher la version de mysql depuis son prompt |
select @@version;
select version();
status;
|
| Importer une base dans mysql |
mysql -u utilisateur -p mot de passe base_de_destination < fichier_dump.sql
|
| Voir taille de toutes les databases |
SELECT table_schema "database", sum(data_length + index_length)/1024/1024/1024 "size in GB" FROM information_schema.TABLES GROUP BY table_schema;
|
| Afficher le statut d'une réplication |
echo "show slave status\G" | mysql -u root -p | egrep 'Slave_IO_Running:|Slave_SQL_Running:|Seconds_Behind_Master:'
|
| Se connecter à un RDS |
mysql -h <nom_rds_aws>.eu-west-1.rds.amazonaws.com -u <USER> -p
|
| Lire un Binlog |
mysqlbinlog -v master-log-bin.XXXXXX | less
|
| Lire un binlog sur un créneau horaire particulier |
mysqlbinlog --start-datetime="2017-09-11 5:00:00" --stop-datetime="2017-09-11 12:00:00" mysql-bin.000007
|
| Trouver les ALTER (ou autre) effectués sur une base en particulier |
mysqlbinlog binlog.* | grep -i -e "^alter" | grep -i -e "question" >> /space/OTHERS/alter_binlog.txt
|
| Supprimer toutes les requêtes sleep |
mysql -e "show processlist;" | grep Sleep | awk '{print $1}' | while read LINE; do mysql -e "kill $LINE"; done
|
| Afficher la taille des bases sur disque en Go avec la fragmentation |
SELECT table_schema AS "DB_NAME", SUM(size) "DB_SIZE", SUM(fragmented_space) FRAGMENTED_SPACE_GB FROM (SELECT table_schema, table_name, ROUND((data_length+index_length+data_free)/1024/1024/1024,2) AS size, ROUND((data_length - (AVG_ROW_LENGTH*TABLE_ROWS))/1024/1024/1024,2) AS fragmented_space FROM information_schema.tables WHERE table_type='BASE TABLE' AND table_schema NOT IN ('performance_schema', 'mysql', 'information_schema') ) AS TEMP GROUP BY DB_NAME ORDER BY FRAGMENTED_SPACE_GB DESC;
|
| Afficher la taille totale des bases (disque + mémoire) |
SELECT table_schema AS "DB_NAME", SUM(size) "DB_SIZE", SUM(fragmented_space) FRAGMENTED_SPACE_GB FROM (SELECT table_schema, table_name, ROUND((data_length+index_length+data_free)/1024/1024/1024,2) AS size, ROUND((data_length - (AVG_ROW_LENGTH*TABLE_ROWS))/1024/1024/1024,2) AS fragmented_space FROM information_schema.tables WHERE table_type='BASE TABLE' AND table_schema NOT IN ('performance_schema', 'mysql', 'information_schema') ) AS TEMP GROUP BY DB_NAME ORDER BY FRAGMENTED_SPACE_GB DESC;
|
| Afficher la taille des tables sur disque en Go avec la fragmentation |
SELECT table_schema DB_NAME, table_name TABLE_NAME, ROUND((data_length+index_length+data_free)/1024/1024/1024,2) SIZE_GB, ROUND((data_length - (AVG_ROW_LENGTH*TABLE_ROWS))/1024/1024/1024,2) FRAGMENTED_SPACE_GB from information_schema.tables WHERE table_type='BASE TABLE' AND table_schema NOT IN ('performance_schema', 'mysql', 'information_schema') ORDER BY SIZE_GB DESC;
|
| Description | Commande |
|---|---|
| Blackhole d'IP - Classique commande ℹ️ Deuxième commande pour bloquer toute la plage CIDR |
ip route add blackhole 192.124.249.115
ip route add blackhole 192.124.249.115/24
|
| Blackhole d'IP - Sur une vieille instance |
route add -host 192.124.249.115 reject
|
| Blackhole d'IP - Enlever le blackhole |
ip route del 192.124.249.115
|
| Afficher des informations sur une IP ℹ️ Limites du sous-réseau, nombre d'hôtes, etc. |
ipcalc IP/cidr (ex: 192.168.1.0/24)
|
| Afficher adresse IP publique d'un serveur |
unset http_proxy; curl ifconfig.co
|
| Découverte adressage IP privées clients |
dig AXFR ipmi oxalide.infra.infra-01.adm | grep <client>
|
| Lister toutes les adresses IP du host |
for net in $(ip route show | cut -f1 -d\ | grep -v default); do ipcalc $net | grep Broadcast | cut -d\ -f 2; done
|
| Afficher le débit d'une interface |
ethtool <interface> | grep -i speed
|
| Lister les services en écoute |
netstat -ltpen
|
| Connaître le nombre de connexions par IP |
netstat -pan | grep 'tcp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
|
| Récupérer des infos de temps sur le curl |
curl -o /dev/null -s -w 'connect: '%{time_connect}' -start ':%{time_starttransfer}'- total: ':%{time_total} http://www.google.com
|
| Détecter si un port est ouvert ℹ️ Plus pratique et explicite que telnet |
netcat -vz <host> <port>
|
| Lister les connexions ouvertes avec la date et le processus |
lsof -P -i tcp | awk '{print $2,$4}' | tr -d 'u' | sort -u | while read pid fd; do stat --printf "%z %N\n" /proc/$pid/fd/$fd ; done | sort -r
|
| Vérifier les adresses IPv6 montées |
ip -6 address show
|
| Vérifier la table de routage IPv6 |
ip -6 route
|
| Voir les adresses MACs IPv6 |
ip -6 neigh show
|
| Description | Commande |
|---|---|
| Vérifier la syntaxe |
nginx -t
|
| Obtenir un nginx_status de nginx |
http_proxy= lynx http://localhost:80/nginx_status
|
| Trier les access_log par code de retour ℹ️ Format par défaut (combined) |
awk '{print $9}' access.log | sort | uniq -c | sort -rn
|
| Trier les erreurs 404 |
awk '($9 ~ /404/)' access.log | awk '{print $7}' | sort | uniq -c | sort -rn
|
| Trier les erreurs 502 (bad gateway) |
awk '($9 ~ /502/)' access.log | awk '{print $7}' | sort | uniq -c | sort -r
|
| Trier les IPs faisant des requêtes sur des liens cassés (502) |
awk -F" '($2 ~ "mettre ici le lien remonté par la commande juste au dessus"){print $1}' access.log | awk '{print $1}' | sort | uniq -c | sort -r
|
| Afficher les liste compléte des vhost configurés |
grep server_name /etc/nginx/sites-enabled/* -RniI --color
|
| Afficher les liste compléte des vhost configurés et en fonction |
find /etc/nginx/sites-enabled/ -type f -print0 | xargs -0 egrep '^(\s|\t)*server_name'
|
| Description | Commande |
|---|---|
| Lister les utilisateurs |
rabbitmqctl list_users
|
| Lister les vhosts |
rabbitmqctl list_vhosts
|
| Lister les queues pour un vhost ℹ️ Essayer aussi sans le slash '/' |
rabbitmqctl list_queues -p /vhost
|
| Lister les queues en cours (20 premières) |
rabbitmqctl list_queues | awk '{ print $2 " " $1}' | sort -nr | head -n 20
|
| Purge des queues |
rabbitmqctl purge_queue <queue_name>
|
| Pour vérifier l'état de synchronisation des queues dans un cluster |
rabbitmqctl list_queues name slave_pids synchronised_slave_pids
|
| Pour forcer la synchronisation d'une queue |
rabbitmqctl sync_queue <queue_name>
|
| Description | Commande |
|---|---|
| Statistiques sur le serveur |
redis-cli info
|
| Tester la connectivité / Moniteur |
redis-cli -p <port> monitor
|
| Vider complétement le cache |
redis-cli FLUSHALL
|
| Vider le cache de la BDD actuellement sélectionnée |
redis-cli FLUSHDB
|
| Lister les entrées |
redis-cli KEYS *
|
| Lister les connexions |
redis-cli client list
|
| Éteindre le serveur en forçant une sauvegarde de la BDD |
redis-cli SHUTDOWN save
|
| Description | Commande |
|---|---|
| Vérification avant installation d'un package |
apt-get install -s mon_paquet
|
| Information du package |
apt-cache show $package
|
| Mémoire disponible |
free -mt
|
| Espace disponible par partition |
df -h
|
| Effectuer un scan disk d'une partition |
ncdu -x /$dir
|
| Voir en temps réel l'exécution d'une commande |
strace -t -p $PID
|
| Lister les process en cours d'exécution |
ps faux | grep $process
|
| Stracer des enfants (ex: PHP-FPM) ℹ️ -f (follow), -tt (timestamps avec microsec), -o (output file), -s (buffer size), -p (PID parent) |
strace -f -tt -o php-fpm.trace -s1024 -p `pidof php5-fpm | tr ' ' ','`
|
| Tester une URL (http/https) |
unset http_proxy ou unset https_proxy
curl -IH "host: <vhost>" localhost/<url>
curl -IH --insecure "host: <vhost>" https://localhost:443/<url>
curl <url> | lynx --stdin OU curl <url> | lynx --stdin --dump
|
| Afficher le backend répondant à un curl |
curl -I <host> | grep X-Director
|
| Afficher informations certificat HTTPS d'un domaine |
curl --insecure -v https://<domaine> 2>&1 | awk 'BEGIN { cert=0 } /^\* Server certificate:/ { cert=1 } /^\*/ { if (cert) print }'
|
| Augmenter la partition /var/tmp ℹ️ Exemples pour 1Go et 2.5Go |
mount -o remount,size=1G /var/tmp
mount -o remount,size=2560M /var/tmp
|
| Obtenir la version du kernel |
uname -a
|
| Lister les process qui consomment le plus de SWAP |
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | head -10
|
| Lister consommation SWAP (sans for) |
awk '/Name/ {printf $2} /VmSwap/ {print " ",$2}' /proc/*/status |sort -k 2 -n -r | head
|
| Vider le SWAP |
swapoff -a && swapon -a
|
| Savoir quels fichiers sont utilisé pour le SWAP ℹ️ Utile avant suppression par exemple |
cat /proc/swaps
|
| Vérifier le taux d'utilisation du disque |
iostat -x 1
|
| Vérifier l'état des disques sur un serveur physique |
megasasctl
|
| Créer un mot de passe aléatoire ℹ️ Option --char pour spécifier le nombre de caractères |
makepasswd
makepasswd --char 12
|
| Supprimer les fichiers plus vieux d'un an |
find $EMPLACEMENT -type f -mtime +365 -delete
|
| Vérifier sa configuration JSON (syntaxe) ℹ️ Affiche le JSON formaté si OK |
cat nomdufichier.json | python -m json.tool
|
| Afficher toutes les permissions d'un chemin |
namei -om /chemin/à/vérifier
|
| Connaître le nombre de fichiers sur les 20 derniers jours |
find . -type f -mtime +20
|
| Lister les crontabs de tous les users |
for user in $(cut -f1 -d: /etc/passwd); do echo -e "\n\n==> $user:" && crontab -u $user -l; done
|
| Supprimer des fichiers à plus de 3 jours |
find . -type f -mtime +3 -exec rm -- {} \;
|
| Supprimer les fichiers compris entre deux dates |
for i in $(find -newerct "25 Jul 2015" ! -newerct "24 Dec 2015" -ls); do rm -v $i; done
|
| Trouver les dossiers avec le plus d'inodes |
for i in `find . -xdev -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n
|
| Afficher la consommation d'inodes d'une partition |
find <partition> -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
|
| Autre méthode pour trouver les inodes (en une ligne) |
echo "Detailed Inode usage: $(pwd)" ;for d in `find -maxdepth 1 -type d |cut -d\/ -f2 |grep -xv . |sort`;do c=$(find $d |wc -l) ; printf "$c\t\t- $d\n" ; done ; printf "Total: \t\t$(find $(pwd) | wc -l)\n"
|
| Netcat (telnet bis) |
nc -zv "nom.adm" "port"
|
| Déchiffrer de la base64 |
echo "messageenbase64" | base64 -d
|
| List open files (lsof) ℹ️ Utile lorsque l'on supprime un fichier et que la taille allouée sur le disque n'est pas supprimée |
lsof
lsof | grep <nom fichier>
|
| Dé-gzipper |
gzip -d <monFichier>.gz
|
| Commandes NTP: Vérifier la synchro |
ntptrace
|
| Vérifier le status des logrotates |
cat /var/lib/logrotate/status
|
| Lancer le service snmpd |
/etc/init.d/snmpd start
/usr/sbin/snmpd -Ln -Lf /dev/null -u snmp -p /var/run/snmpd.pid
|
| Lister et tuer les processus Zombie ℹ️ Dernière commande pour tous les tuer |
ps aux | awk '{print $2,$8}' | grep Z
ps aux | awk '"[Zz]" ~ $8 { printf("%s, PID = %d\n", $8, $2); }'
kill -9 $(ps aux | awk '{print $2,$8}' | grep Z | awk '{print $1}')
|
| Déplacer des fichiers à l'aide d'un find |
find $DIRECTORY $VOS_FILTRES -exec mv -t $REP_DESTINATION {} \;
|
| Checker ce qui consomme les IO |
iotop -aoP
|
| Créer un seul .sql à partir d'un dossier de plusieurs .sql |
ls *.gz | xargs -l1 gunzip -c >> TDB
|
| Trouver les 10 fichiers modifié le plus récemment |
find . -type f -exec stat --format '%Y :%y %n' "{}" \; | sort -nr | cut -d: -f2- | head
|
| Trouver les fichiers non modifiés depuis plus de 90 jours et afficher la taille totale |
find -mtime +90 -type f -exec du -ch {}\; + | grep total$ | cut -f1 | awk '{ total += $1 }; END { print total }'
|