Outils pour utilisateurs

Outils du site


tips-tricks

Tips & Tricks

Tips

  • Des commandes et autres astuces en vrac… LOL


Supprimer des fichiers vieux de plus de 10 jours

find * -mtime +10 -exec rm -rf {} \; 2>/dev/null

Supprimer tous les dossiers ".svn"

find . -name .svn -print0 | xargs -0 rm -rf

Supprimer l'ensemble du contenue d'un répertoire sauf les fichier .log

rm !(*.log)

Création de users + password (scritpting)

passwd="VOTRE-PASSWD"
crypt=`perl -e 'print crypt("$passwd", "password"),"\n"'`
useradd --shell /bin/false --gid VOTRE-GROUP --home-dir "SON-HOME-DIR" --password $crypt LE-USER

Supprimer toutes les lignes vides d'un fichier avec VI

:g/^$/d

Tester le débit max de son serveur GNU/Linux

wget http://test-debit.free.fr/16384.rnd -O /dev/null
PS : Sur le site WEB test-debit.free.fr d'autre taille de paquet sont disponible.

Supprimer le bip Système sur OS Linux

rmmod pcspkr

Activer le routage sous Linux

  • Dynamiquement (disparait au reboot) :

echo 1 > /proc/sys/net/ipv4/ip_forward

  • Persistant (définitif) :

vi /etc/sysctl.conf
Décommenter :
net.ipv4.ip_forward=1

Ne visualiser que les lignes non-commentées d'un fichier de configuration

grep -E -v '^(#|$)'  /etc/squid/squid.conf

Réparer les tables Mysql

mysqlcheck --repair --all-databases -v -p

Changer le password du root Mysql

mysqladmin -u root -p'OLDPASSWD' password 'NEWPASSWD'

Requêter sur un annuaire LDAP

ldapsearch -b "CN=Users,DC=test,DC=local" -H ldap://dc1.test.local:389 -D 'administrateur' -w 'Pa$$w0rd'

Utilisation de SED

  • Supprimer tout le reste de la ligne après le motif “:”:

sed "s/:.*$//"

Donner le privilège ALTER VIEW sous MySQL

  • Donner le privilège SUPER:

grant SUPER on *.* to 'user'@'IP' identified by 'password';

  • Donner le droit de création de vue:

grant CREATE VIEW on *.* to 'user'@'IP' identified by 'password';

  • Check permissions:

mysql -Bse 'SELECT * FROM `information_schema`.`USER_PRIVILEGES`;' | grep "CREATE VIEW"

Donner le privilège SHOW CREATE PROCEDURE sous MySQL

  • Donner les privilèges d'insertion, modif, suppression et exécution sur la bdd:

GRANT SELECT,INSERT,UPDATE,DELETE,EXECUTE ON BDD.* to 'user'@'IP' identified by 'password';

  • Donner un droit spécifique requis sur la table proc de la bdd mysql:

GRANT SELECT ON mysql.proc to 'user'@'IP';

Réaliser une addtion sur une colonne avec AWK

ps -u www-data -o user,size | sed 1d | awk '{ SUM += $2 } END { print $1" " SUM }'

Afficher le timestamp de la commande dmesg

dmesg|perl -ne 'BEGIN{$a= time()- qx!cat /proc/uptime!};s/\[(\d+)\.\d+\]/localtime($1 + $a)/e; print $_;'

Détruire un système de fichiers *nix

shred -n 50 -z -v /dev/sdaX

Visualiser le type de moteur MySQL pour une BDD

SELECT table_schema, table_name, engine FROM INFORMATION_SCHEMA.TABLES where table_schema like "BDD";

Synchro via rsync en SSH sur un port différent

rsync -avz $SOURCE -e 'ssh -p $PORT' $DEST

Debug des process PHP-FPM

strace `ps -ef | grep php-fpm | grep -v "grep" | awk '{print "-p" $2}' | xargs`

Afficher les requêtes HTTP entrantes avec TCPDUMP selon le type

  • POST

tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

  • GET

tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

MYSQL: gestion des logs à chaud

  • Dans le shell MySQL :

show variables where Variable_name like "%log%";
SET GLOBAL general_log="ON";

  • Désactiver :

SET GLOBAL general_log="OFF";

SED: afficher un intervalle entre 2 motifs

sed -n '/MOTIF1/,/MOTIF2/{//d;p}' dump.sql

INODES: compter les inodes

find $PATH -maxdepth 1 -type d -print0 | xargs -0 -I % sh -c 'echo -n "% : "; find "%" -type f | wc -l'

RAM : lister TOP 10 des process en usage RAM

ps axo pid,user,rss --sort -rss | head -11

MTR : un traceroute bien mieux

mtr -c1 -r www.googel.fr

PERL SCRIPT pour extraire une table d'un dump SQL

#!/usr/bin/perl -s -wnl
#extract a single table from a mysql dump
BEGIN {
    $table or warn
    "Usage: $0 -table=TABLE_TO_EXTRACT mysqldumpfile.sql"
    and exit 1;
}
 
/^DROP TABLE IF EXISTS `$table`/ .. /^UNLOCK TABLES;$/ and print;

Sécuriser ElasticSearch (CVE-2014-3120) via proxy Apache sur l'interface privée

  • Configuration de Kibana si c'est ES embarqué de logstash :

elasticsearch: "https://kibana.exemple.com/9200",

  • Configuration du ReverseProxy avec Authentification de votre choix (CAS dans mon contexte) :

<Location /9200>
                AuthType CAS
                Require valid-user
                ProxyPass http://10.1.1.1:9200
                ProxyPassReverse http://10.1.1.1:9200
        </Location>

  • Fermer le port 9200 sur l'interface publique du serveur ES. ;-)

Limiter la bande passante utilisée par rsync :

rsync --bwlimit=23040 
bwlimit s'exprime en KiloBytes donc 23040 pr limiter à 180Mb/s par exemple .

Afficher les permissions de fichiers/dossiers au format octal

find Storage/ -type f ! -perm 644 -exec stat -c "%a %U:%G %n" {} \;
find Storage/ -type d ! -perm 755 -exec stat -c "%a %U:%G %n" {} \;

Checker les inodes

df -i
find ./ -type f -o -type d | cut -d '/' -f 1-2 | uniq -c

Tester un envoi email via PHP (validation paramètres php.ini et mail_from spécifique)

php -r "mail('mail_to@exemple.com', 'subject', 'body', null, '-fmail_from@exemple.com');"

tips-tricks.txt · Dernière modification: 15/04/2016 à 21:15 (modification externe)

Outils de la page