Tenho usado faz algum tempo mac no trabalho e fazendo scripts já encontrei dificuldades com sed, a sintaxe difere o que nos leva a ter que instalar o gsed. Então utilizando docker eu criei um script para facilitar minha vida, espero que ajude mais alguém:
# Script
https://github.com/abargiela/scripts/blob/master/docker-ubuntu-start.sh
Eu o adicionei a meu profile fazendo um alias:
alias linux="/opt/docker-ubuntu-start.sh"
Basicamente ele baixa o ubuntu 14.10, mas você pode trocar para o latest enfim, ele monta o /opt/docker-volume-ubuntu da imagem do boot2docker para que você tenha persistência dos dados, portanto caso necessite recuperar algo ele sempre estará la independente de você matar o container e subir novamente. Para ver a persistência:
boot2docker ssh
E acesse: cd /opt/docker-volume-ubuntu todo conteúdo estará lá.
Importante ressaltar que a persistência nesse meu exemplo vale apenas para o que for criado dentro do /opt do container, caso você crie fora o dado não persistirá.
quinta-feira, 18 de junho de 2015
quinta-feira, 30 de outubro de 2014
SSH locked sessions
Bom uma vez um grande amigo me passou um comando para sair de uma sessão travada de ssh, sempre usei, porém nunca fui pesquisar se haviam outras formas ou outros comandos para, até hoje quando tive outra necessidade relacionada e então achei o seguinte:
A sequencia seria basicamente(as vírgulas utilizadas não devem ser digitadas): enter, ~, ?
A sequência para facilitar se sua busca aqui for simplesmente como fechar a sessão, é a em vermelho.
root@local:~# ~?
Supported escape sequences:
~. - terminate connection (and any multiplexed sessions)
~B - send a BREAK to the remote system
~C - open a command line
~R - request rekey
~V/v - decrease/increase verbosity (LogLevel)
~^Z - suspend ssh
~# - list forwarded connections
~& - background ssh (when waiting for connections to terminate)
~? - this message
~~ - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)
Como sempre, espero que seja útil para alguém :)
segunda-feira, 21 de julho de 2014
ubuntu init.d (start/stop/restart) script
Segue o link do github onde hospedei o script, espero que seja útil como foi para mim.
terça-feira, 1 de abril de 2014
quarta-feira, 12 de março de 2014
Installing Varnish with libvmod-digest
Tive a necessidade de fazer uma instalação personalizada do varnish com um de seus vmods, logo para facilitar a minha vida em futuras atualizações de pacotes do varnish ou do próprio vmod, eu fiz um script simples para automatizar esse processo, segue abaixo.
Lembrando que o script foi funcional para o meu caso, espero que ele possa ajudar no seu.
terça-feira, 23 de julho de 2013
varnishd invoked oom-killer [ Out Of Memory no Varnish ]
Hoje nos deparamos com um problema que já vinha ocorrendo porém não havia sido pego, mas graças a uma outra monitoração adicionada, foi detectado que o varnish estava consumindo mais memória do que poderia ou tinha disponível para ele, e ocasionando um OOM, segue a saída do dmesg e do syslog:
- dmesg:
[22804397.963962] Out of memory: Kill process 1316 (varnishd) score 976 or sacrifice child
[22804397.976351] Killed process 1316 (varnishd) total-vm:52876488kB, anon-rss:31908748kB, file-rss:0kB
[22811179.340584] varnishd invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
[22811179.340590] varnishd cpuset=/ mems_allowed=0-1
[22811179.340594] Pid: 12535, comm: varnishd Tainted: G C 3.2.0-23-generic #36-Ubuntu
[22811179.340597] Call Trace:
- /var/log/syslog
varnishd invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
- dmesg:
[22804397.963962] Out of memory: Kill process 1316 (varnishd) score 976 or sacrifice child
[22804397.976351] Killed process 1316 (varnishd) total-vm:52876488kB, anon-rss:31908748kB, file-rss:0kB
[22811179.340584] varnishd invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
[22811179.340590] varnishd cpuset=/ mems_allowed=0-1
[22811179.340594] Pid: 12535, comm: varnishd Tainted: G C 3.2.0-23-generic #36-Ubuntu
[22811179.340597] Call Trace:
- /var/log/syslog
varnishd invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0
Percebemos após análise que o problema poderia ser referente ao uso do amazenamento transiente: https://www.varnish-cache.org/docs/trunk/users-guide/storage-backends.html#transient-storage
Em nosso caso ele estava setado:
# varnishadm -T localhost:79 param.show shortlived
shortlived 10.000000 [s]
Default is 10.0
Objects created with TTL shorter than this are
always put in transient storage.
E percebemos lendo sobre o armazenamento transiente:
"Transient Storage
If you name any of your storage backend "Transient" it will be used for transient (short lived) objects. By default Varnish would use an unlimited malloc backend for this."
Ou seja, o Varnish irá utilizar toda a memória se não limitarmos, então decidimos por segurança, setar um limite.
Em meu caso, respeitando a regra do: https://www.varnish-cache.org/trac/wiki/Performance
De utilizar:
- -s malloc,(YOURMEMORY-20%)G
Em meu caso, tinha 32GB de memória RAM, então separei 24GB para o malloc, e 2GB para o Transient=malloc, ficando da seguinte forma no /etc/default/varnish:
-s Transient=malloc,2G \
-s malloc,24G \
Aparentemente após essa limitação, nossos problemas com OOM(Out of Memory) acabaram, e a vida voltou ao normal :)
Referências: https://www.varnish-cache.org / http://google.com
Participação/ajuda Especial: Valter Lisboa (GigaNerds) http://giganerds.wordpress.com/
Participação/ajuda Especial: Valter Lisboa (GigaNerds) http://giganerds.wordpress.com/
sexta-feira, 15 de fevereiro de 2013
vclreload varnish reload VCL
Olá,
Fiz alguns ajustes para suprir algumas necessidades que tenho em meu ambiente e o script que basicamente lê a VCL nova e verifica a sintaxe, se houver algum erro, logicamente ela não sobe.
As mudanças que fiz foram:
# Ele pega automaticamente o arquivo vcl a ser compilado, não havendo a necessidade de intervenção manual, logo, se você possui um ambiente com varnishs separados e vcls com nomes diferentes, você pode colocar o script na automação sem se preocupar com ajustes finos :)
FILE=$(grep "\-f" /etc/default/varnish |head -1| awk '{print $2}')
# Aqui ele basicamente pega o valor do varnishadm para poder executar os comandos para carregar a nova vcl.
HOSTPORT=$(grep "\-T" /etc/default/varnish | awk '{print $3}')
Segue o script originalmente criado por Kristian Lyngstol e modificado para minha necessidade.
https://github.com/abargiela/scripts/blob/master/vclreload.sh
Essas modificações foram extremamente úteis para mim, espero que para você também seja :)
apt preferences.d
Ontem tive a necessidade de instalar um pacote específico de um outro repositório, ou seja estava fora do default, então tive que usar o /etc/apt/preferences.d, particularmente eu nunca havia precisado e acho interessante compartilhar pois minha dificuldade, pode ser a sua, e claro deixando aqui, posso consultar no futuro.
Acho que não vale eu reescrever sobre o assunto se temos bem descrito na wiki do debian: http://wiki.debian.org/AptPreferences#A.2Fetc.2Fapt.2Fpreferences
Mas deixarei aqui a minha configuração:
# cat /etc/apt/preferences.d/nginx-package
Package: nginx-extras
Pin: version 1.1.19-1ubuntu0.1
Pin-Priority: 900
Package: nginx-common
Pin: version 1.1.19-1ubuntu0.1
Pin-Priority: 900
Acho que não vale eu reescrever sobre o assunto se temos bem descrito na wiki do debian: http://wiki.debian.org/AptPreferences#A.2Fetc.2Fapt.2Fpreferences
Mas deixarei aqui a minha configuração:
# cat /etc/apt/preferences.d/nginx-package
Package: nginx-extras
Pin: version 1.1.19-1ubuntu0.1
Pin-Priority: 900
Package: nginx-common
Pin: version 1.1.19-1ubuntu0.1
Pin-Priority: 900
quarta-feira, 13 de fevereiro de 2013
Exemplo de .screenrc
Abaixo estou postando meu .screenrc, não temos nada de mais, porém caso eu venha a precisar ou alguém precise, espero que ajude, abs.
deflogin on
autodetach on
defscrollback 5000
bind ^k
bind ^\
bind \\ quit
bind K kill
bind I login on
bind O login off
bind } history
termcapinfo vt100 dl=5\E[M
hardstatus on
hardstatus alwayslastline "%{rk}%H %{gk}%c %{yk}%M%d %{wk}%?%-Lw%?%{bw}%n*%f %t%?(%u)%?%{wk}%?%+Lw%?"
termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
defnonblock 5
O screen ficará assim:
domingo, 3 de fevereiro de 2013
Script para modificar arquivo(s) via sed
Olá,
Precisei fazer uma modificação em um diretório com vários arquivos e havia feito em linha de comando, coisa simples, porém achei melhor deixar um script feito para futuras necessidades, espero que possa ajudar alguém, e sugestões sempre são bem vindas.
Abaixo o script:
https://github.com/abargiela/scripts/blob/master/change_words_in_files_with_sed.sh
Abs.
Precisei fazer uma modificação em um diretório com vários arquivos e havia feito em linha de comando, coisa simples, porém achei melhor deixar um script feito para futuras necessidades, espero que possa ajudar alguém, e sugestões sempre são bem vindas.
Abaixo o script:
https://github.com/abargiela/scripts/blob/master/change_words_in_files_with_sed.sh
Abs.
quarta-feira, 5 de setembro de 2012
Testando conexões UDP com netcat
Simples, porém útil, pelo menos para mim foi (:
~]# nc -zu xxx.xxx.xxx.xxx 1813
Connection to xxx.xxx.xxx.xxx 1813 port [udp/radius-acct] succeeded!
~]# nc -zu xxx.xxx.xxx.xxx 1813
Connection to xxx.xxx.xxx.xxx 1813 port [udp/radius-acct] succeeded!
sexta-feira, 20 de julho de 2012
Input de dados mongodb
Boa tarde!
Eu estou estudando mongodb e precisava fazer alguns testes com input de dados, e fiz um script simples para isso e funciona muito bem graças a nosso grande amigo BASH!
Espero que ajude alguém, abs.
#Link para o script:
https://github.com/abargiela/scripts/blob/master/Input_data_mongodb.sh
O script buscará o conteúdo em JSON e fará o input no mongo, segue uma saída simples.
Para visualizar o dado, no meu caso com meu banco chamando bancoteste e a collection colecaoteste
root@debian:~# mongo
MongoDB shell version: 2.0.6
> use bancoteste
switched to db bancoteste
> db.colecaoteste.findOne({"_id" : ObjectId("5009b85efbddf412d8e33c70")})
{
"_id" : ObjectId("5009b85efbddf412d8e33c70"),
"completed_in" : 0.212,
"max_id" : NumberLong("226389767435198464"),
"max_id_str" : "226389767435198464",
"next_page" : "?page=2&max_id=226389767435198464&q=linux",
"page" : 1,
"query" : "linux",
"refresh_url" : "?since_id=226389767435198464&q=linux",
"results" : [
{
"created_at" : "Fri, 20 Jul 2012 18:55:01 +0000",
"from_user" : "BlackBerryDev",
"from_user_id" : 65727873,
"from_user_id_str" : "65727873",
"from_user_name" : "Research In Motion",
"geo" : null,
"id" : NumberLong("226389767435198464"),
"id_str" : "226389767435198464",
"iso_language_code" : "en",
"metadata" : {
"result_type" : "recent"
},
"profile_image_url" : "http://a0.twimg.com/profile_images/2198932640/BlackBerry-Twitter_normal.jpg",
"profile_image_url_https" : "https://si0.twimg.com/profile_images/2198932640/BlackBerry-Twitter_normal.jpg",
"source" : "<a href="http://www.exacttarget.com/social" rel="nofollow">SocialEngage</a>",
"text" : "@marioboikov Thanks for your question. Support for Linux continues to be evaluated. I've added your request to the demand list. ^AS",
"to_user" : "marioboikov",
"to_user_id" : 321267837,
"to_user_id_str" : "321267837",
"to_user_name" : "Mario Boikov",
"in_reply_to_status_id" : NumberLong("226038200148320256"),
"in_reply_to_status_id_str" : "226038200148320256"
},
.
. #Conteúdo omitido para não prolongar muito.
.
{
"created_at" : "Fri, 20 Jul 2012 18:54:15 +0000",
"from_user" : "North_Group",
"from_user_id" : 206944855,
"from_user_id_str" : "206944855",
"from_user_name" : "North Group",
"geo" : null,
"id" : NumberLong("226389576263036929"),
"id_str" : "226389576263036929",
"iso_language_code" : "en",
"metadata" : {
"result_type" : "recent"
},
"profile_image_url" : "http://a0.twimg.com/profile_images/1531683421/North_normal.jpg",
"profile_image_url_https" : "https://si0.twimg.com/profile_images/1531683421/North_normal.jpg",
"source" : "<a href="http://twitterfeed.com" rel="nofollow">twitterfeed</a>",
"text" : "Oracle Offers Free Software To Win New Linux Users (ORCL): Oracle has made an interesting offer to companies usi... http://t.co/M285wyD0",
"to_user" : null,
"to_user_id" : 0,
"to_user_id_str" : "0",
"to_user_name" : null
}
],
"results_per_page" : 15,
"since_id" : 0,
"since_id_str" : "0"
}
quarta-feira, 28 de março de 2012
Script apenas lembrança.
Script apenas para minha recordação, depois que o fiz acho que não será tão bem utilizado quando eu pensei que pudesse utiliza-lo, porém para não perder, estou adicionando-o aqui.
https://github.com/abargiela/scripts/blob/master/store_informations_in_mysql.sh
terça-feira, 13 de março de 2012
IO Stress
Olá!
Tive uma nova necessidade, a de escrever/ler em um diretório que estava montado (iscsi), houve a necessidade de estressa-lo para verificarmos como seria o desempenho, segue o script:
Para escrita:
https://github.com/abargiela/scripts/blob/master/io_stress_write.sh
E para leitura:
Média de transmissão: 149 MB/s
Menor taxa de transmissão: 44.9 MB/s
Maior taxa de transmissão: 167 MB/s
É isso, não sei o quanto essa dica pode ajudar, porém fica aqui para futuras consultas :)
Tive uma nova necessidade, a de escrever/ler em um diretório que estava montado (iscsi), houve a necessidade de estressa-lo para verificarmos como seria o desempenho, segue o script:
Para escrita:
https://github.com/abargiela/scripts/blob/master/io_stress_write.sh
E para leitura:
https://github.com/abargiela/scripts/blob/master/io_stress_reading.sh
Seguiro executar os 2 scripts simultaneamentes, ou seja, abra 2 terminais e execute 1 em cada.
Seguiro executar os 2 scripts simultaneamentes, ou seja, abra 2 terminais e execute 1 em cada.
Pode parecer feio, porém para minha necessidade atendeu!
Os dados coletados serão similares a:
Tue Mar 13 11:23:26 BRT 2012
1000000+0 records in
1000000+0 records out
1048000000 bytes (1.0 GB) copied, 6.61428 seconds, 158 MB/s
Tue Mar 13 11:24:22 BRT 2012
1000000+0 records in
1000000+0 records out
1048000000 bytes (1.0 GB) copied, 6.56956 seconds, 160 MB/s
Tue Mar 13 11:25:14 BRT 2012
No script de escrita(io_stress_write.sh) você consegue coletar as estatísticas utilizando os parâmetros no mesmo, a saída será similar à:
Média de transmissão: 149 MB/s
Menor taxa de transmissão: 44.9 MB/s
Maior taxa de transmissão: 167 MB/s
É isso, não sei o quanto essa dica pode ajudar, porém fica aqui para futuras consultas :)
sexta-feira, 26 de agosto de 2011
[ Varnish Troubleshoot ] Varnish Error to start
Olá,
Tive um problema para subir um varnish em produção e gostaria de compartilhar a solução:
- Ao tentar o start, ocorre o erro:
[root@varnish-machine ~]# /etc/init.d/varnish start
[root@varnish-machine ~]# or: [FAILED]
- Ao tentar startar apenas usando o daemon, ocorre:
[root@varnish-machine ~]# varnishd
storage_file: filename: ./varnish.4lLrqn size 3586 MB.
Using old SHMFILE
- Tentei então fazer um debug no init do varnish e então no final ele mostra o seguinte trecho em negrito
[root@varnish-machine ~]# sh -x /etc/init.d/varnish start
+ echo -n 'Starting varnish HTTP accelerator: '
Starting varnish HTTP accelerator: + ulimit -n 131072
+ ulimit -l 82000
+ '[' '-a :80 -T 127.0.0.1:6082 -f /etc/varnish/default.vcl -u varnish -g varnish -h classic,116387 -p listen_depth=16384 -p overflow_max=10000 -p sess_timeout=5 -p session_linger=50 -p thread_pools=16 -p lru_interval=900 -p cli_timeout=20 -p ping_interval=5 -w 300,4096,60 -t 60 -s file,/var/lib/varnish/varnish_storage.bin,20G' = '' ']'
- Então tentei subir manualmente o varnish, e ai que encontrei o erro e a solução:
[root@varnish-machine ~]# varnishd -a :80 -T 127.0.0.1:6082 -f /etc/varnish/default.vcl -u varnish -g varnish -h classic,116387 -p listen_depth=16384 -p overflow_max=10000 -p sess_timeout=5 -p session_linger=50 -p thread_pools=16 -p lru_interval=900 -p cli_timeout=20 -p ping_interval=5 -w 300,4096,60 -t 60 -s file,/var/lib/varnish/varnish_storage.bin,20G
storage_file: filename: /var/lib/varnish/varnish_storage.bin size 20480 MB.
Message from VCC-compiler:
Unused backend backend1, defined:
(/etc/varnish/backends.inc Line 29 Pos 9)backend backend1 {
--------########################--
Running VCC-compiler failed, exit 1
VCL compilation failed
Havia um problema na VCL, acessei o arquivo, fui até a linha, corrigi e problema solucionado.
Espero que ajude, abs.
Tive um problema para subir um varnish em produção e gostaria de compartilhar a solução:
- Ao tentar o start, ocorre o erro:
[root@varnish-machine ~]# /etc/init.d/varnish start
[root@varnish-machine ~]# or: [FAILED]
- Ao tentar startar apenas usando o daemon, ocorre:
[root@varnish-machine ~]# varnishd
storage_file: filename: ./varnish.4lLrqn size 3586 MB.
Using old SHMFILE
- Tentei então fazer um debug no init do varnish e então no final ele mostra o seguinte trecho em negrito
[root@varnish-machine ~]# sh -x /etc/init.d/varnish start
+ echo -n 'Starting varnish HTTP accelerator: '
Starting varnish HTTP accelerator: + ulimit -n 131072
+ ulimit -l 82000
+ '[' '-a :80 -T 127.0.0.1:6082 -f /etc/varnish/default.vcl -u varnish -g varnish -h classic,116387 -p listen_depth=16384 -p overflow_max=10000 -p sess_timeout=5 -p session_linger=50 -p thread_pools=16 -p lru_interval=900 -p cli_timeout=20 -p ping_interval=5 -w 300,4096,60 -t 60 -s file,/var/lib/varnish/varnish_storage.bin,20G' = '' ']'
- Então tentei subir manualmente o varnish, e ai que encontrei o erro e a solução:
[root@varnish-machine ~]# varnishd -a :80 -T 127.0.0.1:6082 -f /etc/varnish/default.vcl -u varnish -g varnish -h classic,116387 -p listen_depth=16384 -p overflow_max=10000 -p sess_timeout=5 -p session_linger=50 -p thread_pools=16 -p lru_interval=900 -p cli_timeout=20 -p ping_interval=5 -w 300,4096,60 -t 60 -s file,/var/lib/varnish/varnish_storage.bin,20G
storage_file: filename: /var/lib/varnish/varnish_storage.bin size 20480 MB.
Message from VCC-compiler:
Unused backend backend1, defined:
(/etc/varnish/backends.inc Line 29 Pos 9)backend backend1 {
--------########################--
Running VCC-compiler failed, exit 1
VCL compilation failed
Havia um problema na VCL, acessei o arquivo, fui até a linha, corrigi e problema solucionado.
Espero que ajude, abs.
terça-feira, 9 de agosto de 2011
sqlplus
Falae galera!
Hoje precisei realizar a conexão em um banco oracle de um parceiro para homologar se a conexão com o mesmo encontrava-se ok. Consultei nossos amigos DBA's e os mesmos sugeriram utilizar o client sqlpus.
Quando realizei a instalação me deparei com ajustes que foram necessário realizar e graças aos skills de nosso amigo Arnaldo Pedroso, demorei apenas 2 minutos para configurar, e gostaria de compartilhar com vocês para caso haja uma necessidade futura. (:
1 - Deve-se fazer o export das bibliotecas do client, para evitar o seguinte erro: sqlplus64: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
Essa configuração pode ser adicionada para ser exportada automaticamente via .bashrc, porém isso fica a critério e necessidade de cada um.
export LD_LIBRARY_PATH="/usr/lib/oracle/10.2.0.3/client64/lib/"
ou
echo "/usr/lib/oracle/10.2.0.3/client64/lib/" > /etc/ld.so.conf.d/sqlplus
2 - Você deve criar o arquivo aonde ficarão os dados para a conexão com o banco:
Por default ele busca esse arquivo na seguinte ordem:
/root/.tnsnames.ora #Podendo variar de acorodo com o usuário logado, no meu caso estava como root, por isso ele buscou primeiro no /root
/etc/tnsnames.ora
/usr/lib/oracle/10.2.0.3/client64/lib/network/admin/tnsnames.ora
Utilizei a última opção em vermelho
3 - Dentro do arquivo, adicionei a seguinte configuração:
nomeConexaoOracle =
#O nome acima será o mesmo nome utilizado para a conexão
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = 127.0.0.1)(Port = 1542))
# Acima colocam-se o IP e a porta a qual deseja-se conectar.
)
(CONNECT_DATA =
(SERVICE_NAME = SINNPROD)
)
)
4 - Para realizar a conexão basta:
sqlplus username/password@conexão
sqlplus USERtest/PASSWORD@nomeConexaoOracle
Se todas as informações estiverem corretas, sucesso total.
Espero que ajude em algum momento, abs.
Referências: http://www.orafaq.com/wiki/Tnsnames.ora
DBA: Arnaldo Pedroso's mind (:
Hoje precisei realizar a conexão em um banco oracle de um parceiro para homologar se a conexão com o mesmo encontrava-se ok. Consultei nossos amigos DBA's e os mesmos sugeriram utilizar o client sqlpus.
Quando realizei a instalação me deparei com ajustes que foram necessário realizar e graças aos skills de nosso amigo Arnaldo Pedroso, demorei apenas 2 minutos para configurar, e gostaria de compartilhar com vocês para caso haja uma necessidade futura. (:
1 - Deve-se fazer o export das bibliotecas do client, para evitar o seguinte erro: sqlplus64: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
Essa configuração pode ser adicionada para ser exportada automaticamente via .bashrc, porém isso fica a critério e necessidade de cada um.
export LD_LIBRARY_PATH="/usr/lib/oracle/10.2.0.3/client64/lib/"
ou
echo "/usr/lib/oracle/10.2.0.3/client64/lib/" > /etc/ld.so.conf.d/sqlplus
2 - Você deve criar o arquivo aonde ficarão os dados para a conexão com o banco:
Por default ele busca esse arquivo na seguinte ordem:
/root/.tnsnames.ora #Podendo variar de acorodo com o usuário logado, no meu caso estava como root, por isso ele buscou primeiro no /root
/etc/tnsnames.ora
/usr/lib/oracle/10.2.0.3/client64/lib/network/admin/tnsnames.ora
Utilizei a última opção em vermelho
3 - Dentro do arquivo, adicionei a seguinte configuração:
nomeConexaoOracle =
#O nome acima será o mesmo nome utilizado para a conexão
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = 127.0.0.1)(Port = 1542))
# Acima colocam-se o IP e a porta a qual deseja-se conectar.
)
(CONNECT_DATA =
(SERVICE_NAME = SINNPROD)
)
)
4 - Para realizar a conexão basta:
sqlplus username/password@conexão
sqlplus USERtest/PASSWORD@nomeConexaoOracle
Se todas as informações estiverem corretas, sucesso total.
Espero que ajude em algum momento, abs.
Referências: http://www.orafaq.com/wiki/Tnsnames.ora
DBA: Arnaldo Pedroso's mind (:
quarta-feira, 29 de junho de 2011
segunda-feira, 25 de abril de 2011
TCPDUMP SQL style :D
Um amigo do trabalho Julio, nos passou esse cara abaixo, achei bastante útil, estou repassando :D
Nesse caso estamos monitorando o MySQL, podemos ver pela porta 3306, porém apesar de não ter testado ainda ele pegue qualquer linguagem SQL, claro adaptando para a porta do mesmo, ainda vou testar ou caso você tenha testado por favor poste :D Grato.
Espero que ajude assim como me auxiliou, abraço.
Nesse caso estamos monitorando o MySQL, podemos ver pela porta 3306, porém apesar de não ter testado ainda ele pegue qualquer linguagem SQL, claro adaptando para a porta do mesmo, ainda vou testar ou caso você tenha testado por favor poste :D Grato.
tcpdump -i eth0 -s 0 -l -w - dst port 3306 | strings | perl -e '
while(<>){
chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER)/i){
if (defined $q){
print "$q\n";
}
$q=$_;
}
else{
$_ =~ s/^[ \t]+//; $q.=" $_";
}
}'
while(<>){
chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER)/i){
if (defined $q){
print "$q\n";
}
$q=$_;
}
else{
$_ =~ s/^[ \t]+//; $q.=" $_";
}
}'
quinta-feira, 20 de janeiro de 2011
Links úteis
Achei interessantes... estou fazendo um share, abs.
http://www.thegeekstuff.com/2010/07/screen-command-examples/
http://www.thegeekstuff.com/2010/12/50-unix-linux-sysadmin-tutorials/
http://www.thegeekstuff.com/2010/11/50-linux-commands/
http://www.thegeekstuff.com/2009/03/15-practical-linux-find-command-examples/
http://www.thegeekstuff.com/2009/01/12-amazing-and-essential-linux-books-to-enrich-your-brain-and-library/
http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/
=D
http://www.thegeekstuff.com/2010/07/screen-command-examples/
http://www.thegeekstuff.com/2010/12/50-unix-linux-sysadmin-tutorials/
http://www.thegeekstuff.com/2010/11/50-linux-commands/
http://www.thegeekstuff.com/2009/03/15-practical-linux-find-command-examples/
http://www.thegeekstuff.com/2009/01/12-amazing-and-essential-linux-books-to-enrich-your-brain-and-library/
http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/
=D
segunda-feira, 10 de janeiro de 2011
Listar crontabs e listar vhosts de várias instâncias de apache
Hoje tive a necessidade de verificar os crontabs de algumas máquinas e como possuia alguns usuários e eu necessitava analisar todos fiz um for simples porém funcional e gostaria de compartilhar pois pode ser que alguém necessite, e apesar de sua simplicidade gostaria de compartilhar mesmo assim.
https://github.com/abargiela/scripts/blob/master/crontab_list.sh
Aproveitando também hoje precisei listar um ambiente legado aonde possuo vários servidores apache rodando N sites, então achei mais fácil automatizar isso para saber rapidamente em qual instância o vhost que eu precisava está, então segue o "forzinho" simples porém funcional para mim e espero que para alguém também seja um dia :D.
https://github.com/abargiela/scripts/blob/master/vhost_list.sh
Abs.
https://github.com/abargiela/scripts/blob/master/crontab_list.sh
Aproveitando também hoje precisei listar um ambiente legado aonde possuo vários servidores apache rodando N sites, então achei mais fácil automatizar isso para saber rapidamente em qual instância o vhost que eu precisava está, então segue o "forzinho" simples porém funcional para mim e espero que para alguém também seja um dia :D.
https://github.com/abargiela/scripts/blob/master/vhost_list.sh
Abs.
Assinar:
Postagens (Atom)

