Commandes Système

Find

Répertoires

find . -type d -exec chmod 750 {} \; 

Fichiers

find . -type f -exec chmod 640 {} \;    

Trouver les setuid

find / -user root -perm -4000 -exec ls -ldb {} \; > test

Fichiers modifiés depuis les 60 derniers jours

find /var/www/site.com -mtime -60 -type f -ls

Shell php c99 et r57

find /var/www/ -name \*.php -type f -print0 | xargs -0 grep c99|57

Liste les fichiers de plus de 100Mo

find /var/log/ -size +100M -exec ls -lh {} \;

Suppression de fichiers

Suppression de fichier avec caractère bizarre (non imprimable).

  ls -il donne l'inode
  find . -inum 1048786 -exec rm -i {} \;

Connaitre son bios via /dev/mem

sudo dd if=/dev/mem bs=32k skip=31 count=1 | strings -n 8 | grep -i bios

Visudo Alias

Utiliser les alias dans le visudo :

User_Alias AUT = username1, username2 , usernameX
AUT     ALL=NOPASSWD: /etc/init.d/nginx restart

~/.bashrc

Ajout de commandes dans le PATH

export PATH=$PATH:/sbin:/usr/local/sbin:/opt/mysql

Ajout de couleur au shell

PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\]:\w$\[\033[00m\]'  vert
PS1='\[\033[01;31m\]\u@\h\[\033[01;34m\]:\w#\[\033[00m\]'  rouge

Alias

alias fw4='shorewall check && shorewall restart'
alias fw6='shorewall6 check && shorewall6 restart'
alias n='nano'
alias log='tailf /var/log/syslog'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'

Avoir les dates et heures dans l’historique.

export HISTTIMEFORMAT="[%F %T] ~~~ "

Donnera :

915  [2016-03-11 15:37:44] ~~~ ls
916  [2016-03-11 15:37:45] ~~~ cd git/
917  [2016-03-11 15:37:58] ~~~ cd cfengine/
918  [2016-03-11 15:38:03] ~~~ cd files/
919  [2016-03-11 15:38:06] ~~~ cd app_monitoring_zabbix/
920  [2016-03-11 15:38:11] ~~~ cd scripts/
export HISTTIMEFORMAT="%d/%m/%y %T "

Donnera :

484  15/01/18 22:31:08 nano /etc/nginx/nginx.conf
485  15/01/18 22:31:29 service nginx configtest
486  15/01/18 22:31:33 service nginx restart

Sauvegarde MBR et ToC

dd if=/dev/sda of=~/mbr_sda.img bs=512 count=1
sfdisk -d /dev/sda > ~/table_partitions_sda_$(date +%Y%m%d).dmp

Génération de mot de passe

 openssl rand -base64 32

Recherche man page

Recherche des man page commençant par pv

man -k ^pv

donne :

pvchange (8)         - change attributes of a physical volume
pvck (8)             - check physical volume metadata
pvcreate (8)         - initialize a disk or partition for use by LVM
pvdisplay (8)        - display attributes of a physical volume
pvmove (8)           - move physical extents
pvremove (8)         - remove a physical volume
pvresize (8)         - resize a disk or partition in use by LVM2
pvs (8)              - report information about physical volumes
pvscan (8)           - scan all disks for physical volumes

Strace

Commande strace permettant d’attacher tous les process en sorti du grep, très pratique dans le cas où on peut sortir un serveur de production.

ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace -f

Permet de sortir des stats sur les appels systèmes réalisés pour tous les process en sorti du grep

ps auxw | grep sbin/apache | awk '{print"-c -p " $2}' | xargs strace -f

Il est possible de retrouver le file descriptor lié aux syscall facilement par la commande :

ls -lh /proc/*/fd | grep "numéro du file descriptor"

Compression multitread

Une URL avec une étude comparative des solutions de compression utilisant le multithreading.

http://www.linuxtricks.fr/wiki/compresser-en-multithreading-sous-linux

Tar n’est pas multithread

L’avantage d’utiliser ce type de solution est le gain de temps sur une compression massive.

Installation

 apt-get install pigz 

Utilisation

Un exemple d’utilisation placé dans un cron

 0 3 * * 1,4 find /var/lib/syslog/ -type f \( ! -name "*.gz" ! -name "*.bz2" \) -ctime +3 -exec pigz -f {} + 

Lorsque le cron est lancé, il ignore les fichiers déjà compressés, compresse les fichiers datant de plus de +3*24H avec pigz, ici la présence du xarg permet de ne pas lancer la commande x fois le nombre de fichiers sur la sortie du find.

Pour information, la solution pigz utilise 8 cores CPU par défaut.

Petit retour d’expérience sur une compression monothread (bzip2) : 1,5 jours d’execution pour 5To de data pour 4h via une compression multithread (pigz).

Voir un cas d’usage dans un script de sauvegarde ici backup

Debian < 8.x

/etc/init.d/nfs-common stop
/etc/init.d/nfs-common start
/etc/init.d/nfs-common restart

ou

service nginx stop|start|restart|configtest 

retrait d’un daemon au démarrage

insserv -r bind9
update-rc.d -f bind9 remove

Debian > 8.x Systemctl

Activer ou désactiver un service

systemctl disable bind9
systemctl enable ssh

Lancement d’un service

systemctl start nginx
systemctl stop nginx

Voir le temps de start d’une machine

systemd-analyze blame
systemd-analyze time

Générer un graph

systemd-analyze plot > plot.svg
eog plot.svg 

Gestion NTP

configuration dans /etc/systemd/timesyncd.conf

[Time]
NTP=10.4.0.1 10.4.0.2
FallbackNTP=ntp.ubuntu.com

Gestion du processus

systemctl status systemd-timesyncd.service
systemctl start systemd-timesyncd.service
systemctl enable systemd-timesyncd.service

Contrôle

timedatectl
  
Local time: mer. 2018-01-17 14:34:04 CET
Universal time: mer. 2018-01-17 13:34:04 UTC
RTC time: mer. 2018-01-17 13:34:04
Time zone: Europe/Paris (CET, +0100)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Bind de Macros

Installation :

apt-get install xbindkeys
apt-get install xvkbd
xbindkeys --defaults > /home/user1/.xbindkeysrc

Exemple de configuration :

Dans /home/user1/.xbindkeysrc :

"xvkbd -xsendevent -text "find . -type f -cmin -70""
  control+F2

Relancer le process

killall xbindkeys
xbindkeys

La combinaison des touches CTRL+F2 sortira la commande : find . -type f -cmin -70

Ubuntu LTS status

Cette commande permet de connaitre avec précision la date limite de support de la distribution et de ses paquets.

ubuntu-support-status
Support status summary of 'srv-test-01':

You have 505 packages (95.8%) supported until avril 2021 (5y)
You have 2 packages (0.4%) supported until avril 2019 (3y)
You have 10 packages (1.9%) supported until janvier 2023 (5y)

You have 0 packages (0.0%) that can not/no-longer be downloaded
You have 10 packages (1.9%) that are unsupported

Problem with defaults entries

Dans les log ou dans les mails, ceci peut la ligne de log ci-dessous, lorsque qu’on utilise une authentification externe.

srv-01 : Jun 29 14:27:43 : user : problem with defaults entries ; TTY=pts/0 ; PWD=/home/user ; 

Résolution : dans /etc/nsswitch remplacer :

sudoers:        files sss     
 
par  sudoers:        files

Ceci n’empêche pas un groupe de l’AD définit en tant que sudo user de fonctionner.

Correction du bug Homedir pour user AD

echo "session required pam_mkhomedir.so skel=/etc/skel/ umask=0022" | sudo tee -a /etc/pam.d/common-session