jeudi 12 novembre 2009

putty : créer un tunnel ...

J'ai besoin d'accéder a un port particulier auquel je n'ai pas accès directement, mais auquel une autre machine a accès ... Dans mon cas, je veux accéder à une console weblogic situé sur mon serveur "cible" sur le port 7001, et je n'ai qu'accès à un autre serveur "dit accessible" (qui lui a accès au serveur de cible et au port 7001) ...

Il faut donc que je crée un tunnel ssh ... avec putty ...
1) configurer putty :



Tout d'abord on se rend sur la rubrique Tunnels de putty ...
ici, on voit que ds source port, je mets mon PC en local 127.0.0.2:11151
et que je mets dans destination port le serveur et le port cible : 10.14.51.139:11151
et ne pas oublier d'appuyer sur "add"

A noter qu'il faut faire attention aux translation d'adresse IP (ici l'adresse IP, il faut mettre l'adresse IP du serveur "cible" vu par le serveur "accèdé"


2) Se connecter au serveur accessible via ssh ... le tunnel est fait ...

3) Le tunnel est fait, maintenant je lance mon browser sur http://localhost:11151/console ... et c'est magique j'obtient le display de la console weblogic !!!

vendredi 6 novembre 2009

linux : afficher l'espace disque utilisé ou la taille de repertoire

La commande df affiche l'ensemble des points de montage et l'espace occupé, et l'option -h permet un affichage "human readable" :

df -h

La commande du affiche l'ensemble des points de montage et l'espace occupé, et l'option -h permet un affichage "human readable" :

du -h --max-depth=1

mardi 3 novembre 2009

linux : trouver un process qui utilise un port

la commande netstat -ap permet d'afficher les port et n° de PID qui utlise le port ... le grep fait un filtre ...
netstat -ap | grep 7670

mercredi 28 octobre 2009

weblogic : installation d'un domain ... via config.sh ...

Voici le configuration wizard en ligne de commande :

Tapez: ./config.sh –mode=console
Ensuite il suffit de répondre aux questions posées par le script ... A noter qu'il est possible de l'utiliser sous Linux/Unix et Windows ...


Il existe le mode silencieux :

./config.sh -mode=silent -silent_script=MonScript.txt

Un exemple de script se trouve dans l'installe de bea ${BEA_HOME}\weblogic81\common\templates\silent_scripts\domain_wls.txt ...

Une syntaxe particulière et relativement simple existe pour ce type de script ...


//This is an example of a Configuration Wizard silent script. This example uses the
// Basic WebLogic Server Domain template to show how to open, modify, and write out
// a domain in silent mode. Please note that many values used in this script are subject
// to change based on your WebLogic installation and the template you are using.
//
// Usage:
// = config.cmd -mode=silent -silent_script=
// = ./config.sh -mode=silent -silent_script=
//
// Where:
// should be the full path to the silent script.
/////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////
//Read in a domain template.
/////////////////////////////////////////////////////////////////////////////////////////
read template from
"D:\bea\weblogic81/common/templates/domains/wls.jar";

/////////////////////////////////////////////////////////////////////////////////////////
//Find and configure the Admin Server.
/////////////////////////////////////////////////////////////////////////////////////////
find Server "myserver" as s1;
set s1.ListenAddress "";
set s1.ListenPort "7001";
set s1.SSL.Enabled "true";
set s1.SSL.ListenPort "7002";

/////////////////////////////////////////////////////////////////////////////////////////
//Create a JMSQueue.
/////////////////////////////////////////////////////////////////////////////////////////
//A JMSServer has to be created first.
create JMSServer "myJMSServer" as jmsserver;
create JMSQueue "myJMSQueue" as myq;
//required attribute
set myq.JNDIName "jms/myjmsqueue";
//required attribute
set myq.JMSServer "myJMSServer";
//optional attribute
//set myq.StoreEnabled "false";
//target "myJMSServer" to server "myserver"
assign JMSServer "myJMSServer" to target "myserver";

/////////////////////////////////////////////////////////////////////////////////////////
//Create a JDBCConnectionPool.
/////////////////////////////////////////////////////////////////////////////////////////
create JDBCConnectionPool "demoPool" as mypool;
//required attribute
set mypool.DriverName "com.pointbase.jdbc.jdbcUniversalDriver";
//required attribute
set mypool.URL "jdbc:pointbase:server://localhost:9092/demo";
//required attribute
set mypool.Password "PBPUBLIC";
//optional attribute (but it's recommended you set the db user...)
set mypool.Properties "user=PBPUBLIC";
//target all JDBC connection pools to server "myserver"
assign JDBCConnectionPool "*" to target "myserver";

/////////////////////////////////////////////////////////////////////////////////////////
//target existing applications.
/////////////////////////////////////////////////////////////////////////////////////////
//target applications only when they exist in current domain template
//assign application "*" to target "myserver";

/////////////////////////////////////////////////////////////////////////////////////////
//Create the admin user and password.
/////////////////////////////////////////////////////////////////////////////////////////
find User "weblogic" as u1;
set u1.password "weblogic";

/////////////////////////////////////////////////////////////////////////////////////////
//Write out the domain.
/////////////////////////////////////////////////////////////////////////////////////////
set OverwriteDomain "true";
write domain to "D:\bea/user_projects/domains/wls";

/////////////////////////////////////////////////////////////////////////////////////////
//Close domain template to indicate completion of work.
/////////////////////////////////////////////////////////////////////////////////////////
close template;



Un article très complet se trouve ici

unix : lancer des scripts automatique via crontab

Voici, un petit extrait de wikipedia .... Evidemment, il faut les droits unix adequates ...

Rappel des commandes utiles:
crontab -l (liste des commandes crotab)

crontab -e (edition de la crontab via vi)

crontab -r (supprime la crontab via vi)

Imaginons que l'on veuille faire un journal (dans le fichier /tmp/log_df.txt par exemple) automatisé de l'espace disque libre (commande df) à des intervalles de temps précis :

* Tous les jours à 23h30 :

30 23 * * * df >>/tmp/log_df.txt

* Toutes les heures, passées de 5 minutes :

5 * * * * df >>/tmp/log_df.txt

* Tous les premiers du mois à 23h30 :

30 23 1 * * df >>/tmp/log_df.txt

mardi 27 octobre 2009

java : MAJ CLOB oracle

voici un petit exemple crad ... de code pour update un CLOB sous oracle


/**
*
*/
package com.valo.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Writer;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import oracle.jdbc.OracleConnection;
import oracle.jdbc.pool.OracleDataSource;
import oracle.sql.CLOB;

public class ClobUpdater {

private static final String DB_ID = "jdbc:oracle:thin:@unServeur:1234:MaBase";
private static final String DB_USER = "TOTO";
private static final String DB_USER_PWD = "TITI";
private static String file1 ="D:/Tmp/ToutManuel.txt" ;
private static int ID1 = 42004618;
private static String file2 ="D:/Tmp/ToutManuel2.txt" ;
private static int ID2 = 42004619;


/**
* @param args
*/
public static void main(String[] args) {
ClobUpdater updater = new ClobUpdater();
updater.updateFromFile(ID1, file1);
updater.updateFromFile(ID2, file2);
}

public void updateFromFile(int ID, String filenameURL){

File fichierALire = new File(filenameURL);
BufferedReader reader = null;
OracleDataSource ods;
OracleConnection c = null;

try {
ods = new OracleDataSource();
ods.setURL(DB_ID);
ods.setUser(DB_USER);
ods.setPassword(DB_USER_PWD);
c = (OracleConnection) ods.getConnection();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

try {
reader = new BufferedReader(new FileReader(fichierALire));
char [] buffer = new char[1024 * 8];
int lus = 0;
StringBuffer strBuffer = new StringBuffer();
String strLus = null;

while((lus = reader.read(buffer)) != -1)
{
strLus = new String(buffer,0,lus);
System.out.println("lus = " + strLus);
strBuffer.append(strLus);
}

// lecture termine
CLOB tmpCLOB = CLOB.createTemporary(c,true,CLOB.DURATION_SESSION);
Writer w1 = tmpCLOB.getCharacterOutputStream();
String chaineAEcrire = strBuffer.toString();
w1.write(chaineAEcrire);
w1.close();

String sqlUpdate = "UPDATE uneTable SET uneColonne = ? WHERE ID = ?";
PreparedStatement st = c.prepareStatement(sqlUpdate);
st.setClob(1,tmpCLOB);
st.setInt(2,ID);
int nbMaj = st.executeUpdate();
System.out.println("nb MAJ = " + nbMaj);
c.commit();
st.close();
c.close();

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
if(c!= null)
{
try {
c.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

}

lundi 26 octobre 2009

unix : recherche de fichiers de grande taille

Voici une commande qui peut vous être utile :

Vérifier l’espace disque sur le serveur en vous connectant avec le user associé
Tout d’abord , lancer :
df –k

puis si les point de montage /devel ou /orcle sont proche des 100% … lancer ce type de commande pour les logs :

find /root/bo/ -name "*.log" -size +1000k -ctime +3 -exec rm {} \;

Attention, cette commande nettoie tout les fichiers *.log de plus de 3 jours et de taille > 1000k … dans le répertoire /root/bo/