Sous Linux, comment modifier un fichier dans un zip sans le décompresser ?

Comment modifier un zip sans le décompresser sous Linux

Se mettre dans le bon répertoire et mettre le chemin du fichier du zip qu’on souhaite modifier

cd /Vers/le/repertoire/contenant/monFichier

zip -r /chemin/Du/Zip.zip  /cheminDeMonFichier/Dans/le/Fichier/Zip

Comment vérifier le contenu du zip sans le décompresser

unzip -l /chemin/Du/Zip.zip | grep "monFichier"

=> On vérifie la date de mise à jour

Comment supprimer un fichier dans un zip sans le décompresser

zip -d /chemin/Du/Zip.zip "/cheminDeMonFichier/Dans/le/Fichier/Zip"

 

Sources : 

Récupérer un paramètre oracle sur plusieurs serveurs en ksh sous Linux

En mode sysadmin

Etant dans une équipe d’intégration, j’ai besoin de lancer souvent de petits scripts maison, telle une sysadmin. Je ne fais pas de dev à proprement parler, j’ai juste besoin d’un résultat rapide et efficace. Mon script n’a pas besoin d’être générique ou d’avoir un max de contrôles, c’est du « ONE SHOT » en quelque sorte.

Comment je procède ?

Dans un premier temps, comme tout sysadmin, je teste d’abord le script sql en local sur les machines.

Dans un second temps, je lance le script à distance toujours en ligne de commande.

Enfin, je crée un script ksh de quelques lignes qui contiendra tout ce dont j’ai besoin : liste des serveurs, script SQL, résultat affiché sur la console.

Je vous laisse découvrir le script ci-dessous, testé et approuvé sur des bases Oracle 11g :)

#!/usr/bin/ksh

for i in server1 server2 server3 server4 server5
do
ssh -T $i <<EOF
echo $i
#amélioration de l'affichage, 200 caractères par ligne
echo "set linesize 200 " > /tmp/scriptOracle.sql
echo "show parameter parallel_max_servers" >> /tmp/scriptOracle.sql
#se déconnecter de la base
echo "exit" >> /tmp/scriptOracle.sql
#sourcer le ficher d'environnement Oracle, lancer le  script sql créé juste en haut et récupérer uniquement la ligne qui nous intéresse
        su - oracle -c ". /chemin/fichierParamOracle  ; sqlplus / as sysdba @/tmp/scriptOracle.sql" 2>/dev/null | grep parallel_max_servers
EOF
done

Résultat : 
monPrompt> ./scriptOracle.ksh
server1
parallel_max_servers                 integer                          xxx
server2
parallel_max_servers                 integer                          xxx
server3
parallel_max_servers                 integer                          xxx
server4
parallel_max_servers                 integer                          xxx
server5
parallel_max_servers                 integer                          xxx
Petit script de sysadmin

Linux Suse : Comment savoir si le multipath est configuré ?

Ou comment ne pas casser un serveur avec la commande multipath …

Avant d’agrandir ou de diminuer un logical volume sur un serveur linux, je vous conseille d’abord de vérifier si le multipath est activé ou pas sur votre serveur. En effet, j’ai eu la mauvaise idée, un jour, de m’attaquer à multipath sans savoir ce que c’est réellement. Au final, il a fallu redémarrer la VM sur laquelle je travaillais car j’ai généré un input/output error.

Donc, avant de faire quoi que ce soit, lancez ces quelques commandes ci-dessous :

multipath -l

 

=> renvoie la liste des disques ainsi que les chemins configurés vers ces disques

cat /etc/multipath.conf

 

=> affiche le contenu du fichier de configuration

multipath -ll

 

=> renvoie un statut clair de l’état des disques, exemple : active ready running, failed faulty running…

Sources :

https://www.suse.com/support/kb/doc?id=7007498
https://www.suse.com/documentation/sles10/stor_admin/data/mpiostatus.html

Linux suse : version, yast2

Fatiha ? Sous Linux Suse ?

Comme vous le savez, je suis plus Linux Redhat voire Linux Fedora que Linux Suse. Du coup, quand il faut réaliser des actions professionnelles sous Suse, j’en perds un peu mes moyens… Mais ça c’était avant que j’apprenne l’existence de l’outil Yast (merci Ludo).

Comment connaître la version de Linux Suse :

cat /etc/SuSE-release

Comment lancer l’interface d’administration de Linux Suse :

yast2

En image :

yast2-menu

Afficher la liste des modules disponibles avec yast2 :

yast2 --list

Ensuite afficher un module bien précis, par exemple dans mon cas nfs :

yast2 nfs

En image :

yast2-nfs

C’est tout pour aujourd’hui !

Source : 

cybercity.biz

 

Récupérer la mémoire utilisée par une JVM sous Websphere 8.5.5 avec wsadmin

Scripting en jython

Si vous avez suivi mes dernières aventures, vous savez que je travaille énormément sur Websphere en ce moment et plus particulièrement sur la partie wsadmin de websphere, à savoir la partie scripting. Mes anciens articles sur websphere.

Coeur du script : la récupération de la valeur de la mémoire utilisée par notre JVM. Pensez à remplacer xxServer par le nom de votre JVM.

perfName = AdminControl.completeObjectName ('type=Perf,process=xxServer,*')
perfOName = AdminControl.makeObjectName (perfName)
sigs = ['javax.management.ObjectName', 'java.lang.Boolean']
jvmName = AdminControl.completeObjectName ('type=JVM,process=xxServer,*')
params = [AdminControl.makeObjectName (jvmName), java.lang.Boolean ('false')]
jvmStats=AdminControl.invoke_jmx (perfOName, 'getStatsObject', params, sigs)
UsedMemory=jvmStats.getStatistic( 'UsedMemory').getCount()
print UsedMemory

Comment appeler ce bout de script ? Il faut appeler le script wsadmin.sh de websphere qui lui, déroulera le script ci-dessus. Les paramètres de wsadmin sont détaillés dans cet article.

#!/bin/bash

"$WAS_ROOT/bin/wsadmin.sh" $ADMIN_OPT -lang jython -f `dirname $0`/usedMemory.py

Ensuite on peut faire une boucle pour afficher la valeur de la mémoire utilisée toutes les 5 secondes, avec en prime la date :

import sys
import time
import re

count=3
while count > 0 :
## MAIN
 perfName = AdminControl.completeObjectName ('type=Perf,process=xxServer,*')
 perfOName = AdminControl.makeObjectName (perfName)
 sigs = ['javax.management.ObjectName', 'java.lang.Boolean']
 jvmName = AdminControl.completeObjectName ('type=JVM,process=xxServer,*')
 params = [AdminControl.makeObjectName (jvmName), java.lang.Boolean ('false')]
 jvmStats=AdminControl.invoke_jmx (perfOName, 'getStatsObject', params, sigs)
 UsedMemory=jvmStats.getStatistic( 'UsedMemory').getCount()
 now = time.localtime(time.time())
 print time.strftime("%d/%m/%y %H:%M:%S", now),";",UsedMemory
 time.sleep(5)

Sources :