Monday, August 24, 2009

How to schedule Task in Unix?

We can schedule task in unix based machine using command crontab(symantic meaning: time table)
# Command to see what what crontab currently runing at ur machine
crontab -l

# Command to edit list of running crons
crontab -e
formatt of crontabs would be like below

* * * * *  /usr/myscript/rundummyscript.sh

above five stars stands for
   1. minute (from 0 to 59)
   2. hour (from 0 to 23)
   3. day of month (from 1 to 31)
   4. month (from 1 to 12)
   5. day of week (from 0 to 6) (0=Sunday)

some examples of scheduling jobs
1.Run script every minutes.

* * * * *  /usr/myscript/rundummyscript.sh

2. Run script at  8:15 AM   on every thursday(4)

15  8  *  *  4  /usr/myscript/rundummyscript.sh

3.  Run script at  8:15 AM   on weekdays(1-5)

15  8  *  *  1-5  /usr/myscript/rundummyscript.sh

4. Run script after every past 15 minutes in Jaunary  first day

15  *  *  1  1 /usr/myscript/rundummyscript.sh

5. Run script after every 15 minutes with every 2nd hour means run it as  00 AM (00,15,30,45 min ) and then 02 AM (00,15,30,45 min) and so on.

0,15,30,45  */2  *  *  * /usr/myscript/rundummyscript.sh
                       or
*/15  */2  *  *  * /usr/myscript/rundummyscript.sh
some special kewords

@reboot     Run once, at startup
@yearly     Run once  a year     "0 0 1 1 *"
@annually   (same as  @yearly)
@monthly    Run once  a month    "0 0 1 * *"
@weekly     Run once  a week     "0 0 * * 0"
@daily      Run once  a day      "0 0 * * *"
@midnight   (same as  @daily)
@hourly     Run once  an hour    "0 * * * *
 e.g
@hourly /usr/myscript/rundummyscript.sh

#How to store crontab O/P?
 * * * * *  /usr/myscript/rundummyscript.sh  2>&1 >> /usr/mylog/crontab.log
2 stands for STDERR and 1 for STDOUT. Above statement tells Unix to store
STDERR in STDOUT stream as well.
How to mail cron job O/P?
For this you need to install  "mailx "
and cron job will be like below
* * * * *  /usr/myscript/rundummyscript.sh  2>&1 | mail -5 "cron O/P" urname@urdomain.com

Monday, August 17, 2009

How to add weblogic servies in windows?

Adding Weblogic Service in Windows:

install.bat
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
echo on
SETLOCAL

set DOMAIN_NAME=dev_domain
set USERDOMAIN_HOME=BEA_HOME\user_projects\domains\dev_domain
set SERVER_NAME=AdminServer
set WLS_USER=weblogic
set WLS_PW=********

call "BEA_HOME\wlserver_10.3\server\bin\installSvc.cmd"

ENDLOCAL

%%%%%%%%%%%%%%%%%%%

uninstall.bat
-------------------------------------------------------
Uninstalling weblogic Service in Windows:

echo off
SETLOCAL

set DOMAIN_NAME=dev_domain
set SERVER_NAME=AdminServer
call "BEA_HOME\wlserver_10.3\server\bin\uninstallSvc.cmd"

ENDLOCAL
-------------------------------------------------------------

Tuesday, August 11, 2009

How to create multiple log files in single application?

1.

Log4JDemo1 :


package com.test.stuff;

import org.apache.log4j.Logger;

public class Log4JDemo1 {

static Logger log = Logger.getLogger("com.test.stuff.Log4JDemo1");
// use either of log object
//static Logger log1 = Logger.getLogger(Log4JDemo1.class);

public void getMessage() {
log.debug("This is my debug message.");
log.info("This is my info message.");
log.warn("This is my warn message.");
log.error("This is my error message.");
log.fatal("This is my fatal message.");
}

}
------------------------------------------

2.

Log4JDemo2 :

package com.test.stuff;

import org.apache.log4j.Logger;


public class Log4JDemo2 {

static Logger log = Logger.getLogger("com.test.stuff.Log4JDemo2");
// use either of log object
//static Logger log1 = Logger.getLogger(Log4JDemo2.class);

public void getMessage() {
log.debug("This is my debug message.");
log.info("This is my info message.");
log.warn("This is my warn message.");
log.error("This is my error message.");
log.fatal("This is my fatal message.");
}

}

---------------------------------------------

3.

Test Log 4 j Client:


package com.test.stuff;

public class TestLogClient {

/**
* @param args
*/
public static void main(String[] args) {
Log4JDemo1 demo1 = new Log4JDemo1();
Log4JDemo2 demo2 = new Log4JDemo2();
demo1.getMessage();
demo2.getMessage();

}

}
-------------------------------------

4. Log4j.properties

# Categories
log4j.category.com.test.stuff.Log4JDemo1=WARN,Log4JDemo1WarnAppender

log4j.category.com.test.stuff.Log4JDemo2=FATAL,Log4JDemo2WarnAppender

log4j.appender.Log4JDemo1WarnAppender=org.apache.log4j.RollingFileAppender
log4j.appender.Log4JDemo1WarnAppender.File=log4Jdemo1warnappender.log
log4j.appender.Log4JDemo1WarnAppender.MaxFileSize=10KB
log4j.appender.Log4JDemo1WarnAppender.MaxBackupIndex=10
log4j.appender.Log4JDemo1WarnAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.Log4JDemo1WarnAppender.layout.ConversionPattern=%c %d{ISO8601} -- %p -- %m%n

log4j.appender.Log4JDemo2WarnAppender=org.apache.log4j.RollingFileAppender
log4j.appender.Log4JDemo2WarnAppender.File=log4Jdemo2warnappender.log
log4j.appender.Log4JDemo2WarnAppender.MaxFileSize=10KB
log4j.appender.Log4JDemo2WarnAppender.MaxBackupIndex=10
log4j.appender.Log4JDemo2WarnAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.Log4JDemo2WarnAppender.layout.ConversionPattern=%c %d{ISO8601} -- %p -- %m%n



----------------------------------------------------

above properties will create 2 log files one will append all messages(of class Log4JDemo1) above of Waring(warn,error,fatal) and other will append FATAL messages(of class Log4JDemo2) .


Regards,
Santosh

Monday, July 20, 2009

How to create log files in webapplication relative path?

Step 1.

create a Class servletcontextlistner.

public class MyServletContextListner implements ServletContextListener {

public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServletContext();
System.setProperty("rootPath", context.getRealPath("/"));
}

public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub

}


Step 2:

Register your listner class in web.xml

<listener >
<listener-class>foo.com.MyServletContextListner</listener-class>
</listener>



Step 3.

Add log file paht in your log4j.properties or log4j.xml files

<appender name="MY_LOG_FILE" class="org.apache.log4j.RollingFileAppender">e.g.

<param name="File" value="${rootPath}WEB-INF/logs/mylog.log"> appender name="ROLLING_FILE1" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${rootPath}WEB-INF/logs/logtest.log">
<param name="Append" value="true">
<param name="MaxFileSize" value="500KB">
<param name="MaxBackupIndex" value="5">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{ISO8601}] %-5p %m%n">
</layout>
</appender>
<param name="Append" value="true">
<param name="MaxFileSize" value="500KB">
<layout class="org.apache.log4j.PatternLayout"></layout></appender>

Step 4.

load log4j.properties/log4j.xml file.


ServletContext context = config.getServletContext();
URL url = Loader.getResource("log4j properties/xml path");
DOMConfigurator.configure(url);


Regards
Santosh