Table des matières
4 billet(s) pour janvier 2026
| AWX sur K8S Kind - partage de fichier pour les blob - Execution pods | 2026/01/26 10:15 | Jean-Baptiste |
| Notes rsh rcp | 2026/01/21 18:08 | Jean-Baptiste |
| Git - Duplication d'un dépôt | 2026/01/19 10:22 | Jean-Baptiste |
| Exemple simple de conf Nagios | 2026/01/14 10:07 | Jean-Baptiste |
Notes CouchDB
Voir aussi :
- MongoDB
- ArangoDB
- RethinkDB
Voir :
Code :
docker run -d --name my-couchdb -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password couchdb:3.2.1
WebUI Fauxton Futon
Ping
curl http://admin:password@127.0.0.1:5984
Pour Supervision
curl http://localhost:5984/_up
Show databases
curl http://admin:password@localhost:5984/_all_dbs
Create database
curl -X PUT http://127.0.0.1:5984/testdb
Show all docs
curl http://admin:password@localhost:5984/testdb/_all_docs curl http://admin:password@localhost:5984/testdb/_all_docs?include_docs=true
Upload binary file
curl -X PUT http://127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af/ artwork.jpg?rev=2-2739352689 --data-binary @artwork.jpg -H "Content-Type: image/jpg"
Opérandes de comparaison
https://guide.couchdb.org/draft/tour.html
https://dev.to/yenyih/query-in-apache-couchdb-mango-query-lfd
{ "selector": { "status": { "$eq": "draft" } }, "fields": ["_id", "_rev", "title", "content", "date", "author"], "sort": [], "limit": 10, "skip": 0, "execution_stats": true }
Bases
Insert - Post
curl -H 'Content-Type: application/json' -X POST http://admin:password@127.0.0.1:5984/test -d '{"type": "user", "username": "jean", "application": "app1"}' curl -H 'Content-Type: application/json' -X POST http://admin:password@127.0.0.1:5984/test -d '{"type": "host", "hostname": "srv1", "application": "app1"}'
Select - Get
curl -d '{"keys":["73ab9c8c5dad9442ae91e6e1920088a5"]}' -H 'Content-Type: application/json' -X POST http://admin:password@127.0.0.1:5984/test/_all_docs?include_docs=true |jq . curl -d ' { "selector": { "username": "jean" }, "fields": [ "application" ] } ' -H 'Content-Type: application/json' -X POST http://admin:password@127.0.0.1:5984/test/_find |jq .docs curl -d ' { "selector": { "hostname": "srv1", "application": { "$in": ["app1","app2"] } }, "fields": [ "application" ] } ' -H 'Content-Type: application/json' -X POST http://admin:password@127.0.0.1:5984/test/_find |jq .docs curl -X PUT http://admin:password@127.0.0.1:5984/db/_design/my_ddoc -d '{"views":{"my_filter":{"map": "function(doc) { if(doc.date && doc.title) { emit(doc.date, doc.title); }}"}}}'
function(doc){ emit(doc.table.id, null); } { "views": { "all": { "map": "function(doc) { emit(doc.title, doc) }", } } }
Programmation - db drivers
Obsolète ?
pip install -U celery-with-couchdb pip install -U celery[couchdb]
https://couchdb-python.readthedocs.io/en/latest/getting-started.html https://readthedocs.org/projects/couchdb-python/downloads/pdf/latest/
https://pythonhosted.org/Flask-CouchDB/
pip install Flask-CouchDB
import couchdb couch = couchdb.Server('localhost:5984/') db = couch['newtweets'] count = 0 for docid in db.view('_all_docs'): i = docid['id']
Voir
- cloudant
- cloudant-python-sdk
pip install --upgrade "ibmcloudant>=0.0.42"
Outils tiers
CouchBackup
Source : https://blog.cloudant.com/2020/10/09/Automated-Daily-Backups.html
The couchbackup utility is a command-line tool that allows a Cloudant database to be turned a text file.
Turn our “animals” database into a text file
couchbackup --db animals > animals.txt
It comes with a matching utility which does the reverse: restores a text file back to a Cloudant database.
Restore our animals backup to a new database
cat animals.txt | couchrestore --db animals2
All we need to do is trigger couchbackup periodically to perform a backup.
CORS - Cross-origin resource sharing
Err Cannot load M3U8: Crossdomain access denied
Cannot load M3U8: Crossdomain access denied
Solution sous Firefox
Faite [F12] / Network puis [F5] pour trouver “CORS Missing Allow Origin” dans la colone “Transferred”
Noter le ou les domaines concernés
Installer l'extention “Cross Domain - CORS”
Dans “Apply URL (regex)” saisir la (ou les) domaine
Cliquer sur “Save”
Le bouton “Cross Doamin” doit être Enable et vert. Cliquer sur “Save”
C'est mieux à présent j'ai un “403 Forbidden” mais c'est une autre histoire
Notes CORBA
Voir :
Voir aussi :
CORBA naming service
Paquets Debian
Voir aussi :
omniorb
- /usr/bin/catior
- /usr/bin/convertior
- /usr/bin/genior
- /usr/bin/nameclt
- /usr/bin/omniMapper
omniorb-nameserver (omniORB naming service)
- /usr/bin/omniNames
omniorb-idl (omniORB CORBA services idl files) \ omniorb-doc
Notes
Voir :
Naming_service -m 1 pour multicast alors qu'en fait il fallait plutot faire un lancement Naming_service -o ns.ior et au lancement du serveur serveur - -ORBInitRef NameService=file://ns.ior
Python
Notes audit
Liens :
Note :
- Penser à vérifier le NTP / l'heure des serveurs
- Penser à vérifier le SMTP des fax, scanners, imprimantes
Quelques commande pour Audit système
Disques
lsblk
Réseaux
nft list ruleset iptables -vnxL ip6tables -vnxL ip -s macsec show ss -peaonmi resolvectl status resolvectl statistics
Fichier de conf
Debian DEB Voir audit_debian_differences_de_version_entre_un_fichier_d_origine_et_le_fichier_actuelle
dpkg -l LANG=C find /etc -type f -exec dpkg -S {} 2>&1 \; |grep -e '^dpkg-query:' |tee jb_dpkg-S.txt LANG=C debsums -as 2>&1 |tee jb_debsums.txt
Pour RedHat/CentOS RPM
rpm -Va
Exemple
rpm -V -a |egrep -v -e '^missing|/var/run|/var/log|\.jar$' |sed -e 's% c % %' |awk '{print $2}' |grep -v -e '/$' |cpio -ov --format=ustar |pigz > /tmp/plop/fic-${HOSTNAME}.tar.gz
Matos
Drivers
for MODULE in $(lsmod |sed 1d |awk '{print $1}') ; do modinfo $MODULE |grep -e '^filename:' |awk '{print $2}'| xargs dpkg -S || echo -e "\t ERR IN $MODULE"; done 2>&1 |tee jb_modules.txt
Voir DKMS /var/lib/dkms/megaraid-sas
# LANG=C dpkg -S /var/lib/dkms/megaraid-sas dpkg-query: no path found matching pattern /var/lib/dkms/megaraid-sas # dpkg -S /usr/share/dkms/modules_to_force_install/megaraid-sas.force megaraid-sas-dkms: /usr/share/dkms/modules_to_force_install/megaraid-sas.force
sudoers
for user in $(awk -F':' '{print $1}' /etc/passwd) ; do sudo -U $user -l |sed -n -e '/^User /,/$$/p' |sed -e 1d |egrep -q -i '(root|all).*ALL' && echo "$user" ; done
Est-ce que cela fonctionne avec les groupes ? Les netgroups ? etc….
Ne liste pas les utilisateurs ayant des droits sur sh, bash, perl, python etc…
Config
Flux réseaux :
tcpdump tcp -p -qtn -i eth0 and not host 192.168.1.11
Config Apache
apache2ctl -S
cat /usr/local/apache/conf/httpd.conf |sed -n -e '/\<VirtualHost/,/\<\/VirtualHost/p' |egrep -i -e "DocumentRoot|ServerName|ServerAlias|^$" |grep -v -e '^#' |tr -d '\n' | sed -e 's/DocumentRoot/\n/g' | sed -e 's/ServerName/|/g' | sed -e 's/ServerAlias/|ServerAlias/g' |sed -e 's/DocumentRoot/\nDocumentRoot/g' | grep -v -e "^$" | sed -e 's/[[:space:]]//g'
Comptes système
# uid0 cat /etc/passwd |awk -F':' '{print $3":"$1}' |grep -e '^0:' # list active account for compte in $(cat /etc/shadow |awk -F':' '{print $2":"$1}' |egrep -v -e "^\*|^\!" |awk -F ':' '{print $2}') do grep -e "^$compte:" /etc/passwd done > /tmp/ftp1.txt #cat ftp1.txt |awk -F':' '{print "| "$1" || || JJ/MM/AAAA || "$6" || "}' |perl -pe 's/\n/\n|-\n/' > ftp.txt
Réseaux. Serveur
netstat -tapen |grep LISTEN |grep -v '127\.0\.0\.1' |awk '{print "| " $4 " || " $9}'
Comptes système. Clefs SSH
for hom in $(cut -d':' -f 6 /etc/passwd) ; do ls $hom/$(grep AuthorizedKeysFile /etc/ssh/sshd_config |awk '{print $2}' |sed -e 's#^%h/##' ) 2>/dev/null ;done
perl -a -F':' -ne '$HOMEUSER=$F[5] ; $CHAINE="$HOMEUSER/.ssh/authorized_keys\n" ; $CHAINE=~s|//|/| ; print $CHAINE unless /false$/ or /nologin$/' /etc/passwd
Zones DNS
for zone in $(cat /etc/bind/named.conf |grep ^zone |egrep -v 'zone "." IN {|zone "localhost" IN {|zone "127.in-addr.arpa" IN {' |awk '{print $2}'| tr -d '"' |sort); do dig -t AXFR @127.0.0.1 $zone > /tmp/dns_${HOSTNAME}_${zone}.txt ; done
MySQL
mysql -u root -p < <(echo "select host, user from mysql.user;") > /tmp/mysql_user.txt mysql -u root -p < <(echo "show databases;") > /tmp/mysql_databases.txt
Logs
à un jour et une heure précise
journalctl --since "2019-10-16 06:00" --until "2019-10-16 10:00" touch -t 1910160600 fic1 touch -t 1910161000 fic2 find / -newer fic1 -not -newer fic2 atop -r 20191016 sar -A -f /var/log/sa/sa18 last
Notes conversion paquet DEB en RPM avec Alien - exemple avec jodconverter-java
Portage de jodconverter-2.2.2 de Debian sur RedHat7
Sur Debian
apt-get download jodconverter libjodconverter-java fakeroot alien -r *.deb
On envoi les paquets RPM sur la Redhat
Sur RedHat7
yum --enablerepo=extras install epel-release yum install rpmbuild
rpmrebuild -e -p jodconverter-2.2.2-9.noarch.rpm
Ici il faut ôter les lignes correspondant à des répertoires
%dir %attr(0755, root, root) "/" %dir %attr(0755, root, root) "/usr" %dir %attr(0755, root, root) "/usr/bin"
ou
alien -r -g -v plop_all.deb cd plop sed -i 's#%dir "/"##' *.spec sed -i 's#%dir "/opt/"##' *.spec sed -i 's#%dir "/usr/bin/"##' *.spec #rpmbuild --target=noarch --buildroot "$PWD" -bb *.spec rpmbuild --buildroot "$PWD" -bb *.spec
plus bas nous ferons un ln -s /usr/share/java/jodconverter-cli-2.2.2.jar /usr/share/java/jodconverter-cli.jar
Il doit avoir une manière plus propre de faire cela.
Ici nous effacerons simplement la ligne ci-dessous
%attr(0777, root, root) "/usr/share/java/jodconverter-cli.jar"
Sinon nous aurions cette erreur
attention : Explicit %attr() mode not applicaple to symlink: /root/.tmp/rpmrebuild.4635/work/root/usr/share/java/jodconverter-cli.jar
Construisons de nouveau notre RPM
cd rpmbuild rpmbuild --target=noarch -bb
Même chose avec l'autre paquet libjodconverter-java-2.2.2-8.noarch.rpm
rpmrebuild -e -p libjodconverter-java-2.2.2-8.noarch.rpm cd rpmbuild rpmbuild --target=noarch -bb
Correction chemin et dépendance :
: Note il aurait été préférable de modifier le script bash /usr/bin/jodconverter que de faire des liens symbolique dans tous les sens
yum install libreoffice-core libreoffice-ure libreoffice-writer yum install apache-commons-io slf4j maven xstream ln -s /usr/share/java/jodconverter-2.2.2.jar /usr/share/java/jodconverter.jar ln -s /usr/share/java/jodconverter-cli-2.2.2.jar /usr/share/java/jodconverter-cli.jar ln -s /usr/lib64/libreoffice /usr/lib/ ln -s /usr/lib64/libreoffice/ure/share/java/ridl.jar /usr/share/java/ ln -s /usr/share/java/slf4j/slf4j-api.jar /usr/share/java/slf4j-api
En cas de pb
bash -x $(which jodconverter)
On essaye !
jodconverter fichier.odt fichier.pdf
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection.<init>(AbstractOpenOfficeConnection.java:44)
at com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection.<init>(SocketOpenOfficeConnection.java:32)
at com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection.<init>(SocketOpenOfficeConnection.java:28)
at com.artofsolving.jodconverter.cli.ConvertDocument.main(ConvertDocument.java:118)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more
On a oublié de démarrer LibreOffice,
Démarrons le
soffice --headless --accept="socket,port=8100;urp;"
/usr/lib64/libreoffice/program/soffice.bin X11 error: Can't open display: Set DISPLAY environment variable, use -display option or check permissions of your X-Server (See "man X" resp. "man xhost" for details)
Il faulait le paquet libreoffice-headless
yum install libreoffice-headless
jodconverter fichier.odt fichier.pdf
encore une erreur
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection.<init>(AbstractOpenOfficeConnection.java:44)
at com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection.<init>(SocketOpenOfficeConnection.java:32)
at com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection.<init>(SocketOpenOfficeConnection.java:28)
at com.artofsolving.jodconverter.cli.ConvertDocument.main(ConvertDocument.java:118)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 4 more
Modification du script jodconverter (Ajout de plusieurs jar dans dans le CLASSPATH)
/usr/bin/jodconverter
#!/bin/sh if [ "$1" = "-classpath" ] then CLASSPATH="$2" shift 2 fi JAVACLASSES=/usr/share/java CLASSPATH="${CLASSPATH:-.}:$JAVACLASSES/jodconverter-cli.jar" # jodconverter-cli deps CLASSPATH="$CLASSPATH:$JAVACLASSES/commons-cli.jar:$JAVACLASSES/commons-io.jar:$JAVACLASSES/jodconverter.jar" # libjodconverter-java deps CLASSPATH="$CLASSPATH:$JAVACLASSES/ridl.jar:/usr/lib/libreoffice/program/classes/unoil.jar:$JAVACLASSES/juh.jar:$JAVACLASSES/slf4j-api.jar:$JAVACLASSES/commons-io.jar:$JAVACLASSES/xstream.jar" # slf4j-api deps CLASSPATH="$CLASSPATH:$JAVACLASSES/slf4j/slf4j-api.jar" # Portage sur CentOS7 CLASSPATH="$CLASSPATH:/usr/lib64/libreoffice/ure/share/java/java_uno.jar:/usr/lib64/libreoffice/ure/share/java/juh.jar:/usr/lib64/libreoffice/ure/share/java/jurt.jar:/usr/lib64/libreoffice/ure/share/java/ridl.jar:/usr/lib64/libreoffice/ure/share/java/unoloader.jar:/usr/share/java/slf4j/jcl-over-slf4j.jar:/usr/share/java/slf4j/jul-to-slf4j.jar:/usr/share/java/slf4j/log4j-over-slf4j.jar:/usr/share/java/slf4j/slf4j-api.jar:/usr/share/java/slf4j/slf4j-ext.jar:/usr/share/java/slf4j/slf4j-migrator.jar:/usr/share/java/slf4j/slf4j-simple.jar:/usr/share/java/slf4j/slf4j-site.jar" export CLASSPATH exec java com.artofsolving.jodconverter.cli.ConvertDocument "$@"
Pb RPM build errors: Arch dependent binaries in noarch packag
fakeroot alien -r /home/jean/atop-netatop-dkms_0.7-1+jb2_all.deb
Warning: Skipping conversion of scripts in package atop-netatop-dkms: postinst prerm
Warning: Use the --scripts parameter to include the scripts.
Package build failed. Here's the log of the command (cd atop-netatop-dkms-0.7; rpmbuild --buildroot='/tmp/atop-netatop-dkms-0.7' -bb --target noarch 'atop-netatop-dkms-0.7-2.spec'):
Building target platforms: noarch
Building for target noarch
Processing files: atop-netatop-dkms-0.7-2.noarch
Provides: atop-netatop-dkms = 0.7-2
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libz.so.1()(64bit) rtld(GNU_HASH)
error: Arch dependent binaries in noarch package
RPM build errors:
Arch dependent binaries in noarch packag
fakeroot alien -r atop-netatop-dkms_0.7-1+jb2_all.deb --scripts --target=x86_64
Création de paquet RPM sous Debian
apt-get install rpm rpm2cpio
