jul 23

Como instalar o Kernel 3.0 no Ubuntu 11.04.

Muitos ja devem ter reparado nas notícias atuais sobre o lancamento do linux 3.0, que na verdade quando falamos apenas Linux, estamos nos referindo ao próprio KERNEL, ou melhor dizendo, ao núcleo do sistema operacional mais poderoso da face da terra (é o poder).

O site do linux, onde se encontra o kernel source para download é www.kernel.org, onde voce mesmo pode entrar, baixar o source code e compilar de acordo com a sua máquina, possibilitando o componente ou não, atraves dos procedimentos de compilação do kernel, onde definimos se o módulo é ou não carregado na imagem do kernel quando o mesmo for montado no procedimento de boot, estamos falando da imagem initrd.img, quando assim criada pelo administrador Linux no processo de compilação com os comandos mkinitrd (distribuições baseadas em Red Hat), ou mkinitramfs (distribuições baseadas em Debian como o Ubuntu). Ou então, quando a imagem é construída pelo administrador de maneira em que todos os módulos do kernel sejam definidos como built-in, onde o mesmo será nativamente carregado atraves de uma única imagem do kernel, funcionando como monolítico (o meu preferido), e então sendo oferecido totalmente a sua arquitetura como um padrão. Ou seja, se voce compila o kernel com suporte a adaptadores de rede somente da intel e amanha colocar um adaptador da realtek (não faça isso), voce terá que compilar o kernel novamente e gerar uma nova imagem de entrada em boot do kernel. Estou me referindo a imagem vmlinuz que se encontra no diretório /boot do seu sistema. Vale lembrar, que o nome de entrada para o kernel pode ser qualquer um, ja que é voce que define quando o arquivo bzImage for copiado do diretório arch/boot/ do seu processo de compilação para o diretório /boot. O interessante notar, é que quando vc esta nos padrões, ao utilizar o update-grub, ele automaticamente pode colocar o mesmo ja escrito no arquivo de configuração do grub (/boot/grub/grub.cfg para o grub2), para arrancar no próximo boot, caso não esteja nos padrões, voce mesmo terá que justificar o arquivo em grub.cfg. Mas isso é outro asunto.

Vale lembrar que o kernel utilizado no Ubuntu é monolítico, ou seja, conhecido como genérico (para os desktops), pois ele depende dessa imagem que é montada no procedimento de boot e quando o componente detectado pelo agente do kernel, é o módulo automaticamente carregado no procedimento de boot ou posteriormente caso tenha necessidade. Ja o Ubuntu Server utiliza o kernel modular específico, com tais módulos para controladores de raid e outros específicos para a imagem de entrada. Não sendo o caso, não parecido com o kernel genérico para o Ubuntu Desktop, que contem módulos em procedimento modular na personalização do kernel pelo mantedor, que permite tudo aquilo com relação ao usuário, como placas de vídeo, som, bluetooth e outros serem acionados assim que forem detectados. A vantagem de vc compilar o kernel (outro procedimento), é vc ter uma imagem personalizada por vc mesmo, que vc mesmo administrador, define o que é suportado ou não. Nada, automaticamente carregado em imagem.

Quero mostrar para voces como é o procedimento de instalação do Kernel 3.0 para o Ubuntu 11.04, kernel que se encontra no Oneiric, próxima versão do Ubuntu, a 11.10. Ele esta em processo de mainline e praticamente quase considerado estável por Linus Torvalds.

Para atualizar o kernel do Ubuntu 11.04, vá ao site:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.0-oneiric/

*cujo kernel ja foi homologado 100% para o Ubuntu 11.10 Oneiric, estando em testes ainda.

E baixe os seguintes arquivos:

Para 32 bits: linux-image-3.0.0-0300-generic_3.0.0-0300.201107220917_i386.deb, linux-headers-3.0.0-0300-generic_3.0.0-0300.201107220917_i386.deb e linux-headers-3.0.0-0300_3.0.0-0300.201107220917_all.deb.

Para 64 bits: linux-image-3.0.0-0300-generic_3.0.0-0300.201107220917_amd64.deb, linux-headers-3.0.0-0300-generic_3.0.0-0300.201107220917_amd64.deb e linux-headers-3.0.0-0300_3.0.0-0300.201107220917_all.deb.

Coloque todos os seguintes arquivos dentro de um diretório específico como em /tmp/kernelupgrade/ (este sub-diretório não existe, vc terá que criar com o comando mkdir /tmp/kernelupgrade), e entre com o seu terminal (CONTROL + ALT + T), e digite o seguinte comando para instalar:

#cd /tmp/kernelupgrade

#dpkg -i *deb

Quando for concluída a instalação sem erros, apenas verifique no seu diretório /boot, se existe os seguintes arquivos:

config-2.6.38-8-generic
initrd.img-3.0.0-0300-generic
vmlinuz-3.0.0-0300-generic

sendo:

config-2.6.38-8-generic  -> arquivo que estão as opções definidas no procedimento de compilação do mantedor.
initrd.img-3.0.0-0300-generic  -> imagem do micro-kernel, com todos os módulos que poderão ser carregados e descarregados.
vmlinuz-3.0.0-0300-generic  -> imagem monolítica do kernel, arquivo principal do kernel, contém a imagem do seu kernel compilado pelo mantedor.

Caso todos os arquivos estejam presentes no diretório /boot, basta apenas reiniciar a sua máquina com o comando:

#shutdown -r now
ou apenas o comando reboot 

Após o seu sistema for reinicializado, digite o comando: uname -r , para verificar o kernel que o Ubuntu esta usando.

DIGA OI PARA O NOVO KERNEL.

jul 16

O Ubuntu 11.04 vem com a nova interface gráfica que acompanha um shell próprio, chamado Unity. O Unity trás vários recursos novos para o desktop e ainda mantém vários outros recursos do GNOME, ambos, modificados.

Existem uma lista de aplicações para o Ubuntu totalmente compatíveis para o Unity, e quando eu falo de compatibilidade, trato da maneira que a aplicação abre e se comporta com o Unity, seja ela com exclusividade como se estivesse rodando no GNOME (apesar de usarem a mesma biblioteca e ser baseado do GNOME),ou de forma nativa. O certo é que a maioria das aplicações para GNOME (baseadas em GTK), rodem normalmente no Unity, como se estivessem rodando no GNOME. Mas, existem certas condições para que as aplicações sejam realmente distribuídas no seu desktop.

Um dos casos é com o “notification area” (área de notificação do UNITY), que esta armazenada no systray, a barrinha do canto superior do seu unity. Na verdade, existe uma chamada whitelist (lista branca) que é um atributo do seu Unity e que pode ser reconfigurado, barrinha de aplicações que podem atribuir funções para o seu Unity Desktop. Vamos dizer que essa mudança é simplesmente uma tentativa de forçar os desenvolvedores de softwares a redesenhar as suas aplicações para se encaixar no padrão do Unity, o que é muito tranquilo, e também fazer com que exista um controle do que é aberto e fica em execução no seu systray.

É possível fazer uma mudança no seu desktop do Unity para que o systray possa receber qualquer outra aplicação, fora dessa whitelist, ou ate mesmo as personalizadas por voce.

Instale o pacote DBCONF EDITOR pelo Ubuntu Software Center ou pelo apt com o comando:

#sudo apt-get install dconf-tools -y

Após isso, abra o seu DASH COMMAND com o atalho: ALT + F2 e digite dbconf-editor ou atraves do terminal (CONTROL + T), digite dconf-editor.

Quando o Dash Shell, localizar o binário executável, é só clicar nele.

Quando a tela do dconf-editor abrir (como na figura acima), vá em desktop > unity > panel, e altere o atributo systray-whitelist, que define o seu systray, onde vc mesmo pode personalizar com skype, wine, shutter, ou apenas justificar ” all ” para todas as aplicações.

Altere o atributo padrão de ‘JavaEmbeddedFrame’, ‘Mumble’, ‘Wine’, ‘Skype’, ‘hp-systray’, ‘scp-dbus-service’ para ‘all’.

Caso voce queira voltar ao padrão como era, basta voltar no dconf-editor e clicar em ” set to default ” (restaurar os padrões).

Voce também pode aplicar por linha de comando utilizando o comando:

#gsettings set com.canonical.Unity.Panel systray-whitelist “['all']“

Ou personalizando de acordo com a sua aplicação da seguinte forma: #gsettings set com.canonical.Unity.Panel systray-whitelist “['JavaEmbeddedFrame', 'Mumble', 'Wine', 'Skype', 'hp-systray', 'SUA APLICAÇÃO']“

Para instalar o dconf-tools, clique aqui: 

 

jul 09

Diferenças de Hardwares e porque não o mesmo software em todos?


Todos os hardwares que existem no mercado, sejam eles smartphones, pc’s, Mac’s, PowerPC’s, SUN SPARC e outros, possuem uma demanda de sistema operacional nativos ou instaláveis. É necessário entender o que é um sistema operacional, pelo fato desse assunto pode ser muito mais complexo do que se parece.Usamos o GNU/Linux, ou seja, aplicativos GNU com o kernel Linux.

Um sistema operacional possui varias camadas, que permitem o gerenciamento do hardware, como por exemplo um telefone com android, seu sistema operacional Android é um derivado do Linux, ele usa o kernel Linux, mas a sua estrutura de bibliotecas e até mesmo o HFS, que é sistema de arquivos hierárquico é bem diferente do que costumamos ver em Linux.

Ele é derivado de uma distribuição Linux da antiga Android Inc (http://code.google.com/intl/pt-BR/android/),e é um sistema mobile e usa um micro-kernel que trabalha com eventos e chamadas baseados em camadas de aplicação -> framework de aplicações -> bibliotecas e uma camada de runtime para o Android -> e o kernel Linux, que definem todos os seus drivers e módulos que permitem ligar tais componentes.

O que acontece nesse sentido é que quando temos um sistema mobile, como no caso do android, ele recebe certas caracteristicas diferentes de um sistema operacional para PC, como por exemplo. O micro-kernel dele, possui uma camada de abstração muito limitada a estes pequenos hardwares, como o sistema operacional que vem no PSP, como o sistema operacional que vem no PS3, iPhone, iPod, são sistemas criados especificamente para atender somente um tipo de hardware específico em que diversas aplicações devem ser traduzidas ou interpretadas para essa arquitetura, ou seja, quando vc tem uma aplicação em PC (para arquitetura intel/amd), ao abrir a aplicação, ela faz uma chamada no kernel e busca por informações de sistema, como por exemplo, o co-processamento matemático para operar. É o mesmo que vc tentar compilar uma aplicação de  AIX de um 43p, f50,RS6000,p5,p6,p7 em Linux no PC, quando a aplicação for compilada para se executada,por ela ter sido escrita para outra arquitetura, no caso POWER, o processo de compilação que também se utiliza de utilitários, como o cc,gcc ou outros compiladores como fortran,assemble, fará uma chamada de sistema no kernel e ao verificar a integridade do hardware pelo qual ela foi escrita, vai falhar e não dará continuidade, pois existe uma dependência muito imporante, a arquitetura que a aplicação que vc esta compilando foi portada, isso não significa, é claro, que a aplicação possa ser compilada para qualquer arquitetura, pois isso vai depender muito da linguagem em que a mesma foi escrita, como C ou java (exemplo).

O kernel Linux, possui varias camadas para interatividade com chamadas de aplicações. Quando vc faz uma aplicação para um kernel, na verdade vc esta fazendo aquela aplicação para uma determinada arquitetura, cujo aquele micro-kernel ou kernel respondem, seja ele, alpha, ppc, arm, x86, amd64, x64/em64t, ia64 e por ai vai…

Vamos la, quando vc compila uma aplicação, porque ela foi escrita para tal arquitetura ou plataforma, essa chamada consulta uma área do kernel chamada CPU specific, que informa a arquitetura de co-processamento e onde o nano-kernel como de virtualizadores trabalham constantemente , como a chamada de para-virtualização. Essa camada consulta a interrupt context ou vice versa que consulta o scheduler sendo uma 3 camada da estrutra do kernel (isso é śo um exemplo). Nessas 3 camadas vc tem sub-camadas, ou módulos que respondem como em system_calls/interrupts, (que verifica disponibilidade de consulta ao CPU), pt_regs , que talvez seja a mais importante, pois permite registros direto com a arquitetura utilizada e fornece suporte a ela, como um simples reboot e oferece a distribuição de chamadas de sistema, e thread_info, que definem ponteiros e outros, entçao ja começaríamos a falar sobre stack pointer e task_struct. Além dessas camadas e outras  poderíamos ficar aqui o dia todo falando a respeito, como o entrar no mais profundo com o user_peripherals, onde falaríamos sobre abstração de vídeo, audio, tais como abstract devices, ou camada de abstração de dispositivos, onde temos modulos para mouses, teclados e mais ainda acima, a camada hi_subsystems, onde temos a camada de terminais tty e drivers diversos para sempre com suporte a arquitetura definida pelo criador da aplicação e do kernel em questao. Ufa!

Quando falamos de Linux Android, estamos falando de um micro-kernel (não um nano-kernel, como no xen, powervm e vmware), estamos falando de um kernel menor, ou compilado para a arquitetura arm ou mobile/embedded em geral, onde todas as aplicações escritas, são menores e de baixa latência, porque são criadas para um sistema operacional que não se exige de muitos recursos do kernel, como de I/O, E/S como o de padrão do mercado. Abaixo segue uma imagem como funciona o Kernel Linux no AndroidOS.

Estamos então, entrando na diferença para ambas as definições e arquiteturas de um kernel, como o darwin/os mobile(chamado de iOS da Apple), e OSX, ou melhor dizendo, a diferença do iOS para o OSX. Não são ambos o sistema operacional da Apple? SIM! Com a diferença citada acima, ele foi totalmente desenhado para agregar uma arquitetura menor, em que todas as aplicações, não teriam a mesma disponibilidade para rodar em um sistema de grande porte e de alta latência, com todos os recursos de I/O, E/S e de um kernel completo que so funciona por causa de uma grande demanda de módulos e bibliotecas que permitem que esses módulos liguem componentes. Estou falando de sistema operacional, e não da bagunça do Windows.

Estou falando sobre kernel, porque eu amo o kernel Linux e os dos demais UNIX , e estamos sempre pronto para a experiência de mercado e como clientes que costumo tratar, é de muita observancias essas coisas, quando falamos de softwares e de sistemas operacionais. Empresas como a IBM, EMC,NetApp, Vmware, Citrix, sabem tanto isso que usam nas suas mais importantes soluções, o kernel Linux como o principal, vc sabia disso? Pergunte a VMWare em que o ESXi/ESX é baseado, pergunte a Citrix em que o Xen é baseado (ahh xensource inc, pra q vc se vendeu), pergunta as outras empresas como a Hitachi, que sistema operacional eles usam em suas soluções de NAS.

Eu tenho na empresa, várias máquinas POWER da IBM, mas como todas as aplicações e instalações para o RHEL for POWER (RedHat Enteprise Linux for POWER), eu preciso muito procurar na rede como maluco aplicações portadas,ou usar softwares que permitem ter camadas de converção. Conversão? O que seria isso? Imagine um aplicativo compilado e feito para x86 rodar em PPC (POWER)? Sim, exatamente isso, no RHEL for POWER eu tenho instalado o powervm-lx86, uma features do POWERVM que permite atraves de um script, executar aplicações de PC, ou seja do co-processamento INTEL (pelo qual as aplicações consultam e são levadas pelo kernel a isso), em um POWER PC. Somos certificados e case da IBM nisso.

Na verdade não é uma emulação, ta longe de ser uma emulação e sim uma conversão. Quando a aplicação é executada, e possui uma demanda de blbiotecas muito grande e de arquitetura diferente (nesse caso, um PC/x86), O lx86 (software de conversão), passam para o kernel a informação re-escrita como com base em um x86, fazendo a aplicação validar aquela informação e o kernel a transcrever tudo para a outra arquitetura, porque a arquitetura ja é conhecida e então permite uma chamada de sistema, interpretada naquela língua. Pode haver muito mais módulos e definições do kernel for POWER, é claro, mas apenas quis te orientar a respeito.

Uma aplicação de iOS não roda em MAC, porque a arquitetura é diferente e depende um kernel e bibliotecas que os fazem conversar, que interpretam isso tudo. Não será possivel, como mencionei la em cima, porque a chamada é com base em plataformas diferentes. É possível rodar? SiM! ae entra o papel do AFAIK, uma das ferramentas de BOCHs, conhecida como a 4 camada de virtualização depois dos ABIs (como no caso do wine que ja esta em outro nível de conversão, sendo a simulação), que oferecem dentro de uma janela ou aplicação em funcionamento, a emulação de todos os conectores do micro-kernel do iOS e hardware, dentro de uma plataforma de emulação, como se vc estivesse la. É assim que funciona com emuladores de video games, emuladores de IOS/CISCO, xOS da extreme e até MAINFRAMES pelo hercules (software de emulação que funciona como bochs para linux).

É impressionante o que podemos ganhar com o kernel e sua adaptação a plataformas, por isso que quando se faz um sistema operacional novo para tal plataforma, como o android, como o ios, e outros, logo logo, as empresas ou envolvidos, disponibilizam ferramentas como jdk e outros para que varios colaboradores do mundo todo e programadores possam criar suas aplicações nas seguintes especificações, emulando a arquitetura, sem estar lá! Existem vários outros tipos de kernel interessantes como o VxWorks, que trabalha com o RTOS, ou seja, em tempo real, seja ele por chamadas real-hard ou soft, e o plan9, que é um outro sistema operacional. Temos muito a ganhar.

Enfim;
o software so pode rodar em plataformas heterogêneas como android, LINUX, BSD, iOS, OSX, se ambas possuírem suporte nativo com base em chamadas de sistema para aquela arquitetura em questão,se ambos forem compilados com suporte para a mesma arquitetura. Como isso não é possível ainda, ou existem outros meios como o paralles e outros, da-se o conceito de nano-kernel, como no xen, que permite modular um kernel de um sistema operacional completo e seus recursos, a um micro-kernel que carrega e assume com maior prioridade fornecendo o que chamados de HAL ( Hardware Abstraction Layer), que em alguns sistema operacionais, como o Linux, pode fornecer . E uma priorização de uma camada mais alta e oferecer suporte em definitivo, passando toda a informação de primeira e com os seus recursos para o sistema operacional, que funciona no caso como módulo.

Como a Apple não quer perder o mercado e Google não quer perder o mercado. então, continua assim como esta. Por isso que muitas empresas como a SUN, odiaram o Linux, porque ele pode rodar em qualquer arquitetura. Agora, é possivel instalar o Ubuntu em celular? SIM! porque como o kernel Linux é aberto, ele é modulado a varias arquiteturas, principalmente como ARM e por isso é possível essa implementação. Ja não podemos dizer o mesmo do sistema do mal da Microsoft e do OSX da Apple, que ambos são restritos para uma arquitetura própria. A Microsoft a tentou rotular o seu OS para a arquitetura itanium, mas quebrou a cara. Eles dependem de terceiros para conseguir essa tarefa! Como o OPENIBOOT, que permite colocar o android no iphone e como as empresas que a microsoft compra, para disponibilizar nas futuras versões, suporte a tais hardwares.

Por isso eu amo Linux, o kernel dele, entende todas as arquiteturas e é portavel a varias arquiteturas. Já se as aplicações para Linux, se funcionam no Ubuntu ou Android, vai depender da boa vontade do programador em querer criar a aplicação homologada na arquitetura. Um exemplo, já pensou vc abrir o libreoffice no android sem portar o mesmo? Deve ser muito chato vc ficar movimento o touch ate chegar no ponto que vc quer, pq as orientações do sistema se perdem.

Agora, a possibilidade de usar todas as aplicações em todos os sistemas operacionais é muito questionável, pois depende principalmente da porca conduta de certas empresas em querer compilar tais aplicações para Linux e outros.

Só nos resta esperar, abraços a todos.

É o poder!

jul 03

TSM no AIX

Instrutor Aprígio Simões Comentários desativados


Tivoli Storage Manager no AIX

Eu sou um administrador de UNIX e Linux, e por muito tempo sempre disse, usem ferramentas opensources para backup como o bacula e o amanda. Sim, são os melhores por opnião, mas como somos especialistas de TI, precisamos mostrar as outras ferramentas, mesmo que sejam proprietárias e que dominam o mercado de backup. Lembrando que o Tivoli TSM, não é bem uma solução de backup e sim a melhor solução de gerenciamento de dispositivos de armazenamento com soluções de backup integrado, que tem como base, a conhecida de proteção de dados entre quaisquer sistemas. Por mais que voce aponte como a melhor ferramenta de backup, a grande função dele é gerenciar muito bem dispositivos de fitas, autoloader (robos), arquivamento em disco e integração com varias soluções de armazenamento como a solução que contempla e agrega produtos para automatizar políticas de disaster/recovery, gerenciamento de espaço em disco (HSM), bem como soluções de proteção para diversas bases de dados e aplicações, tais como: Lotus Notes/Domino, MS Exchange, SAP R/3 e Bancos de Dados (DB2, SQL, Oracle, Sybase, Informix). A Tivoli possui ainda soluções para implementar SANs (Storage Area Network), no sentido de prover acesso transparente a unidades de storage comuns, volumes e arquivos. De acordo com a revista fortune, o Tivoli Storage Manager é a escolha de mais de um milhão de clientes mundialmente, inclusive 80 das 100 maiores empresas o utilizam. Hoje a IBM aposta no novo produto da Tivoli/IBM, o TSM Fastback, que é uma versão mais ligth do TSM.

As versões antigas do TIVOLI, até a sua iquisição pela IBM, possuía o nome de ADSM, cujo o mesmo se permaneceu durante muito tempo assim, tendo um banco de dados próprio e proprietário do ADSM, sendo substituído pelo atual e poderoso DB2 da IBM. Nota-se que se vc é como eu que adora gerenciar o TSM por linha de comando, e principalmente por comandos de SQL, todas as versões dos bancos dentro dele são compatíveis, ja que vc pode também executar o mesmo select que vc executava no ADSM, no DB2.

Meu objetivo é passar alguns SELECT’s que podem te ajudar bastante na administração do TSM por linha de comando. O TSM possui as ferramentas de administração também que podem ser instaladas no sistema do mal e utilizadas por versões do Unix e Linux atraves do webdsm na porta 1581, que na verdade, pra mim, só atrapalha. Nada é melhor do que o bom e velho dsmadmc para o server e o dsmc para o cliente. Para todos os comandos abaixo, lembre-se que a instrução SELECT, consulta as tabelas e colunas do banco e quando usamos o COUNT, ele apenas conta das informações retiradas e filtradas.

Se voce ja esta acostumado a executar bastante comandos como, query volume, update volume 0000 access=readw, update drive LIBVNAME RMTx online=yes, q libv, define schedule …., update schedule …, query drive, query path, q stgpool, move data, e outros, comandos que se eu começar a falar, eu vou me empolgar e isso vai virar um livro, rss. É muito poder!

Segue alguns selects e comandos para a sua base que vão auxiliar a sua administração:

No terminal do UNIX AIX, digite dsmadmc, se o serviço do dsmserv estiver em funcionamento, digite o seu usuario admin e coloque a sua senha. Quando voce se logar no terminal do TSM, verifique sempre os paths e drivers com as unidades do seu robo ou unidades LTO externas. Nunca deixa de verificar o seu TSM Active Logs com o comando q actlog, lembrando que vc também pode utilizar de sub-comandos como begindate=XX/XX/XXXX (para definir o dia inicial), begintime=XX:XX:XX (para definir a hora inicial dos logs), nodes=XXXX (para visualizar apenas dos nodes registrados e definidos aqui), begind=XX (para verificar os dias atras ou ultima atualização da base do tsm), endd=today ( que define até o dia atual) e outros muitos comandos.

Antes de começarmos, verifique a sua LIBRARY montada no TSM com todas as suas unidades e dispositivos, se estão em perfeito funcionamento e ate mesmo para que vc venha conhecer mais do seu servidor TSM.

NOTA: como eu tenho algumas limitações no escopo do BLOG, em números de caracteres por página, eu separei cada comando SQL com ” – “, que é lógico que não deve ser interpretado no shell do TSM, peço que remova todos os “-”, quando forem copiar os comandos. Obrigado!

(Informações gerais sobre toda a sua Library montada no TSM, muito importante)

TSM> SHOW LIBRARY

Para visualizar seus drivers montados no TSM que estão no AIX, todas as suas RMT’s.

SELECT COUNT(*) FROM drives WHERE NOT online='YES'

(Informações sobre todos os drivers e paths que estão no TSM)

SELECT source_name,source_type,destination_name,destination_type,library_name,-
device FROM paths

(Informações de todos os drivers de tape do AIX que estão montados no TSM)

SELECT library_name,drive_name,device_type,read_formats, -
write_formats,drive_state, drive_serial FROM drives

(Conta quantos drivers não estão ONLINE no TSM)

SELECT COUNT(*) FROM drives WHERE NOT online='YES'

 

Para visualizar informações de NODES registrados:
(visualiza numero de nodes registrados)

 SELECT SUM(num_nodes) FROM domains

(NODES que estão bloqueados)

SELECT node_name FROM nodes WHERE locked='YES'

(Nodes por domain do TSM)

SELECT domain_name,num_nodes FROM domains

(Versões de cada NODE registrado no TSM pelo dsmc) ATENÇÃO, fique muito atento aos APARs e as correções do TSM para vc não ter surpresas.

SELECT node_name, VARCHAR(client_version)||'.'||VARCHAR(client_release)||'.'|| -
VARCHAR(client_level)||'-'||VARCHAR(client_sublevel) FROM nodes

(Número de arquivos por NODES registrados por DSMC)

SELECT node_name, SUM(num_files) FROM occupancy GROUP BY node_name

(Espaço disponível entre os NODES e armazenamento em MB)

SELECT node_name,CAST(FLOAT(SUM(physical_mb)) / 1024 AS DEC(8,2))as -
"Space in GB", SUM(num_files)as"Number of files" FROM -
occupancy GROUP BY node_name

(NODES registrados por plataforma ou sistema operacional)

SELECT platform_name,COUNT(*) FROM nodes GROUP BY platform_name

Informações de cartuchos “volumes” no TSM:

QUERY libv

(numero de fitas scratchs agrupada por library_name)

SELECT library_name,COUNT(*) FROM libvolumes WHERE status='Scratch' -
GROUP BY library_name

(Verificar seus volumes)

SELECT library_name,volume_name,status FROM libvolumes

(Número de fitas listadas com erros de escrita e leitura no TSM)

SELECT volumes.volume_name, volumes.stgpool_name, volumes.pct_utilized,-
volumes.status, volumes.write_errors, volumes.read_errors -
FROM volumes, libvolumes WHERE -
volumes.volume_name=libvolumes.volume_name AND -
( volumes.write_errors>0 OR volumes.read_errors>0 )
(Numero de volumes indisponíveis)
SELECT COUNT(*) FROM volumes WHERE access='OFFSITE'

(Nomes dos volumes com erros)

SELECT VOLUME_NAME FROM volumes WHERE error_state='YES'

(Informações de volumes e status de armazenamento baseados em percentagem e utilização)

SELECT volume_name,devclass_name,stgpool_name,status,-
access,pct_utilized FROM volumes -
WHERE volume_name IN ( SELECT volume_name FROM libvolumes )

(volumes que ja estão cheios)

SELECT volume_name, devclass_name,stgpool_name,status,access,-
pct_utilized FROM volumes -
WHERE volume_name IN ( SELECT volume_name FROM libvolumes ) -
AND pct_utilized = 100

 

Como retirar informações sobre os SCHEDULES:

(Para visualizar todos os seus SCHEDULES e ASSOCIADOS aos mesmos)

QUERY SCHEDULE
QUERY ASSOC 

(Verifica todos os schedules associados e informações de nodes e scripts commands)

SELECT associations.domain_name, associations.node_name,-
associations.schedule_name,client_schedules.description, -
client_schedules.action, client_schedules.options,-
client_schedules.objects,client_schedules.starttime FROM -
associations associations,  client_schedules client_schedules -
WHERE associations.domain_name = client_schedules.domain_name -
AND associations.schedule_name = client_schedules.schedule_name -
ORDER BY associations.domain_name,  associations.node_name,-
associations.schedule_name

(Verifica o status completos de todos os schedules associados e nodes)

SELECT associations.domain_name, associations.node_name,-
associations.schedule_name, client_schedules.description, -
client_schedules.action, client_schedules.options, client_schedules.objects, -
client_schedules.priority, client_schedules.startdate,-
client_schedules.starttime, client_schedules.duration, -
client_schedules.durunits, -
client_schedules.period, client_schedules.perunits,-
client_schedules.dayofweek,-
client_schedules.expiration, client_schedules.chg_time,-
client_schedules.chg_admin, -
client_schedules.profile, client_schedules.sched_style, -
client_schedules.enh_month,client_schedules.dayofmonth,-
client_schedules.weekofmonth FROM associations associations,-
client_schedules client_schedules WHERE -
associations.domain_name = client_schedules.domain_name -
AND associations.schedule_name = client_schedules.schedule_name -
ORDER BY associations.node_name, -
associations.domain_name, associations.schedule_name

Leitura dos ACTIVE LOGS do TSM:

De 2 horas atrás

SELECT date_time,message FROM actlog WHERE originator='SERVER' -
AND message LIKE'ANR2578W%' AND -
date_time>=current_timestamp-2 hours

De 1 dia atrás

SELECT date_time,severity,message FROM actlog WHERE originator='SERVER' AND -
( message LIKE'ANR2507I%' OR message LIKE'ANR2751I%' OR -
message LIKE'ANR2578W%' OR -
message LIKE'ANR2579E%') AND -
date_time>timestamp(current_date)-(1)days

(Sumário de operações dos últimos 7 dias no TSM)

select cast(float(sum(bytes))/1024/1024/1024 as dec(8,2)) -
as "Archive data in GB" from summary -
where activity='ARCHIVE' and end_time>-
timestamp(current_date)-(7)days

Aprígio Simões
aprigio@linuxstudent.com.br

jul 02

proftpd no linux

Instrutor Aprígio Simões Comentários desativados

Servidor de FTP com o ProftpD no Linux em Debian e RHEL/CentOS/Fedora

Um dos servidores de FTP mais utilizados no Linux é o proftpd, tanto como o vsftpd e o pureftpd. Uma das características do proftpd é a facilidade de configuração e gerenciamento, ao contrario do pure, como exemplo. Estou para colocar mais matérias com utilizações do proftpd com ssl e também a configuração do pure e vsftpd, mas vamos nos centralizar aqui no proftpd. Um dos melhores pontos é a integração com o LDAP e mysql, vamos comentar isso nos próximos tópicos. O site do projeto do proftpd é http://www.proftpd.org/.

A RFC 959, define o objetivo do FTP como promover compartilhamento de arquivos de maneira indireta ou explicita, através de utilizações de programas de FTP. Vale destacar que o protocolo de FTP é dividido em cliente e servidor, onde o software cliente, seja ele gftp, firezilla, wget (sim, wget), e outros como integrações com o nautilus e konqueror, permitem fazer uploads e downloads de arquivos e todo um diretório. A grande vantagem do servidor de FTP é a velocidade de acessos para download e a sua terminalogia, porém, a sua desvantagem é que suas conexões não são oferecidas de forma encriptada e de texto puro, onde qualquer snifador (vc me entendeu), ou abusadinho, possa capturar informações que trafegam no servidor, até mesmo os comandos executados de forma aberta. Existe a possibilidade de utilizar o sub-sistema do protocolo ssh, em seu arquivo de configuração para arrancar conexões seguras ou até mesmo utilizar do TLS, atraves de certificados como o x.509 que é um padrão ITU-T para infra-estruturas de chaves públicas que segue os mesmos padrões de estrutura de diretório global, baseada em nomes distintos para localização, como no x500. Tudo isso para que possamos manter a conexão segura. Nunca podemos nos esquecer, que a porta padrão do protocolo FTP é a 21, sendo a porta 20, constituída para transferências de arquivos. Então, de olho no iptables e nos links de acesso de banda larga (isp), que por mediocridade, bloqueiam a porta fazendo vc manter uma configuração de ftp server na porta 2121, como por exemplo.

Como configurar um servidor de FTP no Linux com o proftpd?

No Debian e Ubuntu, instale os pacotes com o apt, com o comando:
#apt-get install proftpd -y

*recomendo manter a instalação do servidor proftpd como standalone, ou autônomo, para que um daemon próprio seja utilizado e não por serviço inetd/xinetd.

No RHEL/CentOS/Fedora, instale os pacotes com o yum, com o comando:
#yum install proftpd -y

No CentOS e RHEL é necessário adcionar nos seus repositórios do yum o repo karan.org, pois o padrão de distribuições como RHEL e CentOS(por se baseado no RHEL), é o vsftpd. Para instalar no seu /etc/yum.repos.d, basta estar dentro do diretório e digitar wget http://centos.karan.org/kbsingh-CentOS-Extras.repo, e então pegar sua chave de assinaturas dos pacotes RPM, o arquivo RPM-GPG-KEY-karan.org.txt, lembrando que o yum nada faz a não ser downloads e conduz o próprio rpm a instalar, como é necessário utilizar-se a base do rpm, então, conclua com o comando rpm –import http://centos.karan.org/RPM-GPG-KEY-karan.org.txt. Depois, atualize com o comando yum clean all, verifique o repositorio com o comando yum list e atualize antes com o comando yum update.

No SuSE Enterprise é necessário compilar o pacote direto do site do projeto proftpd e no OpenSuSE vc pode instalar pelo zypper atraves de um repositório adcional.

Quando voce instalar o proftpd será criado o arquivo /etc/init.d/proftpd, que é o script que fica em execução em segundo plano funcionando como daemon, o que permite a autenticação e a manipulação dos usuários no respectivo serviço. também será criado o diretório /home/ftp,  /var/ftp ou /srv/ftp para os acessos anônimos. Lembrando que os usuários do sistema que estão adcionados no seu servidor, (/etc/passwd), poderão se autenticar por ftp também, como se vc manter o ssh-server instalado, poderão utilizar também acessos de ssh, mas isso ja é um outro assunto. Cabe a voce admnistrador, permitir acessos ao /home/usuario ou um outro diretório configurado em /etc/passwd, ou com modificações com o usermod  -m -d.

O arquivo de log do proftpd fica em /var/log/proftpd/proftpd.log e o arquivo de tranferencia em /var/log/proftpd/xferlog.

Toda a configuração do proftpd é realizada no arquivo /etc/proftpd/proftpd.conf (Debian e Ubuntu), e /etc/proftpd.conf (Red hat/CentOS/Fedora).

Inicialmente, voce pode desativar no arquivo de configuração do proftpd, o proftpd.conf, logo o suporte a ipv6 ( como padrão), desativando a linha “UseIPv6 on” para “UseIPv6 off” e também configurar o atributo ServerName para com o mesmo hostname da sua máquina, em modo preferencial. Em DisplayLogin define o arquivo de mensagem padrão que estará no diretório, sendo o padrão welcome.msg.

Na configuração do arquivo proftpd.conf, é possível trocar a porta padrão do FTP Server em “port“, na linha MaxClients, voce pode definir o numero de conexões simultâneas no servidor, sendo que essa opção é seguida da opção de limitação de banda, ambas juntas. Para ativar a limitação de banda por serviço de FTP Server, adcione a linha TransferRate RETR 20:10, onde o número 20, constitui a limitação de banda por acesso baseando-se em 20KB/s, como neste exemplo.

Atenção, cuidado! Para que voce possa restringir o usuário dentro do seu diretório $HOME apenas, para evitar acessos dos usuários fora do seu diretório padrão, adcione com extrema urgência o parâmetro DefaultRoot ~ no arquivo de configuração.

Nunca é recomendado vc utilizar o <Anonymous ~ftp>,disponibilizando o acesso anonimo, pois como é de fato que o FTP possua em sua desvantagem a segurança, é ou pode ser um problema, qualquer usuário sem autenticação ou apenas com a conta anonimous ou ftp, ter acesso ao seu servidor. O usuário anonimo é configurado pela linha User e Group, onde é possível definir mais de um nome apelido para ele, na linha UserAlias. Outro, cuidado em deixar que os usuários do proftpd venham a se conectar em diretórios do usuários no home, como falei la em cima, ou em caso voce venha permitir uploads de usuários anonimos que sempre escrevem em /home/ftp ou em qualquer diretório definido por vc, o que seria outra loucura, pois algum engraçadinho poderia lotar o seu dispositivo de armazenamento, seja uma LUN, seja um ponto de montagem NFS ou seja o proprio disco local com arquivos grandes. Ative o suporte a quotas de sistema!

Após tudo configurado, basta iniciar o daemon do proftpd com o comando:

#/etc/init.d/proftpd restart

Aprígio Simões

jun 28

hostname

Instrutor Aprígio Simões Comentários desativados

Hostname no Linux e UNIX

Para cada distribuição Linux e  variações do UNIX existem muitos procedimentos de configuração do hostname. Para mim, a maior bagunça esta no Linux, pois cada distribuição possui uma metodologia de configuração diferente do hostname, o que não deveria pois existe um padrão a seguir e que nunca é respeitado, porém a finalidade de cada método é alterar a variável $HOSTNAME, que define o nome do nó da sua máquina. Então voce me pergunta, cade o LSB? Eu até entendo no UNIX, pois para cada sistema operacional, métodos, arquivos de configuração, nomeclatura diferentes, agora no Linux, onde as nomeclaturas de dispositivos são praticamente iguais, onde a estrutura do sistema de arquivos hierárquico é praticamente idêntica, não deveria ser assim, jamais. Agora, nunca confunde Linux com Unix, como muitos fazem.

O grande problema de algumas distribuições Linux como Debian (derivados) e Red Hat (derivados), é diferenciar variáveis de atributos e de atributos de variáveis, no Debian a metodologia não se parece muito com o Red Hat quando definimos variáveis, possui um esquema totalmente diferente e os scritps RC mais bagunçado da face da terra, quanto o Red Hat e o SuSE se demostram muito mais apresentativos em suas configurações, organizando todo agrupamento de variáveis, o SuSE sem dúvida ganha de todos, a distribuição é muito bem organizada e tudo esta no seu devido lugar. Os procedimentos do Red Hat e SuSE, se parecem muito com os encontrados no UNIX.

O UNIX possui uma variedade de sistemas e para cada um possui a sua maneira de denifir o hostname, chega ser uma obra prima e por muitas das vezes o padrão de configuração segue toda a estrutura do sistema, desde configurações de rede a atributos de aplicações. No HP-UX, o sistema apresenta um método que lembra muito o Red Hat, ja o AIX possui um método que lembra algumas ferramentas de gerenciamento para Linux.

Tanto para Linux, como para UNIX, voce pode alterar a variável $HOSTNAME, escrevendo nela ou utilizando o comando hostname seguido do novo nome. Essa mudança é temporária e se mantém até o próximo boot da máquina. Lembre-se que o hostname no UNIX é entendido como o nome de nó, e isso é de extrema importância para NIS, NIS+,NFS, arquivo hosts, DNS e LDAP.

Para alterar o hostname digite:

#hostname novo_nome

 

Agora, para fixar o hostname no seu sistema Linux para que fique permanente, altere os arquivos abaixo:

Para alterar o hostname no Debian ou Ubuntu altere o arquivo: /etc/hostname, e apenas digite o novo hostname.

Para alterar o hostname no Red Hat / CentOS /Fedora altere o arquivo: /etc/sysconfig/network, e acrescente na variável HOSTNAME=”", o novo nome.

Para alterar o hostname no SuSE: altere o arquivo /etc/HOSTNAME (por causa da herança do Slackware), e apenas digite o novo hostname, voce também pode usar o yast para isso.

Para alterar o hostname no Slackware: altere o arquivo /etc/HOSTNAME

Para alterar o hostname no Archlinux: Altere o arquivo /etc/rc.conf e defina a linha com a variável HOSTNAME=”", como no Red hat.

Para alterar o hostname no Gentoo: Altere o arquivo /etc/conf.d/hostname, e defina a variável HOSTNAME=”" , como no Red hat. Detalhe que esse procedimento se parece muito com do HP-UX e o arquivo /etc/config.d/netconf

 

Para fixar o hostname no seu sistema UNIX para que fique permanente, altere os arquivos abaixo:

Para alterar o hostname no AIX, digite: smit hostname, e altere e clique em “change hostname”, e defina. Verifique também o script/etc/rc.tcpip

Para alterar o hostname no HP-UX, edite o arquivo /etc/rc.config.d/netconf, e altere a variável HOSTNAME, e reinicie o daemon com o comando /sbin/init.d/hostname start.

Para alterar o hostname no Solaris, edite o arquivo /etc/nodename, e não confunda com os arquivos de configuração dos adaptadores de rede em /etc/hostname.XXX, e altere também o arquivo /etc/inet/hosts. Qualquer problema de crash no seu sistema quanto a isso, remova o /var/crash.

Para alterar o hostname no FreeBSD, edite o arquivo /etc/rc.conf e altere o atributo hostname, como no padrão BSD-LIKE, lembre-se que qualquer entrada no arquivo /etc/rc.conf, define um novo valor para /etc/rc.conf.local (verifique a versão do seu FreeBSD), verifique também o arquivo /etc/defaults/rc.conf.

Para alterar o hostname no OpenBSD, edite o arquivo /etc/myname e defina o novo nome.

Para alterar o hostname no NetBSD, edite o arquivo /etc/myname, verifique o seu /etc/rc.conf.

Voce, também pode verificar em alguns sistemas UNIX e distribuições Linux, a variável hostname com o comando hostname ou consultando a variável com o comando echo $HOSTNAME.

UNIX e Linux, PODER!

 

Aprígio Simões

 

 

 

preload preload preload
Powered by Moblie Video for WordPress + Daniel Watrous