:::: MENU ::::
Mostrando postagens com marcador servidores. Mostrar todas as postagens
Mostrando postagens com marcador servidores. Mostrar todas as postagens

terça-feira, 24 de maio de 2016

Queridos! A coisa toda é simples. Vou deixar um template aqui pra vocês colocarem seus scripts como serviço e pararem de usar o útil nohup. Outra coisa: Seu script DEVE TER perfil de serviço. Não estou falando de um monte de comandos um embaixo do outro, beleza?
Pra facilitar, vou sublinhar as linhas que vocês devem alterar.


[Unit]
Description=Hubot
Requires=network.target
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/butis/hubot
User=sobutis
Restart=always
RestartSec=10
EnvironmentFile=/etc/hubot/variaveis.conf
ExecStart=/home/butis/hubot/bin/hubot -a rocketchat

[Install]
WantedBy=multi-user.target


Eu acho que o conteúdo é bastante explicativo, mas, vamos explicar assim mesmo. Nesse exemplo, vamos criar um usuário que executará o hubot.

1. Precisamos criar um usuário pra rodar esse serviço, por questões de segurança.
adduser hubot

Nós não vamos definir o shell dele como /bin/false, porque é um script, ou seja, ele precisa do bash/ksh/sh para executar os comandos.

2. Coloque o script no diretório do usuário criado - isso é meio que lógico né?

3. Crie o arquivo hubot.service dentro de /etc/systemd/system.  Repare: {nome do serviço}.service. Pegou o padrão? Ok!

O Conteúdo é esse daí de cima. Vamos comentar linha a linha pra entendermos.


[Unit]
Description=Hubot 

Descrição do serviço
 

Requires=network.target
Dependências. O seu serviço depende de algum outro?
 

After=network.target
Ordem de execução. O serviço só será iniciado após o outro definido estar rodando.

[Service]
Type=simple
WorkingDirectory=/home/butis/hubot

Diretório de execução do seu serviço.

User=sobutis

Restart=always
RestartSec=10

Caso o serviço não inicie, ele tentará reiniciar de acordo com o estabelecido nas regras de Restart.

EnvironmentFile=/etc/hubot/variaveis.conf

Como meu script possui várias variáveis, eu preferi carregá-las em um arquivo separado. Defina suas variáveis nele.

ExecStart=/home/butis/hubot/bin/hubot -a rocketchat

Comando de execução do script. Coloque o path inteiro.

[Install]
WantedBy=multi-user.target 


Terminado o arquivo, execute um reload nas confs do systemd:
systemctl daemon-reload

E inicie o serviço
systemctl start hubot

Podemos deixar que ele inicie junto com os outros serviços:
systemctl enable hubot


Prontinho. Com esse modelo vocês já podem colocar qualquer script pra rodar como serviço sem dor de cabeça. Como informação adicional, recomendo a leitura de um documento da Red Hat, muito bem explicado por sinal:
 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html

E um guia pra quem ainda tem medo do systemd
E isso aí. Abraços!

quinta-feira, 10 de julho de 2014

 Esse é um problema raro, mas as vezes acontece. Aconteceu agora comigo. Explico:

Sou usuário da rede da PRODEB-BA (empresa de dados do Estado da Bahia), e, como estou dentro dela, recomenda-se que utilizemos os seus servidores de DNS como forwarder, pois alguns endereços não são publicados para fora de sua rede (ex: fiplan.ba.gov.br e etc.). De uma hora pra outra, não consegui mais acessar o site da bendita PRODEB. Entrei em contato com eles e disseram que o problema é comigo.
Ok. Depois de muito funçar, alterei o meu forwarder (encaminhador) para um endereço do DNS do Google - e funcionou!

Então, para que esse problema seja resolvido, faremos o seguinte:

Para o domínio prodeb.ba.gov.br, use os DNS 8.8.8.8 e 8.8.4.4



E para os outros domínios, use o forwarder da PRODEB:




terça-feira, 5 de junho de 2012


O que é o Moodle?

O Moodle é um Sistema Open Source de Gerenciamento de Cursos - Course Management System (CMS), também conhecido como Learning Management System (LMS) ou um Ambiente Virtual de Aprendizagem (AVA). Tornou-se muito popular entre os educadores de todo o mundo como uma ferramenta para criar sites de web dinâmicos para seus alunos. Para funcionar, ele precisa ser instalado em um servidor web, em um de seus próprios computadores ou numa empresa de hospedagem.

O foco do projeto Moodle é sempre a disponibilizar aos educadores as melhores ferramentas para gerenciar e promover a aprendizagem, mas há muitas maneiras de se utilizar o Moodle:
  • O Moodle possui características que lhe permitem usabilidade em grande escala para centenas de milhares de estudantes, mas também pode ser usado para uma escola primária ou um entusiasta da educação.
  • Muitas instituições utilizam como plataforma para realização de cursos totalmente on-line, enquanto outros simplesmente usam como contato em seus cursos (conhecido como blended learning).
  • Muitos de nossos usuários gostam de usar os módulos de atividade (como fóruns, wikis e bancos de dados) para construir comunidades amplamente colaborativas de aprendizagem em torno de seu tema (na tradição construcionista social), enquanto outros preferem utilizar o Moodle como um meio de fornecer conteúdo aos alunos (tais como pacotes padrão SCORM) e avaliar a aprendizagem utilizando tarefas ou testes.



How to instalar o moodle


baixe o pacote do Moodle (versão 2.2.3)
wget http://ufpr.dl.sourceforge.net/project/moodle/Moodle/stable22/moodle-2.2.3.tgz
mkdir -p /opt/moodle/site/
tar xvf moodle-2.2.3.tgz -C /opt/moodle/site
chown -R wwwrun:www /opt/moodle



Instale o LAMP
zypper in -t pattern lamp_server

O Moodle funcionará melhor com esses complementos:
zypper in php5-mbstring php5-openssl php5-xmlrpc php5-soap php5-gd php5-intl php5-iconv php5-curl php5-tokenizer php5-ctype php5- php5-simplexml php5-spl php5-pcre php5-dom php5-xml php5-json

Configuração do Apache
Crie o arquivo /etc/apache2/conf.d/moodle.conf com o seguinte conteúdo:
Alias /moodle /opt/moodle/site/
<Directory /opt/moodle/site/ >
Options +Indexes +FollowSymLinks
IndexOptions +NameWidth=*
Order allow,deny
Allow from all
</Directory>


Inicie o servidor web e o mysql
service apache2 start
service mysql start

Após isso ele estará disponível no endereço http://ip.do.seu.servidor/moodle e é só configurar o ambiente. Aí vai do gosto de cada um.

Um abrazzo!

domingo, 3 de junho de 2012

Imaginemos a situação:
Você possui um servidor que recebe os arquivos de backup, eles são guardados por 30 dias e depois são removidos, liberando espaço para os mais novos. Ah, lembre-se de ter um log dos arquivos removidos ;)
Um modo fácil de fazer essa rotação é guardando os backups em pastas por mês, por exemplo, todos os arquivos de Janeiro ficarão no diretório 01, Fevereiro no 02 e por aí vai...
Mas, caso não seja possível fazer isso, vamos montar um simples script para executar essa tarefa :)


#!/bin/bash
# Remove arquivos maiores que 30 dias e gera um log
FILENAME=FILES_$(date +%Y%m%d%H%M%m).log
find . -mtime +30 -exec echo {} \; > $FILENAME
rm -rfv $(cat $FILENAME)

A lógica é simples:
Na variável, eu crio um arquivo que possui um prefixo e como sufixo coloco:
  1. Ano, com 4 dígitos - %Y
  2. Mês, com 2 dígitos - %m
  3. Dia, com 2 dígitos - %d
  4. Horas, com 2 dígitos - %H
  5. Minutos, com 2 dígitos - %M
  6. Segundos, com 2 dígitos - %S

O Find irá buscar por arquivos que não modificados nos últimos 30 dias, exibindo os seus nomes e enviando o seu output para um arquivo, que será o log dos arquivos removidos naquele momento.

Após isso, o rm irá ler o arquivo gerado pelo find e removê-los um a um.

Mole né?

sexta-feira, 9 de março de 2012

Dois pequenos detalhes impedem de realizar o login no proftpd com usuários locais:

1. Se o nome da máquina não estiver definido no arquivo /etc/hosts, apontando para o endereço de loopback (claro)
2. Se no arquivo de configuração /etc/proftpd/proftpd.conf,o módulo de autenticação unix estiver desabilitado. Eis como o arquivo geralmente vem:
### order of auth modules
        #AuthOrder               mod_auth_unix.c mod_auth_file.c
        AuthOrder              mod_auth_file.c

E como deve ficar:
### order of auth modules
        AuthOrder               mod_auth_unix.c mod_auth_file.c
        #AuthOrder              mod_auth_file.c

Feito isso, teste o serviço:
ftp endereco.do.servidor.ftp

Coloque o login e senha e seja feliz :)

Add-on:
Use um usuário específico para o ftp, para maior segurança:
useradd CACIC -c "Usuario CACIC"  -d   /srv/ftp/cacic -s /bin/false
 E logue com esse user.

Abraço!

quarta-feira, 7 de março de 2012

Essa é uma das principais queixas dos novos usuários do openSUSE: Atualização automática cada vez que o gerenciador de pacotes / zypper é invocado. Realmente, isso estressa.

Porém, esse é um problema que tem solução, e das fáceis. Basta apenas desabilitar o auto-update do repositório que o inconveniente será resolvido :)

Mostrarei de duas maneiras: Warrior's Mode e o Newbie Mode.


WARRIOR MODE

Linha de comando é o que há! Shellscript é seu melhor amigo! Interface gráfica é para os frascos e comprimidos!
for REPO in $( seq $( zypper ls | grep -c ^[0-9] ) ); do zypper mr -R $REPO; done

Não entendeu? Eu explico:
Faremos um laço ( for, do, done ). Esse laço irá contar quantos repositórios existem ( $( zypper ls | grep -c ^[0-9] ) e dará quantidade de voltas igual a quantidade de repositórios. A cada volta, um repositório é desabilitado ( zypper mr -R $REPO ).


Newbie orea-seca

Mole mole... Acesse:
Yast > Categoria Software > Repositórios de Software.
Depois é só desmarcar o campo Atualizar Automaticamente e clicar em OK.


Entenderam? Abraço!

domingo, 1 de janeiro de 2012

Queridos, em primeiro lugar, Feliz 2012! Que esse ano seja de muito sucesso para vocês!
Esse ano eu entrei brincando no openVPN, e a pedido do amigo Alan Teixeira, mostrarei como configurar uma VPN usando o openVPN no openSUSE.
De cara vou deixar algo bem claro: Não iremos compilar nada.





INSTALAÇÃO

zypper in openvpn

Por padrão, os arquivos são instalados no diretório /usr/share/openvpn/easy-rsa/2.0,mas, caso queira colocar-los no /etc/openvpn (que também foi criado), entre no diretório de instalação e faça o seguinte:
make install DESTDIR=/etc/openvpn

Isso fará com que o make install coloque os arquivos no diretório /etc/openvpn. Lembrando que o make install não compila, e sim aloca os arquivos nos seus devidos lugares.

CONFIGURAÇÃO

Antes de qualquer coisa, iremos mostrar o passo-a-passo como se você estivesse dentro do DESTDIR, no caso, /etc/openvpn, ok? ;)

Iremos executar 3 arquivos (vars, clean-all e build-ca), mas antes vamos setar alguns parâmetros. No arquivo vars, lá no final, ele tem as variáveis:
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"

Mude de acordo com sua demanda. Por exemplo:
export KEY_COUNTRY="BR"
export KEY_PROVINCE="BA"
export KEY_CITY="Salvador"
export KEY_ORG="M. Bison Parafusos"
export KEY_EMAIL="bison@streetfighter.com.br"

Após isso, execute o vars, o clean-all e o build-ca. Esse último irá criar um certificado de Entidade Certificadora (CA ou Master Certified Autority):
. ./vars
./clean-all
./build-ca

O build-ca fará algumas perguntas, a maioria já estará respondida por causa das variáveis que você setou no arquivo vars. Apenas dê enter nessas perguntas.
A saída será algo mais ou menos assim:
ai:easy-rsa # ./build-ca
Generating a 1024 bit RSA private key
............++++++
...........++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [BR]:
State or Province Name (full name) [BA]:
Locality Name (eg, city) [Salvador]:
Organization Name (eg, company) [M. Bison Parafusos]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:OpenVPN-CA
Email Address [bison@streetfighter.com.br]:

Um parâmetro que você deve observar e não deve ter nenhum igual ao outro, é o common name. O COMMON NAME DEVE SER ÚNICO!

Depois, execute o build-server. Para a criação do certificado do servidor os passos são parecidos com o do CA:
./build-key-server server

Quando for requisitada uma senha, deixe em branco. Geralmente não utilizo. Também será feita duas perguntas e você terá de responder Y ou N. Aperte o Y e confirme.


E continuando, vamos criar os certificados para os clientes:
./build-key ryu
./build-key ken
./build-key balrog

O script build-key cria dois arquivos:
.crt: O certificado
.key: A chave pessoal

E pra finalizar, vamos criar o dh1024.pem
./build-dh

Esses arquivos irão juntar-se a outros que encontram-se no diretório keys. Vejamos um exemplo do que temos por lá:

FilenameNecessária porPropósitoSecreto?
ca.crtservidor + todos os clientesRoot CA certificateNÃO
ca.keyChave única de assinaturaRoot CA keySIM
dh{n}.pemApenas servidorParâmetros Diffie HellmanNÃO
server.crtApenas servidorCertificado do servidorNÃO
server.keyApenas servidorChave do servidorSIM
ryu.crtApenas RyuCertifricado de RyuNÃO
ryu.keyApenas RyuChave de RyuSIM

Bom, hora da configuração do arquivo do servidor e do cliente. Comecemos pelo servidor.
Cara, se tem uma coisa que aprendi, é que o /usr/share/doc/packages é seu melhor amigo. Dentro do /usr/share/doc/packages/openvpn existe o diretório sample-config-files. Copie o server.conf e cole no seu /etc/openvpn. Depois mude os parâmetros de acordo com sua topologia. O meu, por exemplo, ficou assim:

port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ippool.txt
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
log-append openvpn.log
verb 3
script-security 2

E no cliente, após você enviar para ele o certificado e a chave criado exclusivamente para ele, coloque dentro do seu /etc/openvpn os arquivos (ryu.crt e ryu.key) e copie o arquivo /usr/share/doc/packages/openvpn/sample-config-files/client.conf para o seu /etc/openvpn. Edite dessa maneira:

client
dev tun
proto udp
remote X.X.X.X
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert ryu.crt
key ryu.key
ns-cert-type server
comp-lzo
verb 3

Nos parâmetros remote, aponte o ip do servidor matriz do openVPN; Em cert coloque o certificado do cliente e em key adicione o local do arquivo .key do usuário. Cuidado com esse arquivo!!!

Agora inicie o serviço em ambas as pontas. Realize um teste de ping. Se responder em ambas as partes, é um ótimo sinal! Está ok!. Se não, confira nos logs e veja qual é o problema encontrado.
Outra dica para fazer essa verificação é vendo se tem alguma porta UDP aberta com o netstat -planu ou com o comando route - O comando route exibe a quais redes o seu computador está conectado.

Maiores informações:
/usr/share/doc/packages/openvpn
http://openvpn.net/index.php/open-source/documentation/howto.html
http://www.hardware.com.br/tutoriais/openvpn/


domingo, 16 de outubro de 2011

É isso meus queridos. O maldito horário de verão já começou. Vai fuder mei mundo de gente que tem de acordar cedo (eu tenho um amigo que acorda às 4 da manhã, vai ter de levantar às 3 agora!). Eu acordava às 5 da manhã, me fudi nessa também.


Pitangas a parte, é hora de verificar como anda seu servidor de horário, correto?

Bem, os Estados que sofrerão as penalidades do bendito são:
Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, Rio de Janeiro, Espírito Santo, Minas Gerais, Bahia, Goiás, Mato Grosso, Mato Grosso do Sul e no Distrito Federal.

Se você administra servidores em algum desses Estados, teremos de resolver esse probleminha. Siga os passos:

1. Verificar a existência do arquivo '/etc/localtime' e se este arquivo é um link.

DICA! Não é recomendado possuir o arquivo /etc/localtime com link para o arquivo /usr/share/zoneinfo/Brazil/East, pois sistemas em que o diretório /usr não estiver acessível (não tiver sido montado, por exemplo) no momento de inicialização da maquina, as informações contidas no localtime não serão carregadas.

2. Verificar se no diretorio /usr/share/zoneinfo/Brazil existe algum arquivo NÃO BINÁRIO que contenha informações relativas a outros horários de verão

DICA!: geralmente um arquivo com extensão .zic

Se não existir nenhum arquivo com tais informações, deverá ser criado um novo, de nome 'verao.2011.zic' por exemplo, e inserir as seguintes linhas.

Rule Brazil 2011 only - Oct 16 00:00 1 D
Rule Brazil 2012 only - Feb 26 00:00 0 S

Zone Brazil/East -3:00 Brazil BR%sT

Se existir algum arquivo com informações de horário de verão de outros anos, bastará inserir as linhas mencionadas.

As duas primeiras linhas dizem quando se inicia o horário de verão, quando termina, e qual a ação a ser tomada. Lembre-se que no inicio do horário de verão, deve ser adicionada uma hora.

A última linha diz qual o arquivo que será gerado pelo comando zic, no exemplo será o arquivo 'East' (dentro do diretório Brazil). Esta linha também informa o timezone da região, no caso da Bahia (São Paulo, Rio e outros Estados) é -3.

Execute o comando

Com o arquivo 'verao.2011.zic' em mãos, deve-se executar o comando 'zic', tal como segue:

zic verao.2011.zic
No caso particular, este comando atualizará o arquivo East.

Mova o Arquivo

Por último, se o arquivo /etc/localtime não for um link para este arquivo deve-se copiar o arquivo East para /etc/localtime
cp East /etc/localtime




Decreto oficial: https://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/decreto/d7584.htm
Manpage do comando Zic: http://linuxcommand.org/man_pages/zic8.html



quarta-feira, 21 de setembro de 2011

É ridiculamente fácil:

dmidecode --type 17 | sed -n 's/\t//;s/MHz/MHz\n/;s/wn/wn\n----/;/^Locator\|^Speed\|^Size/p'
 E teremos uma saída mais ou menos assim (eu uso só um módulo de 2GB DDR2/800MHz):


miharu-chan:~ # dmidecode --type 17 | sed -n 's/\t//;s/MHz/MHz\n/;s/wn/wn\n----/;/^Locator\|^Speed\|^Size/p'
Size: 2048 MB
Locator: DIMM_A1
Speed: 800 MHz

Size: No Module Installed
Locator: DIMM_A2
Speed: Unknown
----
Size: No Module Installed
Locator: DIMM_B1
Speed: Unknown
----
Size: No Module Installed
Locator: DIMM_B2
Speed: Unknown
----

Ordenado por tamanho de RAM, slot e velocidade. :D

Por mais que pareça uma besteira, procure treinar com saídas de comandos extensas e pratique o seu sed, awk, cut, grep, tr, sort, uniq e outros. Isso ajuda PRA CARALHO na hora de desenvolver scripts. Aprenda se divertindo manolos ;)

Ok, ok... Podem me chamar de desocupado e de penteadeira de puta... Mas ficou legal né? :D

domingo, 11 de setembro de 2011


Rapaz, vou parar de beber. É sério. Eu já sou hiperativo e parece que também tenho DDA (distúrbio de deficit de atenção - não atestado - ainda preciso de uma avaliação psicológica). Essa porra me deixa sem sono! Que cachaça errada da porra...

Enfim, nessas noitadas com pouco sono, vi uma dúvida simples no fórum susebr.org, que era como configurar um servidor FTP de modo que apenas alguns usuários tenham acesso...

Muito fácil.

Primeiro, claro, instale o VSFTPD:
zypper in vsftpd

No seu arquivo de configuração, na sessão de Local FTP user Settings, defina os seguintes parâmetros:

local_enable=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

Com isso, estamos dizendo que
1. Apenas os usuários locais (que existem no /etc/passwd) farão login
2. Teremos uma lista de controle (ACL)
3. A nossa ACL é o arquivo /etc/vsftpd.user_list
4. Nosso arquivo de ACL terá apenas os nomes que terão acesso ao FTP.

Após isso, crie um usuário para o FTP, adicione seu nome na ACL, carregue os arquivos desejados no perfil, remova os diretórios que não serão utilizados e reinicie o serviço.


sexta-feira, 19 de agosto de 2011

Se você está com esse problema, a solução que funcionou pra mim foi a seguinte:


zypper ar -f http://download.virtualbox.org/virtualbox/rpm/opensuse/11.4/ virtualbox
zypper refresh
zypper in VirtualBox-4.0

Em resumo, o que fiz foi um downgrade da versão do Virtualbox da 4.1 para o 4.0 e também estou utilizando o pacote do repositório da Oracle.


sexta-feira, 29 de julho de 2011

Você acaba de configurar o seu tomcat utilizando SSL (igualzin como descrevi nesse post) e ao tentar acessar você recebe essa tela de presente:


Calma, meus pequenos asnos... O problema é que... Não existe problema. VOCÊ É O PROBLEMA.

Dê uma olhadinha na sua URL. Veja o que você está tentando fazer! Nada nada é algo mais ou menos assim:
https://tomcatserver:8080

Repare:
https: O HTTPS funciona na porta 443
tomcatserver:8080 -> No exemplo, o newbie quer acessar a porta 8080 (e a 443 - ao mesmo tempo!)


Então queridos, atentem-se a esse detalhe. Se você configurar o SSL, tentem acessar com http na porta especificada no $CATALINA_HOME/conf/server.xml.
Se nesse arquivo você setar que quer usar a porta 443 no SSL, ai sim, apenas coloque o https:// + servername

Entendidos? :D



Posts populares