Commandes du shell
Les redirections
0 = Stdin 1 = Stdout 2 = Stderr
Pour rediriger les flux de sorties standards sous Bash :
Redirige la sortie standard générée par la commande (stdout) dans fichier
commande 1> fichier
Redirige la sortie d'erreur standard généré par la commande (stderr) dans fichier
commande 2> fichier
Redirige stderr vers stdout
commande 2>&1
Redirige stdout et stderr dans fichier
commande &> fichier
Où commande est une commande du bash (telle que ls ou mkdir), ou un programme (vim ou emacs). Et fichier est un fichier quelconque.
Les variables
lors de l'exécution d'un script, des arguments sont affectés à des variables EX: fichier de commande = $0
arg1 = $1 $# = nombre total d'argument de $1 $x $* = affiche tous les arguments sauf $0 $$ = Pid du processus en cours $? = code de retour pour l'exécution 0=OK et 1=!OK $! = PID du dernier processus lance en tache de fond
Date d'installation d'un serveur
Il existe une commande, qui consiste à lister tous les fichiers de configuration du répertoire /etc et à prendre la date la plus ancienne.
Voici la commande à utiliser :
ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'
Une autre solution consiste à afficher la date de création du système de fichiers à l'aide de la commande tune2fs. A lancer avec le compte root de la machine :
df / | awk '{print $1}' | grep dev | xargs tune2fs -l | grep create
Informations trouvées sur www.tux-planet.fr url:http://www.tux-planet.fr/connaitre-la-date-dinstallation-dun-systeme-linux/
Créer un fichier vide
- Il est parfois utile de pouvoir créer des fichiers vide.
- Il est possible de le créer avec des données aléatoires ou des 0.
les commandes suivantes créer un fichier comprenant 1000 bloc de 1k
dd if=/dev/zero of=[Fichier] bs=1k count=1000
dd if=/dev/urandom of=[Fichier] bs=1k count=1000
Grub2
grub-install /dev/sda
update-grub
Chroot
mount --bind /dev /chroot/dev mount --bind /sys /chroot/sys mount --bind /proc /chroot/proc
Modification du shell
chsh -s /bin/bash user chsh -s /bin/false user
Rsync
rsync -av --delete-during source destination rsync -av --delete-during /src/test/ /dest/test rsync -av --delete-during /src/test/ user@server:/dest/test
Tar distant
tar -czv / | ssh user@serveur "tar -xzv -C destination"
LSATTR
Les attributs
Ils sont au nombre de seize, tous identifiables par une lettre [ASacDdIijsTtuEXZ]
-A
La date de dernier accès n'est pas mise à jour (uniquement utile pour réduire les accès disque sur les portables)
-S
Le fichier est synchrone, les écritures dans le fichier sont immédiatement effectuées sur le disque. (équivalent à l'option sync de mount appliquée à un sous-ensemble de fichiers)
-a
Le fichier ne peut être ouvert qu'en ajout pour l'écriture (fichiers journaux, etc) Seule la redirection >> peut être utilisée, le fichier ne peut être supprimé. Seul l'utilisateur root ou un programme disposant des droits nécessaires peut changer cet attribut.
-c
Le fichier est automatiquement compressé avant l'écriture sur le disque, et décompressé avant la lecture.
-D
Le dossier est synchrone (cf: -S) (équivalent à l'option dirsync de mount sur un sous ensemble de dossiers) Utilisable à partir du noyau 2.5.19
-d
Le fichier ne sera pas sauvegardé par la commande dump
-I
Ne peut être fixé par chattr, uniquement listé par lsattr Indique que le dossier est indexé.
-i
Le fichier/répertoire ne peut être modifié, effacé, renommé ou lié symboliquement, pas même par root. Seul root ou un binaire possédant les droits nécessaires peut fixer cet attribut.
-j
EXT3 uniquement. Si le système de fichier est monté avec l'option "data=ordered" ou "data=writeback", toutes les données du fichier sont écrites sur le journal avant d'être écrites dans le fichier lui-même. Si le système de fichier est monté avec l'option "data=journal", toute les données de tous les fichiers sont déjà dans le journal, l'attribut est sans effet. Seul root ou un binaire possédant les droits nécessaires peut fixer cet attribut.
-s
Quand le fichier est détruit, tous les blocs de données libérés sont mis à zéro.
-T
Utilisable à partir de la version 2.5.46 du noyau. Pas trouvé plus d'infos pour le moment.
-t
Concerne la fragmentation. Ceci n'est pour le moment pas implémenté sur l'ext2 et l'ext3 à ma connaissance.
-u
Si le fichier est effacé, son contenu est sauvegardé, cela permet à l'utilisateur de demander sa restauration.
-E
Expérimental, permet de détecter une erreur de compression, ne peut être fixé par chattr, mais peut être listé par lsattr
-X
Expérimental, indique que les données brutes d'un fichier compressé peuvent être accédées directement. Ne peut pour le moment être fixé par chattr
-Z
Expérimental, donne des informations sur l'état d'un fichier compressé. peut être uniquement listé par lsattr
Liste des processus en train de swapper
Trouver sur ce site : http://northernmost.org/blog/find-out-what-is-using-your-swap/
#!/bin/bash # Get current swap usage for all running processes # Erik Ljungstrom 27/05/2011 SUM=0 OVERALL=0 for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do PID=`echo $DIR | cut -d / -f 3` PROGNAME=`ps -p $PID -o comm --no-headers` for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'` ; do let SUM=$SUM+$SWAP done echo "PID=$PID - Swap used: $SUM - ($PROGNAME )" let OVERALL=$OVERALL+$SUM SUM=0 done echo "Overall swap used: $OVERALL"
Touver le dossier contenant trop d'inodes
for i in /*; do echo -n $i " " ; find $i |wc -l; done | sort -n -k2
Virtualbox
- Agrandir un volume disque
VBoxManage clonehd ancien.vdi --existing nouveau.vdi
vboxmanage modifyhd /home/CHEMIN/VIRTUALBOX\VOTRE.vdi --resize 80000 (80Go)
ajouter un fichier de swap
Création du fichier
fallocate -l 1G /swapfile ou dd if=/dev/zero of=/swapfile bs=1024 count=1048576 chmod 600 /swapfile
activation du swap
dans /etc/fstab /swapfile swap swap defaults 0 0 swapon -a
Section comment faire
comment augmenter un disque
On nous demande d'ajouter 50Go à la '/'
Nous supposons qu'il s'agit d'un serveur virtuel quelque soit le système de virtualisation
- installation de l'outil parted
- apt install parted
- Augmentation du disque de la VM via la console de virtualisation
- Faire reconnaître l'ajout d'espace par le système
- for i in /sys/class/scsi_device/*/device/rescan; do echo 1 > $i;done
- Augmenter la taille de la partition
- /sbin/parted ---pretend-input-tty /dev/${DEV} unit % resizepart ${PART} Yes 100%
- ${DEV}: correspond au disque sda,sdb,sdc, ...
- ${PART} : corresponds à la partition sur le disque 1,2,3
- exemple : /sbin/parted ---pretend-input-tty /dev/sdc unit % resizepart 4 Yes 100%
- Agrandir le systéme de fichier
- resize2fs /dev/${DEV}${PART}
- exemple: resize2fs /dev/sdc4
- Faire reconnaître l'ajout d'espace par le système
comment augmenter un disque avec du LVM
comment lister les fichiers de plus de 7 jours
La commande find est très utile pour rechercher des fichiers
find ${mondossier} -type f -mtime +7 -exec ls -alh {} ';'
explication :
${mondossier} doit être remplacer par un chemin sur le disque dans lequel on veut faire une recherche
-type f : recherche des fichiers et non des dossiers
-mtime +7 : pour trouver les fichiers de plus de 7jours
-exec ls -alh {} ';' : permet d'afficher le résultat en utilisant la commande ls