3 liens privés
Taille de / sans les filesytems montés
for a in /*; do mountpoint -q -- "$a" || du -s -h -x "$a"; done
Regexp for BT in Dynatrace
(/private)/?([^/]*)?(?:/C?[0-9]*)?(/[^/]*)?(/[^/]*)?(?:/C?[0-9]*)?
Split in a single BT, many path after the private.
- remove trailing /
- optionnal C123445 in second position and last position
Explanation of :
Frontend(?:(?<!Called).)*
- Frontend matches the characters Frontend literally (case sensitive)
- Non-capturing group (?:(?<!Called).)*
- (....)* :Quantifier — Matches between zero and unlimited times, as many times as possible, giving back as needed (greedy)
- Negative Lookbehind (?<!Called)
- Assert that the Regex below does not match
- <Called >matches the characters Called literally (case sensitive)
- . matches any character (except for line terminators)
Pour indiquer à microsoft que son serveur de mail n'est pas du spam :
Le programme pour être alerter des dénonciations de spam et l'état de ses IP :
https://postmaster.live.com/snds/
Le formulaire pour demander à être débloquer (depuis la FAQ):
Deliverability
"Why is my mail blocked?" If you have deliverability issues when sending to Hotmail, please read our general guidance here. If you still have problems and need to contact Hotmail Sender Support, please fill out the form here.
Et le formulaire : http://go.microsoft.com/fwlink/?LinkID=614866
Elasticsearch delete indices
curl -XDELETE localhost:9200/logstash-2015*
GUI for multiple decompiler
five different decompilers (DJ-GUI/Core, Procyon, CFR, Fernflower and Krakatau).
Liste de décompilateur Java :
JDCore (very fast)
CFR (very good and well-supported decompiler for Java 8)
Jadx, fast and with Android support
Procyon
Fernflower
JAD (very fast, but outdated)
Pense-bête de resize LV / ext4 en mode console. Ensuite création d'un filesystem sans journal pour gagner en rapidité
Unmount :
umount /home
# si impossible de démonter, vérifier qui utiliser le FS :
lsof /home
killall -u myuser
umount /home
Display :
fdisk -l
pvdisplay
vgdisplay
lvdisplay
Add disk help link:
# add a disk /dev/sda2
pvcreate /dev/sda2
# extend
vgextend home /sda2
lvextend /dev/home/homeLV /dev/sda2
resize2fs /dev/home/homeLV
Extend a disk if end of partition help link 1 help link 2:
# grow existing disk
# reboot
gdisk /dev/sda
# delete and recreate partition from same First sector but with new last sector
# i 3 (lister la partition 3, noter le first boot sector
# d 3
# n 3, remettre le bon first boot sector, le guid
# si la taille est correcte : w
# sinon
ls /sys/class/scsi_device/
echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
# si fdisk -l cassé après, utiliser gdisk et réécrire les tables
# reboot
reboot
pvresize /dev/sda3
lvextend -l +100%FREE /dev/centos/home
# Vérifier le type de filesystem : df -Th
xfs_growfs /dev/mapper/centos-home
Resize/reduce FS :
# verification du FS
e2fsck -f /dev/mapper/homeVG-homeLV
# resize un peu en dessous du LV
resize2fs /dev/mapper/homeVG-homeLV 248G
# Attention si l'ext4 n'a pas été réduit assez, on perd des données ! donc taille du LV > FS
lvresize -L 250G /dev/homeVG/homeLV
# on étend le FS à la taille du LV pour avoir tout l'espace qu'on avait gardé par précaution
resize2fs /dev/mapper/homeVG-homeLV
Creation d'un autre filesystem sans journal
lvcreate -l 100%FREE -n homeLVFast homeVG
mkfs.ext4 -t ext4 /dev/mapper/homeVG-homeLVFast
Désactivation du journal pour avoir un filesystem rapide
tune2fs -O ^has_journal /dev/mapper/homeVG-homeLVFast
dumpe2fs /dev/mapper/homeVG-homeLVFast | more
Ajout du filesystem rapide au démarrage
vi /etc/fstab
# /dev/mapper/homeVG-homeLVFast /homeFast ext4 noatime,discard,errors=remount-ro 0 1
mkdir /homeFast
mount
df -h
Compter les objets Oracle, leur taille et quelques statistiques.
Nécessite d'avoir les catalogues Oracle installés
# Long a exécuter
@${ORACLE_HOME}/rdbms/admin/catalog
# dba_data_files est créé ici (encore plus long)
@${ORACLE_HOME}/rdbms/admin/catproc
Requête traficotée :
SET PAGESIZE 50000
set linesize 300
COLUMN owner FORMAT A10
COLUMN tablespace FORMAT A15
COLUMN nomtable FORMAT A40
COLUMN OBJECT_NAME FORMAT A40
COLUMN OBJECT_TYPE FORMAT A15
COLUMN bytes FORMAT 99999999999999
COLUMN num_rows FORMAT 99999999999999
COLUMN avg_row_len FORMAT 99999999999999
SPOOL ./objectSize.txt
select
DBA_OBJECTS.owner as owner,
max(NVL2(DBA_INDEXES.tablespace_name, DBA_INDEXES.tablespace_name, NVL2(DBA_TABLES.tablespace_name, DBA_TABLES.tablespace_name, DBA_LOBS.tablespace_name))) as tablespace,
NVL2(DBA_INDEXES.TABLE_NAME, DBA_INDEXES.TABLE_NAME, NVL2(DBA_TABLES.TABLE_NAME, DBA_TABLES.TABLE_NAME, DBA_LOBS.TABLE_NAME)) as nomtable,
DBA_OBJECTS.OBJECT_NAME,
DBA_OBJECTS.OBJECT_TYPE,
sum(DBA_SEGMENTS.bytes) as bytes,
max(dba_tab_statistics.num_rows) as num_rows,
max(dba_tab_statistics.avg_row_len) as avg_row_len
from
DBA_OBJECTS
left join DBA_TABLES on (DBA_OBJECTS.OBJECT_NAME=DBA_TABLES.TABLE_NAME and DBA_OBJECTS.OWNER = DBA_TABLES.OWNER)
left join DBA_INDEXES on (DBA_OBJECTS.OBJECT_NAME=DBA_INDEXES.INDEX_NAME and DBA_OBJECTS.OWNER = DBA_INDEXES.OWNER)
left join DBA_LOBS on (DBA_OBJECTS.OBJECT_NAME=DBA_LOBS.SEGMENT_NAME and DBA_OBJECTS.OWNER = DBA_LOBS.OWNER)
left join dba_tab_statistics on (dba_tab_statistics.table_name = DBA_TABLES.TABLE_NAME) and (dba_tab_statistics.partition_name is null) and (DBA_OBJECTS.OWNER = dba_tab_statistics.OWNER)
left join DBA_SEGMENTS on (DBA_SEGMENTS.SEGMENT_NAME=DBA_OBJECTS.OBJECT_NAME and DBA_SEGMENTS.OWNER = DBA_OBJECTS.OWNER)
where
DBA_OBJECTS.OBJECT_NAME not like 'BIN$%'
and
DBA_OBJECTS.OWNER not in ('DBSNMP', 'SYS', 'SYSTEM','OUTLN', 'APPQOSSYS', 'WMSYS')
and
DBA_OBJECTS.OBJECT_TYPE IN ('TABLE', 'INDEX', 'LOBINDEX', 'LOBSEGMENT')
group by
DBA_OBJECTS.owner,
DBA_OBJECTS.OBJECT_NAME,
DBA_OBJECTS.OBJECT_TYPE,
NVL2(DBA_INDEXES.TABLE_NAME, DBA_INDEXES.TABLE_NAME, NVL2(DBA_TABLES.TABLE_NAME, DBA_TABLES.TABLE_NAME, DBA_LOBS.TABLE_NAME))
order by
DBA_OBJECTS.owner,
NVL2(DBA_INDEXES.TABLE_NAME, DBA_INDEXES.TABLE_NAME, NVL2(DBA_TABLES.TABLE_NAME, DBA_TABLES.TABLE_NAME, DBA_LOBS.TABLE_NAME)), DBA_OBJECTS.OBJECT_TYPE
;
Que je mets dans un fichier extractSize.sql et
@./extractSize.sql
Guide et snippet .htaccess (via https://shaar.libox.fr/?jlyXOQ)
Les tables temporaires dans mysql
Les variables innodb
To avoid java exception when connecting using IP
No subject alternative names present
Add the IP address in the certificate as a subjectAltName
[req]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
countryName = XX
stateOrProvinceName = N/A
localityName = N/A
organizationName = MyCertificate
commonName = 10.0.10.2:MyCertificate
[req_ext]
subjectAltName = @alt_names
[v3_req]
subjectAltName = @alt_names
[alt_names]
IP.1 = 10.0.10.2
Clé privée :
# Clé privée : KEY
# Certificate Signing Request : CSR (utilisé pour le CRT)
openssl req -nodes -newkey rsa:2048 -keyout certifssl.key -out certifssl.csr
Clé publique :
# Certificat publique : CRT
openssl x509 -req -in certifssl.csr -signkey certifssl.key -out certifssl.crt -days 999
Using keytool
keytool -genkey -alias myAlias
-keystore myStore.p12
-storepass myPassword
-storetype PKCS12
-dname cn=mytest,dc=domain,dc=com
-keyalg RSA
-validity 730 -keysize 2048
-ext SAN=IP:10.0.0.1,DNS:mytest.domain.com
Pense bête :
/opt/logstash/bin/logstash -f yourconf.conf -v --debug --verbose
./filebeat -e -c ./filebeat.yml
Installation package
dpkg -i <package.deb>
Info package
apt-cache show <package>
dpkg --print-avail PACKAGE_NAME
Fix broken package
apt-get -f install <package>
Quel repository a installé le package : spécifique, priorité, ...
apt-cache policy <package
Quel package a installé un fichier :
dpkg -S <filename>
dlocate <filename>
Quel package installé utilise <packagename>
apt-cache rdepends --installed <packagename>
Lister les packages qui prennent le plus d'espace
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
Nettoyer /var/apt/cache
sudo apt-get clean
Marquer un paquet en auto
apt-mark auto python-matplotlib-data
Savoir si le système utilise initd ou systemd
pidof /sbin/init && echo "sysvinit" || echo "other"
pidof systemd && echo "systemd" || echo "other"
Créer un fichier test.service, à mettre dans /usr/lib/systemd/system/
[Unit]
Description=Callcenter Service
[Service]
Type=oneshot
RemainAfterExit=no
User=<user>
ExecStart=<command>
ExecStop=<command>
[Install]
WantedBy=multi-user.target
Démarrer le service test
sudo systemctl start test.service
Activer le service test au démarrage
sudo systemctl enable startup.service
Equivalent strace pour windows
(Voir aussi : http://www.rohitab.com/apimonitor)
Des benchmarks de framework
setuid Permission
Garder les droits de l'exécutables plutôt que les droits du user qui lance l'exéctution
-r-sr-sr-x 3 root sys 104580 Sep 16 12:02 /usr/bin/passwd
=> Risque de sécurité.
setgid Permission
Similaire à setuid mais le groupe du process devient le groupe du fichier. Les accès sont faites en fonction du groupe.
The /usr/bin/mail command has setgid permissions:
-r-x--s--x 1 root mail 63628 Sep 16 12:01 /usr/bin/mail
Quand appliqué à un répertoire, les fichiers créés par ce processus appartient au groupe du répertoire et non au groupe de l'utilisateur qui a créé le process.
Tous les utilisateurs qui peuvent écrire dans ce répertoire peuvent le faire, mais le groupe sera tout le temps celui du répertoire avec le setguid.
Attention à bien maitriser l'ensemble des fichiers qui ont des setuid ou setgid cars ils peuvent produire des trous de sécurité. (trouver les fichiers : https://docs.oracle.com/cd/E19683-01/816-4883/6mb2joatb/index.html)
Sticky Bit
Le sticky bit a une définition différente suivant les systèmes : https://en.wikipedia.org/wiki/Sticky_bit
Permet de protéger les fichiers d'un répertoire Si un répertoire à le sticky bit les fichiers ne peuvent être détruit que par le propriétaire du fichier, du répertoire ou root.
On peut ainsi protéger les fichiers dans les répertoires partagés entre plusieurs utilisateurs (ex tmp) :
drwxrwxrwt 7 root sys 400 Sep 3 13:37 tmp