7. Linux

7.1. Réduire un pdf

votre pdf est trop gros ? Allez ! Au régime !

gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOUTPUTFILE=outfile.pdf -f infile.pdf

7.2. Utiliser openVPN

Dans /home/metivier/bin/metivier_ipgp_vpn_styx entrer dans un terminal:

sudo openvpn --config ipgp_vpn_styx.conf

7.3. Clés openSSL et génération de certificat TLS

Piqué quelque part sur la toile j’ai malheureusement oublié où… self-signed SSL certificate using the OpenSSL

complete the following steps:

  1. Write down the Common Name (CN) for your SSL Certificate. The CN is the fully qualified name for the system that uses the certificate. For static DNS, use the hostname or IP address set in your Gateway Cluster (for example. 192.16.183.131 or dp1.acme.com).

  2. Run the following OpenSSL command to generate your private key and public certificate. Answer the questions and enter the Common Name when prompted.

openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
  1. Review the created certificate:

openssl x509 -text -noout -in certificate.pem

If you need to merge key and certificate:

  1. Combine your key and certificate in a PKCS#12 (P12) bundle:

openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12
  1. Validate your P2 file.

openssl pkcs12 -in certificate.p12 -noout -info

7.4. Markdown vers html

pandoc infile.md -o outfile.html

De façon générale utiliser pandoc pour la conversion de documents

7.5. Extraire des pages d’un pdf

pdftk full-pdf.pdf cat 12-15 output outfile_p12-15.pdf

7.6. Forward et réponse automatique d’absence

Utiliser .procmail sur idefix

7.7. Serveur de temps à l’IPG:

il faut utiliser les serveurs de temps de l’IPG quand on est à l’intérieur de la maison :)

sudo vi /etc/systemd/timesyncd.conf
# dans le fichier ajouter la ligne
[Time]
NTP=ntp1.ipgp.fr, ntp2.ipgp.fr, ntp3.ipgp.fr

7.8. Faire un pdf de ce howto :))

dans le dossier racine sphinx (ici Howto donc)

make latexpdf

7.9. Tranformer un film .MOV en .webm ou .mp4

Utiliser la librairie ffmpeg. Dans sa forme le plus simple cela ressemble à

ffmpeg -i fname.MOV fname.webm

7.10. Nextcloud

..note:

Il ne suffit pas de mettre à jour le serveur, il faut aussi mettre à jour le client et
apt-get ne le fait pas !

7.11. Monter son iPhone:

Utile pour accéder au DCIM de l’appareil photo et rapatrier rapidement les fichiers. Utiliser la librairie ifuse. Créer un directory dans son répertoire par exemple

mkdir ~/Machines/iphone

puis monter l’iphone après l’avoir branché

ifuse  ~/Machine/iphone

7.12. Fabriquer son propre log apache

base de données mariadb avec deux tables, une table qui récupère les données des logs et une dans laquelle je stocke les données traitées car la table log est très très gourmande dès que l’on a un serveur qui fonctionne en production avec plusieurs milliers de connexions chaque jour ce qui est le cas de morpho. j’ai donc un script qui s’exécute tous les soirs à minuit moins une qui récupère les données du log et peuple la table tblLog

import numpy as np
from sqlalchemy import create_engine

engine = create_engine("mysql://user:pass@localhost/apachelog")
conn = engine.connect()

f = open('/var/log/apache2/access.log','r')
lines  = f.readlines()
f.close()

site_pages = {"nextcloud":0,"safe-m":0,"cn18":0,"metivier":0,"safem_verse":0,"boaform":0,"saladyn":0,"ASTER":0}
site_conns = {"nextcloud":[],"safe-m":[],"cn18":[],"metivier":[],"safem_verse":[],"boaform":[],"saladyn":[],"ASTER":[]}
Mo_dic={"Jan":1,"Feb":2,"Mar":3,"Apr":4,"May":5,"Jun":6,"Jul":7,"Aug":8,"Sep":9,"Oct":10,"Nov":11,"Dec":12}
for line in lines:
      data = line.strip('[').strip(']').split(' ')
      ip = data[0]
      con = data[1]
      user = data[2]
      when = data[3][1:]
      when = when.split('/')
      D = when[0]
      Mo = Mo_dic[when[1]]
      (Y,H,Mi,S) = when[2].split(":")

      what = data[6]
      if what[0]=='/':
              what = what.split('/')[1]

              if what in site_pages.keys():
                      site_pages[what] += 1
                      sql = "insert into tblLog values (NULL, %s,%s,%s,%s,%s,%s,%s,%s,%s)"
                      conn.execute(sql,(Y,Mo,D,H,Mi,S,ip,user,what))

                      if ip not in site_conns[what]:
                              site_conns[what].append(ip)

conn.close()

Puis, une fois de temps en temps, je fais le ménage et je transfère les données de la table tblLog vers la table logsum avec une ligne de SQL

insert into logsum select  Y, Mo, D, site, ip, count(*) from tblLog group by Y, Mo, D, site, ip;

7.13. Cloner une carte SD Rasberry

7.13.1. Depuis la carte vers une img

sudo dd bs=32M if=/dev/sda of=pi-DDMMYY.img

7.13.2. Depuis une img

c’est presque la même commande mais inversée. ici device sera sda ou sdb probablement.

sudo dd bs=32M if=pi-DDMMYY.img of =/dev/device

7.14. Problème de mise à jour du noyau

Lors d’une mise à jour j’ai parfois le message suivant

gzip: stdout: No space left on device E: mkinitramfs failure cpio 141 gzip 1

et la mise génération d’une image du noyau n’aboutit pas. Après vérification (df) effectivement la partition boot semble bien pleine. Pour l’instant je corrige ce problème en faisant

sudo apt-get autoremove --purge

ce qui permet de faire le vide dans les noyaux anciens et donc libérer l’espace précieux dont a besoin apt pour mettre à jour le noyau.

Pour une explication complête https://askubuntu.com/questions/929305/gzip-stdout-no-space-left-on-device-e-mkinitramfs-failure-cpio-141-gzip-1

7.15. Autoriser TLS 1.0

Je vis entouré de sites qui ne sont pas à jour en terme de sécurité. Pas grave mais firefox (et thunderbird) lui se met à jour et n’accepte plus, par défaut, la connexion aux sites qu’il considère comme non sécurisé. La solution consiste à baisser le niveau de sécurité pour autoriser les versions 1 de TLS.

7.15.1. Firefox

  • Dans un onglet entrer about:config

  • puis dans la barre de recherche entrer TLS

  • éditer la version min et mettre à 1 (Dans les dernières versions de firefox elle est à 3)

7.15.2. Thunderbird

  • Edit > Settings

  • Tout en bas Config Editor

  • tls.version et mettre la version min à 1 (idem elle doit être à 3 par défaut)

7.16. Démonter un appareil photo en ligne de commande

utile pour permettre l’acquisition automatisée de photos avec gphoto2. Cela permet de forcer le démontage. Sinon gphoto2 refuse de prendre une photo.

gio mount -s gphoto2

7.17. Changer des disques à chaud et redimensionner les partitions

J’ai dû faire des remplacements de disque et un upgrade sur un serveur poweredge 415 pour deux raisons

  • la paire de disque (RAID 1 matériel) de mon serveur nextcloud était saturée il fallait la changer par une parie de disques plus gros

  • le système (debian 10) était obsolète, plus suivi, et j’avais des problèmes de mise à jour.

j’avais initialement prévu d’installer la nouvelle paire de disques avec le contrôleur raid puis de copier l’ancien disque sur les nouveaux mais j’ai un peu trainé et des collègues m’ont gentiment fait remarquer qu’ils avaient besoin du serveur… Gràce aux conseils de notre super administrateur réseau Pierrick, j’ai procédé comme suit

  • Remplacer un des 3 To de la paire existante par un 8 To, laisser le RAID se reconstruire et faire pareil avec le deuxième disque ensuite.

    • installation du disque dans l’ordi éteint

    • démarrage ctrl-R pour accéder au contrôleur raid

    • dans le second menu sélectionner le disque qui est ready mais pas online

    • faire un « make global HS », la reconstruction démarre le statut du disque passe de ready à building

  • Une fois que les deux disques de 8 To sont en place et dans cet ordre :

    • Augmenter la taille du Virtual Disk dans le contrôleur RAID

    • Augmenter la taille du filesystem pour qu’il se cale sur les nouvelles frontières de la partition (« resize2fs /dev/sdb » pour de l’ext4).

Dans mon cas je n’ai pas eu à utiliser fdisk pour étendre la partition car sdb n’en a pas…Petite étourderie probable de ma part lors de l’installation, tout le disque est utilisé. Quelques références sur l’augmentation de taille de partitions (avec fdisk donc pour les disques bien partitionnés):

7.18. Bug codium

Après une mise à jour, codium crash dès que je tente de toucher au menu file. une workaround a été trouvé: https://43.154.20.36/VSCodium/vscodium/issues/2082 il suffit d’aller dans les settings et de changer la propriété suivante « window.titleBarStyle »: « custom »

Dernière modification le 2024-11-08