https://forum.ubuntu-fr.org/viewtopic.php?id=2042884
sudo apt install libheif-examples
for file in *.HEIC; do heif-convert $file ${file/%.heic/.jpg}; done
https://forum.ubuntu-fr.org/viewtopic.php?id=2042884
sudo apt install libheif-examples
for file in *.HEIC; do heif-convert $file ${file/%.heic/.jpg}; done
Heimdall Linux
Équivalent de Odin
https://doc.ubuntu-fr.org/heimdall
heimdall detect
pour vois si un tél samsung est détecté
heimdall-frontend
pour une GUI
heimdall close-pc-screen
: (tente de) redémarrer et sortir du mode Download
Présentation générale -> Serveur -> Alertes -> puis Paramètres SNPM et d’e-mail dans la barre en haut. La connexoin se fait en plaintext si l’authentification est désactivée, et en StartTLS si l’auth est activée
Paramètres de l’iDRAC -> Paramètres -> Paramètres du serveur SMTP (e-mail) -> permet de paramétrer la connexion SMTP
Configuration -> Paramètres du système -> Configuration des alertes -> Configuration SMTP (e-mail)
-> permet de choisir un ou plusieurs destinataires. Penser à cocher la case “État” pour que les alertes soient effectives.
Le bouton “e-mail de test” permet de tester l’envoi SMTP.
Configuration -> Paramètres du système -> Configuration des alertes -> Événement de test
-> Permet de simuler un événement pour vérifier que les différentes alertes sont bien déclenchées. Par exemple, l’evt PDR3
simule une panne de disque.
Une liste d’events
IPMI (Intelligent Platform Management Interface) sert à monitorer directement le matériel et à le controler (powercycle etc), via port série, ou réseau
https://securitypitfalls.wordpress.com/tag/hmac/ http://www.unixsheikh.com/articles/battle-testing-data-integrity-verification-with-zfs-btrfs-and-mdadm-dm-integrity.html
sudo integritysetup format /dev/sdX
–no-wipe pour ne pas intialiser le disque (il aura donc uniquement des données corrompues)
Si le périphérique est + petit que ~ 250ko, le formatage échouera.
Infos sur le superblock :
sudo integritysetup dump /dev/sdX
# Retour avec options par défault :
Info for integrity device /dev/sdX.
superblock_version 5
log2_interleave_sectors 15
integrity_tag_size 4
journal_sections 744
provided_data_sectors 484481000
sector_size 512
log2_blocks_per_bitmap 15
flags fix_padding fix_hmac
Infos sur le mapper :
sudo integritysetup status /dev/mapper/sdX_integrity
# Retour avec options par défaut :
/dev/mapper/sdX_integrity is active.
type: INTEGRITY
tag size: 4
integrity: crc32c
device: /dev/sdh
sector size: 512 bytes
interleave sectors: 32768
size: 484481000 sectors
mode: read/write
failures: 2
journal size: 67043328 bytes
journal watermark: 50%
journal commit time: 10000 ms
sudo integritysetup open /dev/sdX sdX_integrity
Le mapper sera créé dans /dev/mapper/
.
### Disque nu
Disk /dev/sdf: 232,89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: CT250MX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
### Options par défaut
Disk /dev/mapper/sdf_integr: 231,02 GiB, 248054272000 bytes, 484481000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
On voit une perte de 2005078016 octets, soit environ 2Go, soit environ 0,8% de l’espace du disque.
sudo /sbin/sysctl -w vm.drop_caches=3
entre chaque test READ pour vider le cache, sinon vitesses exubérantes
Taille de blocs par défaut : 512
WRITE
sync; sudo dd if=/dev/zero of=/dev/sdf count=4096000; sync
4096000+0 enregistrements lus
4096000+0 enregistrements écrits
2097152000 octets (2,1 GB, 2,0 GiB) copiés, 38,4354 s, 54,6 MB/s
sync; sudo dd if=/dev/zero of=/dev/sdf bs=1k count=2048000; sync
2048000+0 enregistrements lus
2048000+0 enregistrements écrits
2097152000 octets (2,1 GB, 2,0 GiB) copiés, 35,286 s, 59,4 MB/s
sync; sudo dd if=/dev/zero of=/dev/sdf bs=2k count=1024000; sync
1024000+0 enregistrements lus
1024000+0 enregistrements écrits
2097152000 octets (2,1 GB, 2,0 GiB) copiés, 33,5331 s, 62,5 MB/s
sync; sudo dd if=/dev/zero of=/dev/sdf bs=4k count=512000; sync
512000+0 enregistrements lus
512000+0 enregistrements écrits
2097152000 octets (2,1 GB, 2,0 GiB) copiés, 9,14775 s, 229 MB/s
sync; sudo dd if=/dev/zero of=/dev/sdf bs=8k count=256000; sync
256000+0 enregistrements lus
256000+0 enregistrements écrits
2097152000 octets (2,1 GB, 2,0 GiB) copiés, 8,89703 s, 236 MB/s
sync; sudo dd if=/dev/zero of=/dev/sdf bs=1M count=1024; sync
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB, 1,0 GiB) copiés, 4,44295 s, 242 MB/s
sync; sudo dd if=/dev/zero of=/dev/sdf bs=4M count=512; sync
512+0 enregistrements lus
512+0 enregistrements écrits
2147483648 octets (2,1 GB, 2,0 GiB) copiés, 8,92596 s, 241 MB/s
sync; sudo dd if=/dev/zero of=/dev/sdf bs=8M count=256; sync
256+0 enregistrements lus
256+0 enregistrements écrits
2147483648 octets (2,1 GB, 2,0 GiB) copiés, 9,00292 s, 239 MB/s
sync; sudo dd if=/dev/zero of=/dev/sdf bs=8M count=1024; sync
1024+0 enregistrements lus
1024+0 enregistrements écrits
8589934592 octets (8,6 GB, 8,0 GiB) copiés, 33,2798 s, 258 MB/s
On a une perte massive de performances si bs inférieur à 4k. On a de meilleures performances sur un fichier de 8G que de 2G.
READ
dd if=/dev/sdf of=/dev/null count=4096000
4096000+0 enregistrements lus
4096000+0 enregistrements écrits
2097152000 octets (2,1 GB, 2,0 GiB) copiés, 5,79669 s, 362 MB/s
dd if=/dev/sdf of=/dev/null bs=1k count=2048000
2048000+0 enregistrements lus
2048000+0 enregistrements écrits
2097152000 octets (2,1 GB, 2,0 GiB) copiés, 5,69471 s, 368 MB/s
dd if=/dev/sdf of=/dev/null bs=1M count=2048
2048+0 enregistrements lus
2048+0 enregistrements écrits
2147483648 octets (2,1 GB, 2,0 GiB) copiés, 5,52223 s, 389 MB/s
dd if=/dev/sdf of=/dev/null bs=4M count=512
512+0 enregistrements lus
512+0 enregistrements écrits
2147483648 octets (2,1 GB, 2,0 GiB) copiés, 5,42488 s, 396 MB/s
dd if=/dev/sdf of=/dev/null bs=8M count=256
256+0 enregistrements lus
256+0 enregistrements écrits
2147483648 octets (2,1 GB, 2,0 GiB) copiés, 5,40028 s, 398 MB/s
Légère perte de perf avec des secteurs de 512. Max atteint vers 1M.
WRITE
sync; sudo dd if=/dev/zero of=/dev/mapper/sdf_integr bs=1M count=1024; sync
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB, 1,0 GiB) copiés, 8,40675 s, 128 MB/s
sync; sudo dd if=/dev/zero of=/dev/mapper/sdf_integr bs=4M count=1024; sync
1024+0 enregistrements lus
1024+0 enregistrements écrits
4294967296 octets (4,3 GB, 4,0 GiB) copiés, 35,5758 s, 121 MB/s
READ Erreur de lecture normale car device non initialisé lors de la création
dd if=/dev/mapper/sdf_integr of=/dev/null
dd: erreur de lecture dans '/dev/mapper/sdf_integr': Erreur d'entrée/sortie
8388608+0 enregistrements lus
8388608+0 enregistrements écrits
4294967296 octets (4,3 GB, 4,0 GiB) copiés, 13,783 s, 312 MB/s
dd if=/dev/mapper/sdf_integr of=/dev/null bs=1M count=10240
dd: erreur de lecture dans '/dev/mapper/sdf_integr': Erreur d'entrée/sortie
4096+0 enregistrements lus
4096+0 enregistrements écrits
4294967296 octets (4,3 GB, 4,0 GiB) copiés, 11,4346 s, 376 MB/s
dd if=/dev/mapper/sdf_integr of=/dev/null bs=8M count=1024
dd: erreur de lecture dans '/dev/mapper/sdf_integr': Erreur d'entrée/sortie
512+0 enregistrements lus
512+0 enregistrements écrits
4294967296 octets (4,3 GB, 4,0 GiB) copiés, 11,2318 s, 382 MB/s
C’est + rapide en secteurs de 1M (ou multiple) !
La technologie Intel Optane est un nom commercial/une application de la technologie 3D Xpoint. Il s’agit d’une technologie matérielle qui doit nécessite une compatibilité logicielle. Les SSD estampillés Optane possèdent une puce supplémentaire (?)
Sur un portable avec un SSD NVMe et le SATA configuré en “Optane RST Premium” (dans le BIOS) :
Après passage du SATA en AHCI dans le BIOS :
Si on repasse la configuration SATA en Optane, Windows redémarre correctement.
À vérifier que la modification du mode du contrôleur ne réinitialise pas le TPM, avec l’impossibilité d’accéder à un BitLocker l’utilisant ?
%windir%\sysnative\WindowsPowerShell\v1.0\powershell.exe -Executionpolicy Bypass .\testRegistryImport.ps1
%windir%\sysnative\WindowsPowerShell\v1.0\powershell.exe -Executionpolicy Bypass .\testRegistryDelete.ps1
Dans iDRAC, activer “IPMI over LAN” (dans iDARC7, Paramètres iDARAC -> Réseau)
On suppose que l’IP de l’iDRAC est 192.168.1.10
Avec un poste Linux, apt install ipmitool
Puis ipmitool -I lanplus -H 192.168.1.10 -U root my_command
le password sera demandé à la volée ;
On peut définir le mot de passe dans une variable d’environnement export IPMI_PASSWORD=“MyPassWord!?” puis ipmitool -E
Commandes : sel list ou sel elist
https://www.tzulo.com/crm/knowledgebase/47/IPMI-and-IPMITOOL-Cheat-sheet.html https://www.debiantutorials.com/installing-and-using-the-ipmi-tool/
ZNC hexchat
Sur les systèmes avec double carte-graphique AMD, il peut arriver un très long écran noir (1-2 minutes) après les boules qui tournent, et avant lécran de login.
Pour éviter le problème, on peut chercher dans le registre EnableULPS
(qui devrait se trouver dans HKLM\System\CurrentControlSet\Control\Class\...
et passer les valeurs à 0.
docker-compose.yml avec
image: mariadb
container_name: "my-db-container"
environment:
MARIADB_ROOT_PASSWORD=blabla1
MARIADB_USER=myuser
MARIADB_PASSWORD=blabla2
MARIADB_DATABASE=my-database
Vont respectivement définir le mot de passe root, créer un user avec un password, et créer une base de données.
Le user créé pourra se connecter depuis n’importe quel hôte, et aura les droits complets sur la base créée.
J’ai l’impression qu’elles ne sont utilisées que si aucune base de données (volume) n’existe déjà. Par la suite, elles n’ont aucun effet.
Les fichiers de configuration, à l’intérieur du conteneur, donc dans
/etc/mysql/
/etc/mysql/my.cnf
est un lien vers /etc/alternatives/my.cnf
qui est un lien vers /etc/mysql/mariadb.cnf
.
On peut lister les options en SQL :
SHOW VARIABLES;
Si on connaît le nom de l’option que l’on cherche on peut faire
SHOW VARIABLES LIKE 'my_config_option';
On peut aussi utiliser le wildcard %
:
SHOW VARIABLES LIKE '%option%';
Par défaut, la résolution des noms est désactivée dans la configuration MariaDB du conteneur Docker, via la directive skip-name-resolve
présente dans le fichier /etc/mysql/mariadb.conf.d/05-skipcache.cnf
.
La raison à ceci semble être que le résolveur DNS d’un conteneur est défini uniquement au moment de sa création, et s’il change, le conteneur ne recevra pas les nouvelles informations et n’aura plus de DNS disponible, ce qui ralentira considérablement les requêtes DNS.
Ceci empêche toutefois d’utiliser une syntaxe de type user@conteneur.network
pour autoriser les connexions à la base.
Pour changer ce comportement, on peut monter un fichier vide à l’emplacement du fichier de conf :
volumes:
- ./config/empty.cnf:/etc/mysql/mariadb.conf.d/05-skipcache.cnf
docker exec -it docker-db mariadb --user root -pblabla1
On arrive sur un shell type
MariaDB [(selected-database)]
Aucune base n’étant initialement sélectionnée, on a
MariaDB [(none)]
On peut directement fournir la commande à exécuter avec
-e 'COMMAND;'
Sur le shell SQL :
SELECT VERSION() ;
Éviter les points ou tirets. underscore OK.
Si besoin quand même, échapper avec backtick `
voir les différents bases :
SHOW DATABASES;
Créer une base :
CREATE DATABASE my_database;
Choisir une base pour l’usage courant :
USE my_database;
Supprimer une DB et toutes les tables dedans :
DROP DATABASE my_database;
Créer un user et restreindre l’accès depuis un domaine :
CREATE USER 'myuser'@'authorizeddomain' IDENTIFIED BY 'my-password'
Si on ne spécifie pas de “authorizeddomain”, alors ce sera %
, ce qui semble signifier “tous”.
Lister les users et le(s) domaines qui autorisent leur accès :
SELECT user,host FROM mysql.user;
Ceci va lire le contenu de la table “user” de la base “mysql” (base créée automatiquement au déploiement de MariaDB).
Supprimer un user, ou un accès :
DROP USER 'myuser'@'authorizeddomain';
Si on ne spécifie pas de “@authorizeddomain”, il va supprimer ‘user’@’%’
Voir les permissions d’un utilisateur :
SHOW GRANTS for myuser;
Ajouter des droits complets à un utilisateur :
GRANT ALL ON my_database.* TO 'my-user'@'authorizeddomain';
Les apostrophes semblent poser problème sur le nom de la base de données.
Bien ajouter le .*
car les privilèges s’appliquent aux tables.
Voir les tables d’une base :
SHOW TABLES;
# si DB déjà selectionnée
SHOW TABLES FROM my-database;
# si pas encore sélectionnée