6. Linux¶
6.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
6.2. Utiliser openVPN¶
Dans /home/metivier/bin/metivier_ipgp_vpn_styx entrer dans un terminal:
sudo openvpn --config ipgp_vpn_styx.conf
6.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:
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).
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
Review the created certificate:
openssl x509 -text -noout -in certificate.pem
If you need to merge key and certificate:
Combine your key and certificate in a PKCS#12 (P12) bundle:
openssl pkcs12 -inkey key.pem -in certificate.pem -export -out certificate.p12
Validate your P2 file.
openssl pkcs12 -in certificate.p12 -noout -info
6.4. Markdown vers html¶
pandoc infile.md -o outfile.html
De façon générale utiliser pandoc pour la conversion de documents
6.5. Extraire des pages d’un pdf¶
pdftk full-pdf.pdf cat 12-15 output outfile_p12-15.pdf
6.6. Forward et réponse automatique d’absence¶
Utiliser .procmail sur idefix
6.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
6.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
6.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 !
6.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
6.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;
6.13. Cloner une carte SD Rasberry¶
6.13.1. Depuis la carte vers une img¶
sudo dd bs=32M if=/dev/sda of=pi-DDMMYY.img
6.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
6.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
Dernière modification le 2024-03-12