Réagencement

This commit is contained in:
pdiogoantunes 2017-04-07 12:01:14 +02:00
parent bc058f8b82
commit 4c0acb2a64

View file

@ -1,16 +1,16 @@
# Astuces SHell
Quelques astuces SHell. Des bouts de commandes, ou simplement les arguments qui vont bien.
## Script
# Script
Style guide : <https://google.github.io/styleguide/shell.xml>
## Configuration
# Configuration
### Initialisation du shell
## Initialisation du shell
Entre les 3 modes ("login", "interactive non-login" et "non-interactive non-login") il y a de quoi se perdre à propos des fichiers chargés. Voici un rappel assez complet : <https://github.com/rbenv/rbenv/wiki/Unix-shell-initialization>
### History Bash
## History Bash
`bashrc` :
@ -22,7 +22,7 @@ export HISTTIMEFORMAT="%c : "
> *Note* : si besoin on peut `chattr +a /root/.bash_history` pour empêcher sa suppression
### Changer l'éditeur de texte par défaut pour une commande
## Changer l'éditeur de texte par défaut pour une commande
Normalement le script (vipw, vigr, -ldapvi, ...) se réfère aux fichiers scripts (qui ne sont que des liens vers les binaires) :
@ -36,9 +36,9 @@ Sinon en ligne de commande :
$ EDITOR=nano vipw
~~~
## Manipulations
# Manipulations
### Tâches de fond
## Tâches de fond
~~~{.bash}
$ bg = "mettre en arrière plan"
@ -89,11 +89,11 @@ $ kill -9 %% #fg :x
$ exit
~~~
## Fichiers et FS
# Fichiers et FS
### Ordinaire
## Ordinaire
#### Savoir si lignes en doublon dans un fichier
### Savoir si lignes en doublon dans un fichier
~~~{.bash}
$ uniq -d <fichier>
@ -105,13 +105,13 @@ ou autrement (appliquer un filtre différent) :
$ diff <fichier> <(cat <fichier> | uniq)
~~~
#### Comparer deux fichiers quant à l'existence de nouvelles lignes
### Comparer deux fichiers quant à l'existence de nouvelles lignes
~~~{.bash}
$ grep -F -x -v -f <fichier1> <fichier2>
~~~
#### Supprimer des vieux fichiers
### Supprimer des vieux fichiers
- Par exemple, si + vieux de 30 jours en modification :
@ -120,27 +120,27 @@ $ find DIR/ -type f -mtime +30 -delete
$ find DIR/ -type f -mtime +30 -exec rm '{}' \;
~~~
#### Comparer deux fichiers à travers SSH
### Comparer deux fichiers à travers SSH
~~~{.bash}
$ diff <fichier> <(ssh REMOTE cat <fichier>)
~~~
### Répertoire
## Répertoire
#### Surveiller les ouvertures/écriture des fichiers présent dans un répertoire
### Surveiller les ouvertures/écriture des fichiers présent dans un répertoire
~~~{.bash}
$ iwatch <target>
~~~
#### Savoir les différents users qui ont écris dans /tmp
### Savoir les différents users qui ont écris dans /tmp
~~~{.bash}
$ stat -c %U /tmp/* | sort | uniq -c | sort -n
~~~
#### Comparer deux répertoires à travers SSH
### Comparer deux répertoires à travers SSH
Générique :
@ -157,9 +157,9 @@ grep -v "^skipping non-regular file" | head -n -2); do \
echo /etc/$file :; diff /etc/$file <(ssh REMOTE cat /etc/$file); done
~~~
### Espace et Inode
## Espace et Inode
#### Analyse disque
### Analyse disque
Quand il s'agit de / - penser à exclure les autres partitions (si existante de toute évidence) :
@ -175,7 +175,7 @@ Pour certaines anciennes versions :
Sinon voir du côté de [HowtoDUC](/HowtoDUC).
#### Tester l'écriture disque
### Tester l'écriture disque
Simplement, en écriture (fichier de 5.1GB) :
@ -183,7 +183,7 @@ Simplement, en écriture (fichier de 5.1GB) :
$ dd if=/dev/zero of=test count=10000000
~~~
#### Lister les répertoires ayant le plus de fichiers <=> max inode
### Lister les répertoires ayant le plus de fichiers <=> max inode
~~~{.bash}
PATH_TO_WATCH='/var'
@ -196,17 +196,17 @@ cat $TMP | (while read line; do num=$(echo $line | awk '{ print $1 }'); path=$(e
rm $TMP
~~~
## Utilisateurs UNIX
# Utilisateurs UNIX
### Lister les utilisateurs + groupe
## Lister les utilisateurs + groupe
#### UNIX
### UNIX
~~~{.bash}
$ for user in $(getent passwd | awk -F ':' '$3 > 10000 {printf $1 " "}'); do groups $user; done
~~~
#### LDAP
### LDAP
~~~{.bash}
$ for user in $(getent passwd | awk -F ':' '$3 > 10000 {printf $1 " "}'); do \
@ -214,9 +214,9 @@ ldapsearch -x -h localhost -LLL -b "dc=MACHINE,dc=DOMAIN,dc=COM" cn | tail -n2 |
tr '\n' ' ' | cut -d':' -f2 | echo -n "$(cat <&0)"; echo = $(groups $user); done
~~~
## Serveur web
# Serveur web
### Avoir un rendu des requêtes par IP à partir d'un access.log
## Avoir un rendu des requêtes par IP à partir d'un access.log
Avoir un compte rendu pour un laps de temps :
@ -239,9 +239,9 @@ Ou regarder les IPs en direct :
eval "awk '\$1 > $SEUIL {printf \"\\033[1;31m\" \$1 \" \" \$2 \"\\033[0m \\n\"; next;};{printf \$1 \" \" \$2 \"\\n\";}'"
~~~
## Process
# Process
### Un processus par rapport à une socket/port
## Un processus par rapport à une socket/port
- Connaître les sockets ouvertes et ports en écoutent par un processus :
@ -255,7 +255,7 @@ $ lsof -Pan -p PID -i
$ lsof -i :Port
~~~
### Surveiller les nouveaux processus créés
## Surveiller les nouveaux processus créés
- Lister simplement :