Páginas

quinta-feira, 27 de fevereiro de 2014

Escaneando pid Java usando expressão regular para filtra os processos

Bem resumido a conversar este trecho de código varre os processo do sistema pegando apenas os processo do java os servidor web glassfish, tomcat e entre outro visando futuramente o monitoramento do mesmo, lembrando que este codigo vai reclama o jar tool que se encontra no propio java instalado XD no seu sistema basta apenas importa-lo.

import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import sun.jvmstat.monitor.*;
import sun.tools.jps.Arguments;

/**
 *
 * @author Luiz Henrque Buris
 */
public class RuntimeScan {

    private static Arguments arguments;
    public String t = null;
    List<String> l = new ArrayList<String>();

    public void scam(String[] args) {
        try {
            arguments = new Arguments(args);
        } catch (IllegalArgumentException e) {
            System.err.println(e.getMessage());
            Arguments.printUsage(System.err);
            return;
        }

        if (arguments.isHelp()) {
            Arguments.printUsage(System.out);
            System.exit(0);
        }

        try {
            HostIdentifier hostId = arguments.hostId();
            MonitoredHost monitoredHost = MonitoredHost.getMonitoredHost(hostId);

            // Obtém o conjunto de JVMs ativos no host especificado.
            Set jvms = monitoredHost.activeVms();

            for (Iterator j = jvms.iterator(); j.hasNext(); /* empty */) {
                StringBuilder output = new StringBuilder();
                Throwable lastError = null;

                int lvmid = ((Integer) j.next()).intValue();

                output.append(String.valueOf(lvmid));

                if (arguments.isQuiet()) {
                    System.out.println("aaa" + output);
                    continue;
                }

                MonitoredVm vm = null;
                String vmidString = "//" + lvmid + "?mode=r";

                try {
                    VmIdentifier id = new VmIdentifier(vmidString);
                    vm = monitoredHost.getMonitoredVm(id, 0);
                } catch (URISyntaxException e) {
                    // unexpected as vmidString is based on a validated hostid
                    lastError = e;
                    assert false;
                } catch (Exception e) {
                    lastError = e;
                } finally {
                    if (vm == null) {
                        output.append(" -- process information unavailable");
                        if (arguments.isDebug()) {
                            if ((lastError != null)
                                    && (lastError.getMessage() != null)) {
                                output.append("\n\t");
                                output.append(lastError.getMessage());
                            }
                        }
                        System.out.println(output);
                        if (arguments.printStackTrace()) {
                            lastError.printStackTrace();
                        }
                        continue;
                    }
                }
                output.append(" ");
                output.append(MonitoredVmUtil.mainClass(vm,
                        arguments.showLongPaths()));
                if (arguments.showMainArgs()) {
                    String mainArgs = MonitoredVmUtil.mainArgs(vm);
                    if (mainArgs != null && mainArgs.length() > 0) {
                        output.append(" ").append(mainArgs);
                    }
                }
                if (arguments.showVmArgs()) {
                    String jvmArgs = MonitoredVmUtil.jvmArgs(vm);
                    if (jvmArgs != null && jvmArgs.length() > 0) {
                        output.append(" ").append(jvmArgs);
                    }
                }
                if (arguments.showVmFlags()) {
                    String jvmFlags = MonitoredVmUtil.jvmFlags(vm);
                    if (jvmFlags != null && jvmFlags.length() > 0) {
                        output.append(" ").append(jvmFlags);
                    }
                }

                monitoredHost.detach(vm);
                t = output.toString();
                l.add(t);
            }
        } catch (MonitorException e) {
            if (e.getMessage() != null) {
                System.err.println(e.getMessage());
            } else {
                Throwable cause = e.getCause();
                if ((cause != null) && (cause.getMessage() != null)) {
                    System.err.println(cause.getMessage());
                } else {
                    e.printStackTrace();
                }
            }
        }
    }

    public static void main(String[] args) {

        RuntimeScan d = new RuntimeScan();
        d.scam(args);

Este trecho estou usando expressão regular para saber quais processos contem letra ou apenas numero

        Pattern pattern = Pattern.compile("\\d{4,4} [a-zA-Z]{4,20}");

        for (int i = 0; i < d.l.size(); i++) {
            Matcher matcher = pattern.matcher(d.l.get(i));
            if (matcher.find()) {
                System.out.println("Encontrou");
                System.out.println(d.l.get(i));
            } else {
                System.out.println("Não encontrou");
            }
        }
    }
}

sábado, 22 de fevereiro de 2014

Instalação do Windows 7 Partição GPT

1 - Após ter escolhido o idioma, pressione SHIFT+F10 para abrir o console; 
2 - Na linha de comandos, digite: 
diskpart --> Este comando permite aceder ao utilitário para gerir partições 
list disk --> Mostra todos os discos. Verifique se o disco 0 corresponde ao disco que compraste (basta verificar o tamanho) 
select disk 0 --> Escolhe o disco 0 para efetuar operações sobre ele. Se o disco novo não for o 0, então você deve alterar o número no comando para, por exemplo, select disk 1 
clean --> Este comando vai eliminar as informações de configuração existentes no disco 
create partition primary --> Este comando vai criar uma partição primária (no disco que selecionou no passo select disk x) 
exit --> para abandonar o utilitário diskpart 
exit --> para regressar ao programa de instalação; 
3 - Agora na tela de seleção de partição, escolhe aquela que acabou de criar. Se continuar a dar erro, reinicia o computador e verifica se o erro desapareceu (de vez em quando é necessário um reboot para que as alterações fiquem visíveis ao setup do Windows); 
4 - Antes de instalar o Windows, formate o disco.