terça-feira, 25 de outubro de 2011

Instalando o APACHE no LINUX

O Apache pode ser dividido em duas grandes famílias: o Apache 2.x e o Apache 1.3 que, apesar de muito antigo, ainda é usado em muitos servidores. O Apache 2 trouxe muitas vantagens, sobretudo do ponto de vista do desempenho, além de oferecer novos módulos e mais opções de segurança, mas sua adoção foi retardada nos primeiros anos por um detalhe muito simples: o fato de ele ser incompatível com os módulos compilados para o Apache 1.3. Como os módulos são a alma do servidor web, muitos administradores ficavam amarrados ao Apache 1.3 devido à falta de disponibilidade de alguns módulos específicos para o Apache 2.
Conforme o tempo foi passando, mais e mais módulos foram portados, sem falar de novos módulos desenvolvidos diretamente para uso em conjunto com o Apache 2. Hoje em dia, o Apache 1.3 ainda sobrevive em muitas instalações devido à inércia natural que temos dentro do ramo de servidores, mas não existe nenhum bom motivo para usá-lo em uma nova instalação. O Apache 2 é simplesmente melhor em todos os quesitos.
Apesar disso, ainda existem casos de distribuições que continuam oferecendo as duas versões, de forma a satisfazer os dois públicos. No Debian Etch, por exemplo, o Apache 1.3 é instalado através do pacote "apache", enquanto o Apache 2 (a versão recomendada) é instalado através do "apache2". Entretanto, no Debian Lenny já está disponível apenas o Apache 2, assim como no CentOS, no Fedora e em outras distribuições.
Ao instalar o Apache 2, o suporte a SSL é instalado automaticamente junto com o pacote principal (mas ainda é preciso ativá-lo na configuração, como veremos a seguir). Instale também o pacote apache2-utils, que contém diversos utilitários de gerenciamento que usaremos a seguir:
# apt-get install apache2 apache2-utils
Se desejar ativar o suporte a páginas seguras, você vai precisar também do pacote "ssl-cert", necessário para ativar o suporte a SSL e gerar os certificados. Ele não é instalado por padrão ao fazer uma instalação enxuta do Debian ou do Ubuntu:
# apt-get install ssl-cert
Se você estiver utilizando o CentOS ou o Fedora, instale o pacote "httpd", que contém o Apache 2 e os utilitários:
# yum install httpd
Diferente do Debian, o serviço não será configurado para ser ativado no boot por padrão e nem mesmo inicializado automaticamente após a instalação. Para ativá-lo, é necessário ativar o serviço e, em seguida, criar os links para início automático usando o chkconfig
# service httpd start
# chkconfig httpd on
Seguindo os nomes dos pacotes, no Debian o serviço se chama "apache2", enquanto no Fedora e no CentOS ele se chama "httpd". Para reiniciar o servidor você usa, respectivamente, os comandos "/etc/init.d/apache2 restart" e "service httpd restart".
Acessando o endereço "http://127.0.0.1", você verá uma página de boas-vindas, que indica que o servidor está funcionando. Se não houver nenhum firewall no caminho, ele já estará acessível a partir de outros micros da rede local ou da internet:
Por enquanto, temos apenas uma versão básica do Apache, que simplesmente exibe arquivos html e executa scripts CGI. Por padrão, o diretório raiz do servidor Web é "/var/www" (no Debian) ou "/var/www/html" (no Fedora). Com isso, a página "http://seu.servidor/index.html" é, na verdade, o arquivo "/var/www/index.html" ou "/var/www/html/index.html".
Como de praxe, o diretório raiz é definido através de uma opção dentro do arquivo principal de configuração (a opção "DocumentRoot") e pode ser alterado caso desejado. Ao hospedar diversos sites no mesmo servidor, você define uma pasta raiz diferente para cada um. Como pode ver, a instalação do Apache propriamente dita é bastante simples, o grande desafio é configurar e otimizar o servidor, como veremos ao longo do restante deste capítulo.
Instalação a partir do código fonte: Muitos administradores preferem instalar o Apache a partir dos fontes, o que oferece um controle maior sobre os recursos que ficarão ou não ativos.
De uma forma geral, instalar a partir do código fonte só é uma boa idéia se você conhece muito bem o software e não está satisfeito com as opções de compilação usadas nos pacotes incluídos na distribuição. Além da instalação e da configuração inicial, você precisará também se preocupar com patches e atualizações de segurança, já que você não poderá contar com as atualizações disponibilizadas através do apt-get ou do yum. Ou seja, se você não está confiante de que vai ter o tempo e o conhecimento necessários para realizar um trabalho de manutenção melhor do que o realizado pelos mantenedores do Debian, Ubuntu, CentOS ou do Fedora, você estará melhor servido simplesmente usado os pacotes pré-compilados. :)
De qualquer forma, se você quer encarar o desafio, pode baixar o código fonte no: http://httpd.apache.org/. Lembre-se de que para instalar qualquer aplicativo a partir dos fontes, você precisa ter instalados os compiladores e bibliotecas de desenvolvimento.
Os passos básicos são descompactar o pacote, acessar a pasta que será criada e executar o trio "./configure", "make" e "make install", este último como root. Isso resultará em uma instalação padrão, onde todos os arquivos são instalados no diretório "/usr/local/apache2". Para personalizar as opções (que seria o principal motivo de instalar a partir dos fontes, afinal), você deve passar as opções desejadas ao executar o "./configure", como em:
$ ./configure --prefix=/etc/apache2 --exec-prefix=/usr --bindir=/usr/bin \
--sbindir=/usr/sbin --mandir=/usr/share/man --sysconfdir=/etc/apache2/conf \
--includedir=/usr/include/httpd --libexecdir=/usr/lib/httpd/modules \
--datadir=/var/www/ --with-mpm=prefork --enable-mods-shared="rewrite"
Como pode ver, as opções incluem não apenas os diretórios de instalação, mas também os módulos que serão ativados e diversas outras opções de configuração. Ao instalar a partir do código fonte, a ativação e a desativação do servidor é feita usando o script "apachectl", que substitui o "/etc/init.d/apache2" ou o "service httpd", como em:
# apachectl start
ou:
# apachectl restart


Fonte: http://www.hardware.com.br/livros/servidores-linux/instalando-apache.html

Código-fonte do Android 4.0 será aberto até o final do ano

Falando na semana passada na conferência AsiaD em Hong Kong, Andy Rubin, vice-presidente sênior da área móvel e responsável pelo desenvolvimento do Android, confirmou que o código-fonte da próima grande atualização do Android, a versão 4.0 (codinome "Ice Cream Sandwich"), estará disponível como software livre "em algumas semanas" depois do Galaxy Nexus começar a ser vendido.

Mais na fonte: http://www.h-online.com/open/n[...]urced-by-year-end-1363994.html

quarta-feira, 5 de outubro de 2011

Script TSM Instalação do Cliente

Segue o Link Galera da Postagem do nosso amigo Paulo Amaral sobre o TSM

http://pauloamaral.blog.br/shell-script-tsm-tivoli-storage-manager-client-install/

Script TSM Instalação do Cliente

Shell Script – TSM – Instalação do cliente versão 6.x – DEBIAN/UBUNTU

bash Shell Script   TSM   Instalação do cliente versão 6.x   DEBIAN/UBUNTUNeste post estou disponibilizando um script de minha autoria para automatizar as tarefas de instalação do Cliente TSM - Tivoli Storage Manager ( backup ) em servidores ou estações linux ( 64 e 32 bits ) – AMD64 – I386 – X86_64. Os testes foram realizados em servidores : Ubuntu Server 11.04 – Natty  - 32 e 64 bits, contudo pode ser instalado em servidores CentOS , RHEL, SuSe, Debian e outras distros, bastando alterar ou comentar linhas. Estou bem contente porque este é meu primeiro script disponibilizado e também porque fazia tempo que não praticava programação ( estou desenferrujando ).

O script TSM é bem simples e basicamente trabalha da seguinte forma :

  • Vai ao FTP da IBM e faz o download do cliente e pacote de idioma de acordo com a opção do usuário.
  • Checa se o sistema é 32 ou 64 bits e configura o sistema de acordo com isso.
  • Descompacta, cria os pacotes .deb, instala os arquivos de configuração, inicialização e portas para acesso web ( webclient ).
  • Registra o Nó cliente junto ao servidor de backup ( TSM SERVER ) se este for Linux. No caso de servidor TSM SERVER Windows, o registro do cliente deve ser feito manualmente.
  • Limpa a instalação e sai de acordo com opção do usuário.
Espero que a comunidade possa melhorar o script e disponibilizar novas funcionalidades além de dar feedback e sugerir melhorias.

Script TSM

Atenção : Em sistemas com filesystem EXT4 adicione a seguinte linha no arquivo dsm.sys -   “ virtualmountpoint /  “  Ref. ao erro ANS1149E
#!/bin/bash
#
# Paulo Sérgio <a href="paulo%20s.">Amaral</a> - 14/JUN/2011 - paulo.security@gmail.com
# Testado em Servidor Ubuntu Server 11.04 - Natty -EXT4 FILESYSTEM
# Working with IBM TS3200
# EXECUTAR SCRIPT no /opt
clear
echo
echo "------------------------------------------------------------------------------------"
echo "# TIVOLI TSM                                                                       #"
echo "# TSM CLIENT INSTALL - Para versão 6.0/6.1/6.2                                     #"
echo "# Copyright (C) 2011 Paulo Sérgio Amaral (http://pauloamaral.blog.br)              #"
echo "# Versão do script - 1.0 - 27/jun/2011                                             #"
echo "------------------------------------------------------------------------------------"
echo
# Verificar root
ROOT_UID=0
if [ "$(id -u)" != "0" ]; then
      echo "ERRO: Este Programa só pode ser executado como root ou administrador"
      echo
      exit 1
      else
      echo "Você esta logado como root"
fi
#Atualizar pacotes ( RECOMENDÁVEL )
read -p "Antes da Instalação - Deseja atualizar a lista de pacotes? [N/s]" resp
         resp=$(echo "$resp" | tr [[:upper:]] [[:lower:]] | cut -c1)
    if [ "$resp" = "s" ]; then
       echo "Atualizando os repositórios"
       echo
       sleep 1
       apt-get update  >> install.log
    fi
#Boas Vindas
echo "Bem vindo a instalação - IBM Tivoli TSM Client - Versão Debian/Ubuntu !"
echo
echo "Pressione ENTER para continuar ou CTRL-C para sair exit... \c"
read BUFFER
#Caso tenha proxy - Configuração
read -p "Seu ambiente possui proxy [s/N]" resposta
        resposta=$(echo $resposta | tr [[:upper:]] [[:lower:]] | cut -c1)
if [ "$resposta" = "n" ]; then
       echo "Indo para a Instalação"
   else
       if cat /etc/profile | grep "\(http_proxy\|ftp_proxy\)" > /dev/null; then
              echo "   O proxy ja esta configurado em /etc/profile"
              echo "   Os valores sao: "
              echo
              cat /etc/profile | grep "\(http_proxy\|ftp_proxy\)"
              sleep 3
              echo
read -p "   O proxy necessita usuario e senha?  [s/N] " proxysenha
         proxysenha=$(echo $proxysenha | tr [[:upper:]] [[:lower:]] | cut -c1)
              if [ "$proxysenha" = "s" ]; then
                 read -p "Digite o nome do usuario para o proxy: " usuario
                 read -p "Digite a senha para o proxy: " senha
              fi
                 read -p "Digite o ip do servidor proxy: " ip_servidor
                 read -p "Digite a porta do proxy: " porta
                 echo
              if [ "$proxysenha" = "s" ]; then
                 PROXY="${usuario}:${senha}@${ip_servidor}:${porta}"
             else
                 PROXY="${ip_servidor}:${porta}"
              fi
       fi
fi
# configuração do /etc/profile
cat <<-EOF >> /etc/profile
http_proxy="http://${PROXY}"
ftp_proxy="http://${PROXY}"
export http_proxy ftp_proxy
EOF
http_proxy="http://${PROXY}"
ftp_proxy="http://${PROXY}"
# exportando as variáveis http_proxy e ftp_proxy
export http_proxy ftp_proxy
# configuração do /etc/apt/apt.conf
cat <<-EOF >>  /etc/apt/apt.conf
Acquire {
HTTP::PROXY=${PROXY};
FTP::PROXY=${PROXY};
}
EOF
# Configuracao do /etc/environment
cat <<-EOF >> /etc/environment
http_proxy="http://${PROXY}"
ftp_proxy="http://${PROXY}"
Acquire {
HTTP::PROXY=${PROXY};
FTP::PROXY=${PROXY};
}
alias wget="wget -Y on"
EOF
## se o proxy tiver senha o wget tem que ter senha também
if [ "$proxysenha" = "s" ]; then
# configuracao do wget
cat <<-EOF >> /etc/bashrc
alias wget="wget --proxy-user=${usuario} --proxy-passwd=${senha}"
EOF
fi
#Dependências
clear
echo -n "Verificando e Instalando dependências \n"
echo "-----------------------------------------"
dpkg --get-selections | grep -q alien
if [ $? -eq 1 ] ; then
   apt-get install alien
else
   echo "Alien Instalado !" ;
fi
dpkg --get-selections | grep -q ksh
if [ $? -eq 1 ] ; then
   apt-get install ksh
else
   echo "Ksh Instalado !" ;
fi
dpkg --get-selections | grep -q libstdc++5
if [ $? -eq 1 ] ; then
   apt-get install libstdc++5
else
   echo "libstdc++5 Instalado !" ;
fi
dpkg --get-selections | grep -q libstdc++6
if [ $? -eq 1 ] ; then
   apt-get install libstdc++6
else
   echo "libstdc++6 Instalado !" ;
fi
#Verifica se o sistema é 64 bits e instala o pacote de compatibilidade
#Pacote necessário em caso de mensagem "not a dynamic executable”
versao=" `uname -m` "
if [ $versao = "x86_64" ]; then
   echo "Seu sistema é 64 bits - Instalando ia32-libs "
         apt-get install ia32-libs
   else
   echo "Seu sistema não é 64 bits - logo não precisa do pacote ia32-libs ! "
         if [ $? -eq 1 ] ; then
         echo "ia32-libs Instalado !" ;
         fi
fi
#Seleciona e faz Download do Cliente
echo  "\n\n Inicio da instalação do TSM CLIENT \n\n"
echo "Informe qual o pacote de liguagem ( tradução do cliente TSM ) : "
while true
    do
    echo "-----------------------------------------------------------\n"
    echo " 1  - DE_DE "
    echo " 2  - ES_ES"
    echo " 3  - FR_FR"
    echo " 4  - HU_HU "
    echo " 5  - IT_IT"
    echo " 6  - JA_JP"
    echo " 7  - KO_KR"
    echo " 8  - PL_PL "
    echo " 9  - PT_BR "
    echo " 10 - RU_RU "
    echo " 11 - ZH_CN "
    echo " 12 - ZH_TW"
    echo " 13 - Sair"
    echo -n " Selecione : "
    read escolha
    echo
case $escolha in
    1) LNG="DE_DE" ;;
    2) LNG="ES_ES" ;;
    3) LNG="FR_FR" ;;
    4) LNG="HU_HU" ;;
    5) LNG="IT_IT" ;;
    6) LNG="JA_JP" ;;
    7) LNG="KO_KR" ;;
    8) LNG="PL_PL" ;;
    9) LNG="PT_BR" ;;
    10) LNG="RU_RU" ;;
    11) LNG="ZH_CN" ;;
    12) LNG="DE_TW" ;;
    13) exit ;;
    *) echo -n" Desculpe, opção inválida"; echo ;;
  esac
while true
    do
    echo " OPÇÕES DE INSTALAÇÃO "
    echo "---------------------- \n"
    echo " 1 - tsm versão 6.1.0"
    echo " 2 - tsm versão 6.1.3"
    echo " 3 - tsm versão 6.1.4"
    echo " 4 - tsm versão 6.2.0"
    echo " 5 - tsm versão 6.2.1"
    echo " 6 - tsm versão 6.2.2"
    echo " 7 - Sair"
    echo
    echo -n " Selecione : "
    read TSM_VERSION
case $TSM_VERSION in
    1) echo " Efetuando download do arquivo" ; wget -c $FTP_HOST/v6r1/Linux/LinuxX86/v610/6.1.0.0-TIV-TSMBAC-LinuxX86.tar; echo " Efetuando download language pack"; wget -c $FTP_HOST/v6r1/Linux/LinuxX86/v610/TIVsm-msg.$LNG.i386.rpm ;;
    2) echo " Efetuando download do arquivo" ; wget -c $FTP_HOST/v6r1/Linux/LinuxX86/v613/6.1.3.0-TIV-TSMBAC-LinuxX86.tar; echo " Efetuando download language pack"; wget -c $FTP_HOST/v6r1/Linux/LinuxX86/v613/TIVsm-msg.$LNG.i386.rpm ;;
    3) echo " Efetuando download do arquivo" ; wget -c $FTP_HOST/v6r1/Linux/LinuxX86/v614/6.1.4.0-TIV-TSMBAC-LinuxX86.tar; echo " Efetuando download language pack"; wget -c $FTP_HOST/v6r1/Linux/LinuxX86/v614/TIVsm-msg.$LNG.i386.rpm ;;
    4) echo " Efetuando download do arquivo" ; wget -c $FTP_HOST/v6r2/Linux/LinuxX86/v620/6.2.0.0-TIV-TSMBAC-LinuxX86.tar; echo " Efetuando download language pack"; wget -c $FTP_HOST/v6r2/Linux/LinuxX86/v620/TIVsm-msg.$LNG.i386.rpm ;;
    5) echo " Efetuando download do arquivo" ; wget -c $FTP_HOST/v6r2/Linux/LinuxX86/v621/6.2.1.0-TIV-TSMBAC-LinuxX86.tar; echo " Efetuando download language pack"; wget -c $FTP_HOST/v6r2/Linux/LinuxX86/v621/TIVsm-msg.$LNG.i386.rpm ;;
    6) echo " Efetuando download do arquivo" ; wget -c $FTP_HOST/v6r2/Linux/LinuxX86/v622/6.2.2.0-TIV-TSMBAC-LinuxX86.tar; echo " Efetuando download language pack"; wget -c $FTP_HOST/v6r2/Linux/LinuxX86/v622/TIVsm-msg.$LNG.i386.rpm ;;
    7) exit ;;
    *) echo " Desculpe, opção inválida"; echo ;;
  esac
#Descompactar e enviar versão para variável $VERSION
ls *.tar > lista
echo "DESCOMPACTANDO "
echo "---------------"
for i in *.tar; do tar xvf $i; done
VERSION="`cut -c-5 lista`" # Pega Versão do Tsm
echo
# Converter rpms para formato .deb
echo "PREPARANDO ARQUIVOS "
echo "------------------- "
alien -g TIVsm-API.i386.rpm
alien -g TIVsm-BA.i386.rpm
alien -g TIVsm-API64.i386.rpm
alien -g TIVsm-msg.$LNG.i386.rpm
echo
#Mover arquivos
mv TIVsm-API-$VERSION/debian TIVsm-API-$VERSION/DEBIAN
mv TIVsm-BA-$VERSION/debian TIVsm-BA-$VERSION/DEBIAN
mv TIVsm-API64-$VERSION/debian TIVsm-API64-$VERSION/DEBIAN
echo
#<a href="implantar%20e%20gerenciar%20os%20reposit%C3%B3rios%20do%20epo">Criar</a> arquivos de controle
echo "CRIANDO ARQUIVOS DE CONTROLE "
echo "--------------------------- "
touch TIVsm-API-$VERSION/DEBIAN/control
touch TIVsm-BA-$VERSION/DEBIAN/control
touch TIVsm-API64-$VERSION/DEBIAN/control
# Ajustando arquivos de controle
if [ $versao = "x86_64" ]; then
   echo "Seu sistema é 64 bits - Modificando arquivos para esta plataforma" ;
cat << EOF > TIVsm-API-$VERSION/DEBIAN/control
Source: tivsm-api
Section: alien
Priority: extra
Maintainer: Linux
Package: tivsm-api
Architecture: amd64
Depends:
Description: the API IBM Tivoli Storage Manager API
Version: $VERSION
EOF
cat << EOF > TIVsm-BA-$VERSION/DEBIAN/control
Source: tivsm-ba
Section: alien
Priority: extra
Maintainer: linux
Package: tivsm-ba
Architecture: amd64
Depends:
Description: the Backup Archive Client IBM Tivoli Storage Manager Client
Version: $VERSION
EOF
cat << EOF > TIVsm-API64-$VERSION/DEBIAN/control
Source: tivsm-api64
Section: alien
Priority: extra
Maintainer: linux
Package: tivsm-api64
Architecture: amd64
Depends:
Description: the API IBM Tivoli Storage Manager API
Version: $VERSION
EOF
else
echo "Seu sistema é 32 bits - Modificando arquivos para esta plaforma ! \n "  ;
cat << EOF > TIVsm-API-$VERSION/DEBIAN/control
Source: tivsm-api
Section: alien
Priority: extra
Maintainer: linux
Package: tivsm-api
Architecture: i386
Depends:
Description: the API IBM Tivoli Storage Manager API
Version: $VERSION
EOF
cat << EOF > TIVsm-BA-$VERSION/DEBIAN/control
Source: tivsm-ba
Section: alien
Priority: extra
Maintainer: linux
Package: tivsm-ba
Architecture: i386
Depends:
Description: the Backup Archive Client IBM Tivoli Storage Manager Client
Version: $VERSION
EOF
fi
echo
# Criando os pacotes.deb
echo "Criando pacotes .deb "
echo "----------------------"
if [ $versao = "x86_64" ]; then
   dpkg -b TIVsm-API-"$VERSION"
   dpkg -b TIVsm-BA-"$VERSION"
   dpkg -b TIVsm-API64-"$VERSION"
   else
   dpkg -b TIVsm-API-"$VERSION"
   dpkg -b TIVsm-BA-"$VERSION"
fi
echo
#Instalar pacotes *.deb
echo "Instalando pacotes .deb "
echo "------------------------"
if [ $versao = "x86_64" ]; then
dpkg -i TIVsm-API-"$VERSION".deb >> install.log
dpkg -i TIVsm-BA-"$VERSION".deb  >> install.log
dpkg -i TIVsm-API64-"$VERSION".deb >> install.log
else
dpkg -i TIVsm-API-"$VERSION".deb >> install.log
dpkg -i TIVsm-BA-"$VERSION".deb  >> install.log
fi
echo
# Criando os log's
echo "Criando arquivos de log "
echo "-------------------------"
mkdir /var/log/tsm     >> install.log
chmod 700 /var/log/tsm >>install.log
echo
#Criando arquivos iniciais de configuração
#O tsm client usa três arquivos para isso - dsm.opt - dsm.sys - inclexcl
echo "Criando arquivos de configuração "
echo "-------------------------------- "
cd /opt/tivoli/tsm/client/ba/bin >>install.log
mv dsm.opt.smp dsm.opt           >> install.log
mv dsm.sys.smp dsm.sys           >> install.log
touch inclexcl                   >> install.log
echo
#Criando arquivo incial de configuração dsm.opt
echo "Qual o nome do servidor TSM (Console): "
read servidor
echo "Qual o endereço IP do servidor TSM (Console): "
read ipservidor
echo "Configurando dsm.opt"
cat << EOF > dsm.opt
Servername $servidor
DOMAIN ALL­LOCAL
archsymlinkasfile no
EOF
#Criando arquivo incial de configuração dsm.sys
#Altere o campo SErvername / TCPServeraddress  de acordo com o do seu servidor
localhostname="`hostname`"
echo "Configurando dsm.sys"
cat << EOF > dsm.sys
Servername              $servidor
COMMmethod              TCPip
TCPPort                 1500
TCPServeraddress        $ipservidor
NODename                $localhostname
Passwordaccess          generate
Users                   root
ERRORProg               /bin/cat
TCPBuffSize             32
TCPWindowSize           63
TCPNodelay              yes
TxnByteLimit            25600
largecommbuffers        yes
resourceutil            4
COMPRESSIon             no
SCHEDMODe               prompted
SCHEDLOGRetention       4, S
ERRORLOGRetention       4, S
SCHEDLOGName            /var/log/tsm/dsmsched.log
ERRORLOGname            /var/log/tsm/dsmerror.log
INCLExcl                /opt/tivoli/tsm/client/ba/bin/inclexcl
MANAGEDServices          webclient
HTTPPort                1581 1580
webports                1591 1592
#virtualmountpoint     /
EOF
#Criando arquivos de exclusões
echo "Configurando arquivo de exclusões"
cat << EOF > inclexcl
exclude.dir      /.../tmp
exclude.dir      /opt
exclude.dir      /.../home
exclude.dir      /.../var/log
exclude.dir      /.../var/spool/squid
exclude.dir      /.../var/spool/cache
exclude.file     /.../core
exclude.file     /.../[Cc]ache
exclude.file     /.../.Xauthority
exclude.file     /.../.bash_history
exclude.file     /.../.adsmrc
exclude.file     /.../*.pid
exclude.file     /.../dev/ptmx
exclude.file     /.../dev/tty12
exclude.file     /.../var/log/dsmsched*
exclude.file     /.../var/log/dsmerror*
exclude.file     /.../random_seed
EOF
#Criando script inicialização
echo "Criando script de incialização"
touch /etc/init.d/tsm
cat > /etc/init.d/tsm << "EOF"
#!/bin/bash
 ########################################################################
 ## This script is used to start/stop the dsmcad under ubuntu
 ##              The original script was: start/stop mldonkey p2p client
 ##              2007 by Christoph Langner, published under the GPL v3
 ##              published on http://wiki.ubuntuusers.de/MLDonkey
 ## Changed the script to start/stop the dsmcad for ubuntu
 ## 2008 by Timo Scheller, published under the GPL v3
 ## Modified, Feb. 2009 for Ubuntu Server 8.04.2
 ## Modified, Feb. 2010, Fixed to change this ANS4042E: http://www-01.ibm.com/support/docview.wss?uid=swg21290640
 ## No warranty, use it at your own risk!
 #######################################################################
 ### BEGIN INIT INFO
 # Provides:          dsmcad
 # Required-Start:    $local_fs dbus
 # Required-Stop:     $local_fs dbus
 # Should-Start:         $syslog
 # Should-Stop:       $syslog
 # Default-Start:     2 3 4 5
 # Default-Stop:      S 0 1 6
 # Short-Description: TSM Client Acceptor Daemon (dsmcad)
 # Description:       Start/Stop the TSM CAD Daemon
 ### END INIT INFO
#START TSM SCHEDULE
dsmc schedule > /dev/null 2>%1 &
 #PATH=/sbin:/bin:/usr/sbin:/usr/bin
 DESC="TSM Client Acceptor Daemon"
 DAEMON=/opt/tivoli/tsm/client/ba/bin/dsmcad
 SCRIPTNAME="/etc/init.d/tsm"
 . /lib/lsb/init-functions
DSM_CONFIG=/opt/tivoli/tsm/client/ba/bin/dsm.opt
DSM_DIR=/opt/tivoli/tsm/client/ba/bin/
DSM_LOG=/var/log/tsm/
export DSM_DIR DSM_CONFIG DSM_LOG
 ## Functions
 #
 # Root-Check
 #
 rootcheck() {
 if [ $UID -ne 0 ] ; then
        echo "You must be a root user" 2>&1
        exit 1
 fi
 }
 #
 # Get PID of daemon
 #
 pidof_dsmcad() {
        PID=$(pidof $DAEMON)
        if [ ! $PID ]; then
                return 1
        fi
        echo $PID
 }
 #
 # Start the dsmcad daemon
 #
 d_start () {
        rootcheck
        if [ ! $(pidof_dsmcad) ]; then
                $DAEMON > /dev/null 2>&1
        fi
 }
 #
 # Stop dsmcad daemon
 #
 d_stop () {
        rootcheck
        pkill -f $DAEMON
 }
 #
 # Get Status of dsmcad
 #
 d_status() {
        if [ $(pidof_dsmcad) ]; then
                echo "$DESC is running"
        else
                echo "$DESC is not running"
        fi
 }
 #
 # init-Skript
 #
 case $1 in
        start)
                log_daemon_msg "Starting" $DESC $DAEMON
                d_start
                if [ $(pidof dsmcad) ]; then
                        log_end_msg 0
                else
                        log_end_msg 1
                fi
        ;;
        stop)
                log_daemon_msg "Stopping" $DESC $DAEMON
                d_stop
                sleep 2
                if [ $(pidof $DAEMON) ]; then
                        log_end_msg 1
                else
                        log_end_msg 0
                fi
        ;;
        status)
                d_status
        ;;
        restart)
                $0 stop
                sleep 1
                $0 start
        ;;
        *)
                echo "Usage: /etc/init.d/dsmcad {start|stop|restart|status}"
        ;;
 esac
EOF
echo "Configurando permissões de incialização"
chmod +x  /etc/init.d/tsm
update-rc.d tsm defaults
/etc/init.d/tsm start
sleep 1
#Corrigindo possíveis erros
#--------------------------
echo "Corrigindo possíveis erros "
#dsmc: error while loading shared libraries: libgpfs.so: cannot open shared object file: No such file or directory
echo "/opt/tivoli/tsm/client/api/bin/" > /etc/ld.so.conf.d/tivoli.conf
ldconfig
#Corrigir erro ANS0102W - Unable to open the message repository /opt/tivoli/tsm/client/ba/bin/EN_US/dsmclientV3.cat. The American English repository will be used instead.
cp -R /opt/TIVsm-msg.$LNG-$VERSION/opt/tivoli/tsm/client/lang/$LNG /opt/tivoli/tsm/client/lang/
cp -R /opt/TIVsm-msg.$LNG-$VERSION/opt/tivoli/tsm/client/lang/$LNG /opt/tivoli/tsm/client/ba/bin/
ln -s /opt/tivoli/tsm/client/lang/EN_US /opt/tivoli/tsm/client/ba/bin/$LNG
ln -s /opt/tivoli/tsm/client/lang/EN_US /opt/tivoli/tsm/client/ba/bin/EN_US
# Verificando se o client acceptor esta rodando na porta que você determinou no arquivo dsm.sys:
echo "Verificando se os Serviços estão ativos "
netstat -tlpn | grep dsmc
ps -ef | grep dsm
echo
#Registrando o novo NÓ ou node junto ao Servidor TSM
echo "REGISTRANDO O CLIENTE JUNTO AO TSM SERVER "
         echo "-----------------------------------------"
         read -p "Seu Servidor TSM ( Console )esta instalado em Ambiente Linux [s/N]" resposta
         resposta=$(echo $resposta | tr [[:upper:]] [[:lower:]] | cut -c1)
if [ "$resposta" = "s" ]; then
         echo "Registrando cliente ( nó ) junto ao Servidor Linux"
         echo "Qual a nome do Usuario administrador no TSM SERVER : "
         read admuser
         echo "Qual a senha do administrador no TSM SERVER : "
         read admpasswd
         echo "Crie uma senha para o cliente ( novo nó ) : "
         read passwdclient
         dsmadmc -id=$admuser -password=$admpassword "register node $localhostname $passwdclient"
  else
         echo "Registre Manualmente"
fi
#Limpar Instalação
echo "Limpando arquivos de Instalação"
cd /opt
cat << EOF > limpar
*.deb
*.rpm
lista
README_*
TIVsm-*
EOF
for i in `cat limpar` ; do
rm -rf $i
done
echo
echo "INSTALAÇÃO TERMINADA - NÃO ESQUEÇA DE REGISTRAR O NÓ E CRIAR O PLANEJAMENTO ( SCHEDULE ) \n "
echo " Acesso webclient : http://localhost:1581
done
done